Postmortem


Lessons learned: 

  1. We learned how to make a player that moves on its own at a constant velocity. Most of the games we made previously involved writing code to control the movement of the player, so this required a bit of creativity although the implementation itself was quite simple. We just had to update the x velocity of the player’s rigidbody at every frame. 
  2. We learned how to avoid our player getting stuck to the platforms. At first, we tried to add some code that would check if the player was idle for a certain amount of time and, if so, add a force on the player that would make it jump to its death but that did not work well with the gameplay (see Challenges section for more details). We decided to add a platform effector to the platforms which would prevent the player from getting stuck to the bottom of a platform above it and, to solve the problem of the player getting stuck to the sides, we added spikes to the sides which would result in the player’s death. This added a nice extra layer of challenge to the gameplay.
  3. We learned how to control the player (for jumping)  using touch input instead of keyboard input.
  4. We learned to be careful to avoid Null Reference Exception errors in Unity, as they can mess up the functionality of the game. Specifically, during the playtesting process, in the levels in which we did not yet add in a score UI, we got this error and it affected the collection of the crystals because they were not getting destroyed upon collection like they were supposed to. This is because the score text, a public variable in the player code, was set to null, causing a Null Reference Exception error. We realized this when we commented out the parts of the code that dealt with updating the score UI.
  5. We learned the importance of creating a separate layer for the ground. When the ground layer was set to “Default,” we had the problem of infinite jumping because the code would recognize the elements of the background as part of the ground. We simply solved this by setting the layer of all the platforms to “Ground” and setting that to the ground layer.
  6. We learned how to make particle systems that appear temporarily only under certain conditions – specifically, when the player picks up a crystal, a purple particle system appears around it for a few seconds.
  7. Jump force feels different when playing with touch input instead of keyboard input. We had to significantly lower the jump force of the player to adapt it for touch input. 

Successes (what went right):

-The assets that we used really helped us bring our idea to life. 

-The deer has different animations for walking and jumping

-Sound effects for crystal collection and death

-Collecting crystals gives the player a temporary particle system and speed boost. The blue crystals multiply the player’s speed by 1.25, and the pink ones multiply the player’s speed by 1.5

-The player must accumulate a score higher than 10 to advance to the next level. The score refreshes after every level.

-All the levels match the aesthetic theme of the game

Challenges (Setbacks, what went wrong)

-Since the player moves at a constant speed in the x direction without the user’s control, if the player were to run into the side of a platform, it would just get stuck forever. One approach that we tried to solve this was to write code to check if the player has been stuck in the same position for more than 3 seconds and, if so, add a downward force to it that would cause it to fall and die. The problem with that was that, especially as we decreased the time interval for checking if the player is idle, the code would falsely detect the player being idle and caused downward forces to be added to the player during regular gameplay, which caused some choppy camera movement. When the interval was set to 3 seconds, the misdetections were much less frequent but the way the player would fall just felt unnatural, so we decided to look for alternative solutions. We tried to play around with adjusting the spacing of the platforms and making them thinner to try to avoid this issue, but this approach did not guarantee a solution as the player still had a chance of getting stuck to the sides. Eventually, we decided to add spikes to the sides of the platform so that, if the player were to fall and land on the sides where the spikes were, it would just die.

 

Next steps (What would you change)

If we had more time, we would make the levels longer and more challenging. We would also add more challenges to each of the levels, such as more enemies, different types of power ups that add a greater jump force, and special platforms that affect the speed of the player. For a specific type of enemy, we thought of making a poisonous mushroom that makes the player lose points from their score. We would also improve our team coordination in terms of helping each other with our levels, and our time management in terms of making sure that we are all able to contribute equally. 

Leave a comment

Log in with itch.io to leave a comment.