SCHOOL PROJECT · PROOF OF CONCEPT
Racing Roguelike
Racing Roguelike was a proof-of-concept singleplayer racing game developed cooperatively in a team of three for a USF class project. The goal was to combine racing with procedural generation. Before each race, aspects such as the environment, terrain, weather, and entire track shape/layout would be randomly generated.

Project Overview
Racing Roguelike was designed to combine a typical racing game with procedural random generation often found in roguelike games. My team and I were tasked with making this over the course of semester, and we took the project from concept to playable demo in that time. The project contains NPC enemy racers, track hazards, boost pads, weapon pickups, random terrain features, and more.
My Role
I collaborated with my partners to design all game systems for Roguelike Racing. I personally worked on much of the random generation of the game, allowing for each race to feel unique. I also worked on car gameplay and scripting, as well as the track hazards and weapon systems.
Design & Development
The environment, terrain, weather, and course shape were all generated at runtime. This forced me to think differently about the game's design. I had to work extra hard to make sure that the generation of each track was done within certain bounds. Too much or too little of any one thing looked odd, and not enough variance in the aspects of some spawned objects would also make it look strange. We also worked heavily on the race mechanics, making sure that the values of speed, angles of turning, tire traction, etc all allowed for fun and balanced gameplay.
Challenges & Outcomes
We learned to be careful in how much variance we allowed in randomization, and also to design systems to safeguard against unintended errors in generation. A good example of this would be tracks generating in an extremely difficult shape to navigate, or environmental props that would block the racing by spawning on the road. Issues like this took trial and error to discover and fix. This taught me that while random generation can give users a breath of fresh air and be interesting, it can also invite a higher risk of bugs due to inability to exactly test any one generation.
MEDIA
Project Gallery






