Super Racer
Super Racer is a multiplayer racing game being developed at Little Guy Games. It takes place in an apocalyptic future, where animals have have replaced the humans that once populated the Earth.
Details
Time:             Aug 2021 - Oct 2022
Team Size:   5-7
Tools:            Unity
Role:              Technical Game Designer
Super Racer is a multiplayer racing game being developed at Little Guy Games. It takes place in an apocalyptic future, where animals have have replaced the humans that once populated the Earth.
Details
Time:             Aug 2021 - Oct 2022
Team Size:   5 - 7
Tools:            Unity
Role:              Technical Game Designer
Contributions
- Game Design
- Level Design
- Game Modes & Game Systems Design
- Live-Ops development
- UI Design & Implementation
- Vehicle Controller & AI Controllers
I was hired at LGG (Little Guy Games) in May 2021, and was moved to project Super Racer in August 2021. I was originally tasked with various programming tasks, such as AI development, and game systems, but I was also given many design related tasks. As the sole programmer, I was tasked with overseeing all the on-going game programming tasks, while also planningĀ for future implementation.
I performed multiple design & programming tasks for the duration of this project, while also performing general development tasks as well. These tasks included:
- Database integration
- Vehicle paintjob designer
- Sound retrieval / implentation
Game Mode Design
Super Racer was a live-ops game, with regular updates that featured new game modes, tuned game systems and new levels. When designing the new game modes, I used an iterative approach.
Working with our lead designer, we defined what the goals of the new game mode were, and from there I would start by making some rough prototypes of the game modes. Our initial game modes were meant as weekly challenges, and so while prototyping I would look for modes that were fun, easy to learn, and quick to play. After finding the best fit, I would fine tune the game modes so they felt fair, and consistent, then send to the playtesting team. After releasing the game mode, I would continue to take feedback from both the playtest team, and the community, to fine tune the game mode in the next update.
An example game mode I designed was the coin collect mode. This mode is similar to the coin modes in Mario Kart, where players race around the map to collect coins. In our instance, instead of multiplayer,
the game mode was based on a timer, and your results were compared to other players once completed. When designing this, I had to account for a few things:
1. On subsequent playthroughs, coins would always spawn in the same spot, making the game mode not too challenging later on.
2. Constant updates to levels to account for this would not be possible with our team size.
Thus, I designed a grid-like game system, where each grid section would spawn a level prefab based on some data that was input into the system and also an editor tool used to create these levels quickly.
By doing this, creating coin-collect specific levels would be very easy, and efficient. Additionally, because the level layout was data-based, we could save the level data on the server, which meant that we
didn't have to push an update with a new coin layout every week.
AI Racers
The AI racers utilized multiple systems to simulate other racecars with the major system being their steering.
I began with placing a spline across the different race tracks that the Ai would use as a baseline on where to steer. The AI would have a 'aim target' that was always a set distance ahead of the car. The distance would vary on their speed and 'ai attitude'. Each point on the spline would have a left width and right width, which determined the range of where the aim target would be. As the spline would curve, the aim target would move along with the turn, and depending on the sharpness of the curve, the AI could choose to drift. Additionally, if the curve was very sharp, the AI could choose to brake.
The ai also had an 'attitude' system, which controlled their stats. I based this system on the Nature system in Pokemon, and each attitude would have a buff and debuff on certain stats. These stats controlled different parts of how the ai behaved during a race, such as; how careful they were when turning/drifting, how often they would bump into others, how far ahead they would be planning when steering, and how often they would aim for shortcuts/powerups.
Takeaways
Takeaways
While working on Super Racer, I learned & developed much of my existing technical and soft skills.
One of the major lessons was learning how to manage and delegate tasks as the sole programmer.
I learned much while in this role. As the sole programming, I had an overview of the project, it's current state, and what tasks needed to be done to meet the current milestone. As I was also a designer on the project, I was able to understand the current state of each part of the game as well. As a result, I was able to quickly determine where issues could present themselves, and create plans to reduce their impact. While meeting with the lead designer & project manager, I would bring up time estimates to assist in creating accurate milestones and predictions.
I also greatly developed my programming skills, while working on various programming tasks.
Before working on this project, I was generally a game systems & AI programming. Although I was assigned systems & AI tasks on Super Racer as well, I was also given tasks I havent worked with before, such as the vehicle controller physics, various gameplay mechanics, and database integration. I especially developed my knowledge on Unity custom inspectors & editor tools, which have allowed me to speed up other areas of development.