Painbow Road
Painbow Road started life as a joke. In 2014, my roommate was participating with me and a few friends in our first ever Extra Life event. Being well known for disliking Mario Kart, he offered to play through every Rainbow Road track that existed across the sixteen Mario Kart titles as a fundraising incentive.
When game day came, he doubled down saying that for every swear he muttered, he would donate a dollar to the charity. Over the course of those two hours, he raised hundreds of dollars as friends donated to the charity and as he cursed.
However, my friends and I were beginning to hatch a plan. What if we made our own Rainbow Road? What if we filled it with pranks and jokes that were targeted towards my roommate? Could we get him to play it? Would it raise more money for Boston Children's Hospital? This was the beginning of Painbow Road.
Technologies Used Painbow Road was written in Unity and uses C#. Over the years it has been upgraded and is currently using Unity 6000.0.34f1. The assets were largely generated by us in Blender. The car was the one provided by Unity as an example of how to make a driving game.
Features Painbow Road has a decent amount of features given that this was one of the first games we worked on.
- A Waypoint/Respawn system
- This was largely based on what Mario Kart does. Each straight segment increments a waypoint counter and acts as an anchor when the player chooses to respawn. This also allowed us to keep track of how many laps the player has done so we can activate certain activities.
- Integration with Twitch Chat
- We wanted the users of the chat to be able to toggle pranks for the player, as well as offer encouragement. The pranks included flipping the camera so the player had to drive inverted, flipping the controls to make steering more difficult, and making the track invisible to the player.
- There was also a mechanic to display a message on the screen for the player to see.
- Integration with Unity's Video Player
- On the second and third laps of the race, floating TVs would active and play videos that were directly targeted to my roommate. This feature was something we had spent a fair amount of time on because over the years Unity has changed how they process this.
Retrospective Overall, Painbow Road is a shining memory for a lot of us and was a stable for Extra Life events over a handful of years. It inspired us to make more games together. It definitely has some pain points. And as I was the one that upgraded it to Unity 6 earlier this year, I can speak to them.
- Our prank system had to be disabled on Game Day because we were overly confident in my roommate's ability. If we were to do this again, we probably should have allowed for a variable rate limit to determine how often people could trigger events rather than hard code it. Additionally, a cool down might have worked a bit better. In the original implementation I queued all of the pranks and once one ended, the next would immediately start.
- Currently Painbow still uses the old implementation for Inputs. This is fine, but as Unity progresses forward, there will be a time when we are forced to upgrade to the new Input System.
- In the original implementation, there was not a ton of thought put into the UI or Settings. For the Unity 6.0 upgrade, I added the some functionality to make the game work better with a controller, but if we choose to upgrade it again, it might be worth adding a Pause Menu or a Settings Menu so the user can adjust the sensitivity of the controller or at least the Volume of the game.
Links Since this was a group project, I do not have the ability to the share the repo directly. Unfortunately due to copyright concerns (specifically for the videos that play on Laps 2 and 3), I cannot publish a version of Painbow anywhere. The media section does have some videos demonstrating the different phases of Painbow's initial development and I shall post one of me playing it in 2025.





