
Roborun
Roborun is a short, single-player game in which you run through a vibrant post-apocalyptic world as E.L.I.E. This was my first game project at Futuregames using Unity Engine. My responsibilities were the character movement and audio management.
Project Info
Role: Game Programmer
Team Size: 13
Time Frame: 3 Weeks
Engine: Unity
Lane-Based Movement
I implemented a DesiredLane integer variable to track the current lane index and enable movement between lanes. Using Unity's new Input System, the desired lane is calculated by adding the player's input value:
-
-1 for left,
-
0 for none, and
-
1 for right.
The target position is determined in the Update method by combining the lane index, lane width, and current position, ensuring smooth transitions.
Jumping
Jumping uses physics to provide a natural feel. The script includes a ground detection system, allowing jumps only when the player is grounded.
Sliding
Sliding temporarily reduces the capsule collider's height, enabling the player to slide under obstacles without collisions. If the player attempts to slide mid-air, the character performs a downward dash instead.

Character State Manager
The Player State Manager manages and transitions between the player's movement states, ensuring the correct animations are triggered based on actions such as running, jumping, sliding, or entering God Mode. It uses an enum to track the player's current state, which the animator reads to determine the appropriate animation, and bools to handle left and right turning transitions.
This was my first experience handling character animations in Unity, and the animator graph became overly complex. From this, I’ve learned the importance of using a proper state machine for more efficient and manageable animation handling.
Audio Manager
The AudioManager class is a singleton that handles all audio in the game, including playing, stopping, and pausing sounds.
It uses an array of a custom Sound class to manage individual sound properties like volume, pitch, looping, and audio source.
The AudioManager ensures sounds are accessible globally and persists across scenes for consistent audio management.

God Mode
The God Mode mechanic introduces slow-motion and a magnet effect for pickups.
The slow-motion is achieved by adjusting Time.timeScale with a custom currentTimeScale based on the player's progression. This creates a smooth transition. The slow-motion speed also scales alongside game progression.
The magnet effect allows pickups to move toward the player while in God Mode, adding a rewarding and engaging feature.
