top of page
Roborun Screenshot 2024.06.08 - 21.20.49.99.png

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. 

ezgif.com-video-to-gif-converter.gif

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.

image.png

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.

ezgif.com-video-to-gif-converter (3).gif
bottom of page