Dev Blog



  • 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
     

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


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. 



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


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 


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


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 

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

 Update 1 

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

Next Steps

  • Work on Player Controllers


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


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


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

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 :) 

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

  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 

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


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 

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

 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 


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


 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 


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

 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 

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


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

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

 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

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

Comments

Log in with itch.io to leave a comment.

whats your game engine

I am using Construct 3 
https://www.construct.net/en

(+1)

Thanks