Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles

[DevLog] Kill Command

A topic by DevilsWork.shop created Jul 14, 2018 Views: 466 Replies: 33
Viewing posts 1 to 21
(3 edits) (+5)

Day 14 and counting down. 

Updated 1

  • Mind-mapped the layout using Bubbl.us  - haven't logged into that web-application since 2009. Surprisingly still pretty nifty. 
  • Complete a rough of the game layout. Nothing too complicated. I might have to bar-out access to some rooms if I run out of time during development.  
    mind-mapping Game Dev
  • Completed a bunch of warm up exercises in Construct 3

Update 2

  • Construct 3 is pretty tricky. I built some n00b code to fade in and fade out an object. 
  • This is what an C 3 events looks like if an animator is working on it



  • Got some help from a few gamedevs over at twitter who helped solve this problem and made the code more efficient 

  • The Launch Screen now looks like this
     
Host(+1)

ahhh nice! glad you were able to get some help for a nice fade. i was gonna say you could probably use a lerp over time but the fade behavior is likely much more efficient. also that mind map tool looks really useful! thanks for sharing. maybe some other jammers might find it useful as well!

Thanks for dropping by 

I am so new to the concepts of programming and Construct3 that I couldn't even find how to lerp over time! (n00b here)
Someone on twitter did mention to 

1.Create a variable.
2.Add dt*fade speed to variable every tick.
3.Set opacity with this variable.

Im still yet to grasp that concept of dt. All in time..

Submitted(+2)

I think by dt*fade speed, its refering to delta time multiplied by fade speed, so the fade effect is not dependant on the frame rate.

So this means it even if there is a frame rate drop - the fade time will limited to the time that has been implemented? 

Submitted

I think so, if i understood you correctly.

Here is a link with more info, is for Consturct 2 tho.

https://www.scirra.com/tutorials/67/delta-time-e-independencia-de-tasa-de-fotogr...

suweet sauce code! Thanks - this is very insightful 

Host(+1)

oh yeah the other reply on this is perfect! (but in case you were curious i think of lerp (or linear interpolation) as a useful solution when i have specific start and end values in mind for a variable and want to update every frame between these two. delta time can also be used in conjunction with this)

(+2)

Update 3 


Challenge 

  • Initiating music to play as soon as the game loads
  • Making sure the music loads only once and keeps even when player goes to another layout scene 

Proceduere

  • Added the audio file to the project
  • Added a ‘Audio’ object to a placeholder scene (i.e template) 
  • Created an Global events file that will always be loaded on the top of every new ‘Event’ for the game. 

Now every time one creates a new layout, add the Global event sheet to the top. The game checks the global event and executes the events. Game find a a system command that tells it to play the audio track, with a bunch of variables assigned to it. Variables are - Loop or no loop, Volume. 

(1 edit) (+2)

Update 4 

Challenge

  • Understand how to use delta-time to make a UI object fade in
  • Stop the fade effect once the UI object has reached 100% opacity 

Procedure

  • Add UI object to scene
  • Set the UI object’s initial value to 0. It is invisible on the layout
  • Instruct the system that for every tick take the UI objects opacity and add 60 * dt to it. 
    This means that at 60fps, dt = 0.6   
    1st tick, Opacity = 0 + (60*0.6)   —–>36 
    2nd tick , Opacity = 36 + (60*0.6) —–> 72
    etc ..
  • Have a main condition on the events that says perform the below events as long as the UI object is not equal to 100% opacity 

Result - UI object fades in to screen! 


Observation - No clue how many FPS is this project set at. 
Cant find too much information about what is the standard FPS that C3 games run at 

(+2)

Update 5
Found some help in the Construct forum on how to set up a ingame FPS counter to solve my last question.



----



Also started working on the hero character 
The frame rates on this gif looks very choppy - meh, it plays well in game so that's ok 

  • Idle - Check
  • Walk 
  • Congrats / Complete 
(+2)

Day 13 and counting down. 

Update 1 

  • Imported player into Construct 3 project
  • Figured out how to assign Behaviors to an object

Next Steps

  • Work on Player Controllers
(3 edits)

Update 2 


  • Every time the layout loads - player will walk 'x' units to the right. 
  • Still working though the kinks of player controller
    Disabling the default controls and assigning one’s own variables is time consuming but rewarding. 

Next Steps 

  • Flushing out the animation sprites for Player walking 

 I'm stuck trying to figure out how to make an event play only once and then terminate it's self after it has executed the action. To the Internets! 

Update 3

Completed the player’s 4 animation cycles

  • Idle 
  • Confirm
  • Walk
  • Run

(1 edit)

Update 4 

Phew, finally got a good part of the player controllers .. but now the player can moonwalk (facepalm.gif) 


Updated 5 - Last one for the night 


  • Player Controls are finally functioning
  • Player on-boarding prompt implemented
  • Wall collisions are in, though I might have to take an optimization pass at this towards the end 
  • Learnt how to assign a Boolean Variable to re-orient Player character  - that might come back later to bite me on the butt as I have no clue how that worked :) 
Host(+1)

wow nice job getting player controls AND quick tutorial already!

(+1)

Ah thank you :) - Created a small On-boarding level so players can get the hang of controls how to interact with objects. I need to figure out how to make the player not go though this on-boarding level once they have died.

Host

oh yeah that sounds like a challenge as well! i'm guessing you'll want some persistent variables to check if that has happened.

(+1)

That is exactly what I was searching for - how to make an object 'persistent' - thanks! 

(1 edit)

Day 7 and counting down. 
Update 1 


  • Figured out how to pin an object to another object - in the case above the collision area for the laptop is pinned to the laptop. Pinning collision would make more sense if the player is interacting with the laptop and there's box2d physics applied to it
  • The second part of today's update is battling ZOrder sorting in Construct3. On executing this command - ZOrder is a bit unexpected. 
    Back to the drawing board for more ZOrder sorting 

Day 7 and counting down. 
Update 2


Things to remember the next time I am working on a Construct3 Project - Organize everything so it makes sense. 
Took a pass at standardizing all the layers, and Project folders and objects. I also made a template Layout with the same Layer names so I can easily create the next layout with ease. 
Though this took me quiet a bit more time than anticipated, Im glad that this helped define future project pipelines using Construct3 

(1 edit)

Day 7 and counting down. 
Update 3



Documenting some of the mistrials of learning Z Order Sorting in Construct3. In this case I have figured out rudimentary Z Order sorting between player and one object. The big challenge is applying Z Order sorting to an entire family of objects and building the events efficiently so that the game does not drop frame-rates 

—————————————————-

Let’s consider three objects

  • Player 
  • A Door
  • A Blue Prop called RandomProp

For the first part of this exercise, lets focus on the player and the door. 
The player has been assigned some basic controllers. 
The Z Order Bar looks like this 


If you run the game now, the player will move behind the Door and RandomProp



Now we are going to do a conditional check.
Create a condition - where if the players pivot point.Y is greater than the door pivotpoint.Y -then resort the Z Order of the door and move it behind the player.

Quickly testing that condition we get the following results 


Ok, so it works. Initially the game checks the zorder for the three objects - the player is behind everything - so when the player moves it goes behind the door. 
Now when the player moves downwards, the player pivotpoint.Y is greater than the door’s pivotpoint.Y - so the system immediately sorts the player to the top. 
And when the player goes back to the top where it’s pivotpoint.Y is lesser than the door’s pivotpoint.Y - we have not assigned any condition so the player still stays Z Order sorted to the top and goes over the door. 

Let’s add another condition to instruct the system to check for Z Order sorting between Player and Door and display it correctly 


Small update to the event sheet. Instead of moving the Door in front or behind the Player, that has been changed to the Player now moves in front or behind the Door. I anticipate there will be many objects that have to perform the same function and this method already feels inefficient. 

-------------------------------------

When the condition exists for two objects - the system does not perform the expected behavior and the Door's sort does not work while the RandomProp's sort order works. 
I will need to research 'Sort Z Order' a bit more as the concept is new and a bit confusing 

Submitted(+1)

Love the devlog, really instructive!

Thanks Jatsu :) 

Day 6 and counting down. 
Update 1

I've hit a wall with Z Order sorting. Dang
From my finding - it is easy if the Layout has a player and one object to Z Order Sort 


When introducing a second object to Z Order sort - the game behaves strangely and only sorts one of the two objects 


To the interwebs! Hopefully I get an answer soon 

Submitted(+1)

That's odd, for sure. Hope you can figure it out!

Thank you, my friend :) 

(1 edit) (+1)

5 Days left  
Update 1 and Only 1 

It's been a very frustrating experience trying to tackle Z Order sorting in Construct 3. There are not too many tutorials that explain the logic behind how C3 handles this. One kind soul from the forums helped me with the code and I have a ton of appreciation for them sharing their code.  Read more about it and grab the source file from here
But my next steps are to get a good understanding behind the logic of Z Order / Families / and Instances. 

For now, here is the finished scene for today's update 

Submitted(+2)

Aaaah it feels good to read that you solved the Z problem.

(+2)

4 Days left  
Update 1 

A day of rest 

3 Days left


Flushed out some game assets so that the first room can be completed. 

(1 edit)

2 days left! 

 I got the Dialog system working but the 9 sliced object does not behave like a regular object. Even Pinning that object does not work for strange reasons.

Pretty sure this has to do with pinning objects and Game Object Behavior.


On a completely different note - there's just a day or two more remaining on this gamejam and Im happy I got to learn how to even build a game in Construct 3. I appreciate all the help from the construct forums and the itch forums. I will continue working on this project and moved the dev blog over to http://devilsworkshop.tumblr.com/ 

So to reevaluate I am so happy I got to learn the following things 

  • Setting up a scene in C3
  • Create a fade element that fades over time 
  • Creating Player Controls for an asymmetric character 
  • Pinning shadows to moving objects
  • Creating collisions 
  • Importing video into a layout 
  • creating trigger conditions to hide unhide objects 
  • Animating a character's movement using *delta-time
  • Creating a functioning HUD
  • First lessons on optimization - learning to use Background tiles 
  • Creating objects with multiple animation cycles within them 
  • Battling Z Order monster and taming that beast 
  • Adding text to the game
  • Assigning special keystrokes to perform actions
  • Working with layer effects - adding a retro filter to the game 
  • Adding Lights 
  • Creating Save Points


Thanks for staying tuned and congrats to the folks who have finished their game! Hat's off to the organizers of this fun gamejam! If it weren't for you guys I would have not explored making solo games as an option - cheers!