The Grim Reaper forgot his wallet! Skate through the city and avoid any obstacles in your way to regain your wallet and finally buy the tacos you crave.
Engine: Unity
Team Size: 7 people
Project Length: 2 months
Role: Programmer
Focus: Infinite Generation, Input, and Refactoring
In the infinite generation mode, prefab platforms continually spawn for the player to jump across. Each prefab has a trigger in its center, and when the player crosses it, it creates a new object. The process generates a random x and y value for the prefab to spawn at, then selects a random prefab object from an array. After the object is instantiated, it is added to a list that keeps track of how many platforms are in the scene. Once there are more than 5, the first object in the list (aka the oldest object) is deleted from the scene and then removed from the list.
The goal of the infinite mode is to survive as long as possible. In Update, time is incremented by Delta Time and then displayed on the corresponding UI text element. When the player dies, if they have a higher time compared to the time saved in Unity's Player Preferences, that value is overwritten with the new high score. Their high score is displayed in the end card afterwards.
The player's input was developed primarily towards mobile functionality. It has a jump state when the player taps the screen and a dash state when the player swipes the screen. Originally, the game used the old Unity input system and iterates through possible states the player could be in. It checks if the player is only tapping the screen first, then it checks if the player is swiping.
At the time of development, it worked for what we made. After development, I refactored the bizarre structure and implemented Unity's new input system. It made adding different kinds of controls like keyboard functionality easier, and it separated the event calls of the different states. Any other scripts relying on the differing states would tie into the input calls easier instead of booleans the first pass utilized. Most importantly, it took the input system out of Update calls so it would stop checking every case on each frame.
The Health Manager was a collaborative effort. The functionality for sound effects, UI, and animation was set up by my first teammate, the checkpoint functionality was set up by my second teammate, and I set up variable handling and how the different obstacles would interact with the player. Originally, the code that handled the player's death was scattered around the script. It was functionally the same code, so it was refactored and put in its own method for easier editing and legibility.