- Compete in a crazy race where the player in first place controls the track!
- Multiplayer
- Released in December 2023 for Steam and February 2024 for Nintendo Switch
- Developed during my time at Hairy Heart Games as a Junior Game Developer
This is the first commerical project I worked on and as such by far the biggest and most complete project I've been a part of. Unlike other projects on this portfolio I wasn't around for the initial phases of this project and only joined a few months before the release with the task of polishing up the game and getting it ready for release.
The first step towards this goal was refining the gameplay a bit more; the game was a bit lacking in depth when I joined the project so I started by prototyping and implementing more powerups. I initially prototyped a Police Siren, a Boost Pad, a set of Flippers, an Oil Spill and a Grappling Hook. In the end both the Oil Spill and Grappling Hook ended up in the game; the others were abandoned due to a lack of development time or for being too confusing to use.
I also added the skidboost system to the game which allows the player to charge a boost by skidding their car; this is a risky maneuver that can help a player catch up to first place or dodge an incoming attack if used right.
This project was also my first time really having to work with a proper codebase written by someone else. Getting these new powerups and systems to work meant a lot of reading and understanding code written by other programmers to keep everything running smoothly.
Return to MAIN PAGE:
Or keep reading about this project!
Prototyping
The initial concept for RallyAllyAlly conceptualised the game as a chaotic party game that you would play with your friends; quick rounds, low stakes and a healthy amount of Schadenfreude.
While the driving already delivered on this when I joined the project the game still lacked in the chaos department, players who were in first place often stayed in first place with those behind having a tough time to catch up. The game also lacked the tools to satisfyingly rubberband; if we simply slowed down the player in first then it becomes unsatisfying to be in first as other players can always catch up, but if we don't then players not in first have no chance to catch up.
The solution was adding more powerups and the skidboost; maneuvers that allowed players behind first to catch up but gave the player at the front opportunity to dodge.
To have a chance of getting these changes into the final game they needed to be prototyped quickly and tested thoroughly. Initial versions of the new powerups and the skidboost were added within a few weeks using placeholder assets, then as a team we decided on the powerups and systems to keep and polished those up for release.

A Legacy
RallyAllyAlly was also the first project I worked on where I joined late into the process. As such all my work on the game required working with existing code and systems which was predictably challenging.
Ontop of this however the game was originally designed to be a live-service game and as such a lot of systems were set up to be easily expandable. This meant well structured code, but also very complex code and a lot of code that didn't end up getting used which meant a lot of trying to figure out where something was being triggered to hook into it to trigger something else that needed to be added.
It also meant having to learn to write cleaner code than what I was used to at the time; as someone who revels in prototyping and GameJams before working on this project my coding practices were, to be blunt, sloppy. Seeing all these things done properly was definitely interesting and together with the code reviews I was able to expand my toolkit for C# and improve the readability of my code a lot.
I also learned a lot about profiling and optimising games as one of our target platforms was the Nintendo Switch which definitely requires a lot of thought to get decent frame rates on.
UI
Outside of the gameplay the other big thing I worked on for this game was UI; Menus, the in-game UI, the round end UI and the victory screen just to name a few screens. Graphic design is definitely a bit outside of my usual wheelhouse so again there was a lot to learn here.
Making sure everything is readable on differently sized screens (we're releasing on Switch, remember?), making sure to use the right colors and making the elements look interesting.
A lot of the difficulty for the UI also came from the existing code, finding where to put the trigger to show a certain element or where to get a certain name or point value was definitely a challenge.

The other projects

Back to Top