About the game and its development conditions

Drag rush is a rhythm action game clad in a sci-fi racer. The player matches inputs to the beat to successfully dodge and shoot enemies in time with the music, with the aim of beating each levels’ boss and placing on the leaderboards.

  • The project took place over the course of 8 weeks with a team of 3 programmers and 3 artists.

  • In addition to coding, I also participated in level/gameplay design, and creating the tutorial.

  • C# snippets below.

My role and contributions

UI/UX Programming
On this project I worked closely with a 2D artist to create the UI. A goal of the project was to maximize the juice of every aspect of the game. To this end, a lot of the UI had moving parts and elements which move to the beat of the music.
I’ve worked plenty with Unity’s canvas system before this, but this was by far the most complex project due to the sheer amount of layers and sprite switch-ups that needed to happen at runtime.

Miscellaneous
The high score saving/loading was implemented using a binary formatter. It displays the correct struct’s name according to highest score by cloning and sorting arrays.
I also worked on the scrolling road segments of the level, again syncing them to both music and the speed of vehicles on the road.
The tutorial of the game was implemented fairly late with little time, but I designed and implemented the code which has some unique triggers and hooks that forced me to rework a lot of the game’s manager scripts to behave differently.

Health bar UI

This controls the health reduction to the player’s health HUD element when damaged. Due to time constraints it ended up being both the UI and the actual health script, used both for the player and the boss.

Scoreboard

In Scoreboard

The scoreboard consists of an array of structs, each containing player name, track, and score. On first launching the game these are automatically populated and saved using a binary formatter.
When the scoreboard is updated it sorts through the 10 entries to arrange them according to score.

Scrolling Road

In Road Manager

In Road Segment

The road segments are 3D objects spawning and moving in time with the music and vehicle speed. This was a challenge due to segments farther out seemingly moving at a different rate than ones closer to the camera. Once they’re out of sight, segments are destroyed.

If I were to refactor this system, I would definitely implement object pooling for the segments.