The idea for fantasy Olympics came from my suggestion to combine fantasy and sports following a conversation where we shared our skills and interests, as all of us were interested in one or both of them. I highlighted that I felt it was an underutilised market, as both are huge but considered near opposites. As I was specifically interested in fantasy and racing, I felt there wasn’t any media that satisfied both markets in that case.

Therefore, I was keen to work on a fantasy racing game. While racing games are quite an oversaturated market, and karting games are often set up for failure in comparison to Mario Kart, I felt this combination of aesthetics and the audience it could appeal to was unique and underutilised. As the aim of this franchise was to bridge markets that may not be familiar with one another, it was important to make this game accessible. Therefore, I intended for it to be a kart/arcade racing game instead of anything more technical and sim-esque.

I began with a mood board to help present the idea to my teammates and find any aesthetic matches for inspiration. It was quite difficult finding aesthetic matches, which supported my feeling that this was a unique idea that is worth exploring and utilising. Whacky racers was a key example, both as a personal inspiration, and for translating to other people the aesthetic variety and playfulness I was aiming for. There was an idea early on to lean into a hand-build soap box car aesthetic with mechanics for customising cars almost like Bad Piggies. However, this would have made even a demo a much greater technical challenge.

image.png

I also had inspiration early on for a race team before we even had an idea of what all the nations would be like. I essentially wanted to make a race car that looked like a suit of medieval European armour with inspiration from Lord of the Rings Gondor and the “white knight” look.

image.png

This would form the basis of our first nation and how we would establish the others. We had a couple of ideas on how our nations would be formed, primarily Maria’s idea to create completely new cultures based on sports instead of taking inspiration from any pre-existing ones. However, we decided that taking inspiration from established real and fantasy cultures like I had done would be a much more straightforward choice and allow for more distinctive designs. It would also allow us to take another interesting direction by taking inspiration from the cultures of the team members. We fortunately have quite a diverse team and taking inspiration from them would result in a more personal and thoughtful world. I made the suggestion for each team member to create a moodboard for their respective culture including clothes, architecture, items, patterns, symbols, environment, etc. This would be useful for me to design cars, but also for anything else we might do.

image.png

Once the nations had been established, and the culture mood boards created, I was able to put together some more car concepts. We also came up with the idea to loosely base each nation around the 6 D&D traits to assist in distinguishing them. So I started by finding a car that I associated with each of those characteristics, and then finding elements from the mood boards that I could incorporate.

Following the first meeting, I got to work on the game as quick as I could as I wanted to try developing it on Unity and didn’t want the learning process to delay it too much. I wanted to try Unity because I have felt a lot of friction with Unreal engine when trying to develop graphically and mechanically simple games, and it would allow for a less bloated game overall with simpler code and lower performance requirements. I found a video from an indie developer explaining the fundamentals of their car physics in an incredibly intuitive way. They also displayed some of their Unity code, although left much for the viewer to figure out themselves. The floaty, playful physics and simplicity of the dynamics were exactly what I wanted to emulate. I got most of the way into implementing these before meeting with everyone again where we set out a clearer idea of everyone's goals. As Dong was interested in joining me in developing the game, I ended up needing to switch to Unreal Engine.

As the video I originally used explained the physics at such a fundamental level instead of focusing on the code, it shouldn’t have been too much trouble to transfer everything. However, unreal did have some particularities that made it a challenge. Primarily, that was the lack of a straightforward equivalent to Unity’s fixed update which allows for consistent physics. But the majority of my time wasn’t in getting the basic physics of suspension, moving, and turning working, but instead in implementing additional code to give it the precise feel and levels of customisation I wanted.

I aimed for a balance between simplicity and intuitiveness. While simple physics may seem the best route to intuitiveness, people do have an inherent sense for how real world physics react to inputs despite its immense complexity. Therefore, ignoring the subtler parts of car dynamics can result in some unintuitive results. However, I had to avoid making it too complex as it may end up giving a player too much to think about, and just be a pain to develop and customise.

I also aimed for a balance between an accessible “pick up an play” skill floor, but for there to be an extra degree of speed accessible at the skill ceiling to provide rewarding gameplay for the more dedicated players - similar to Mario Kart. Although the game is intended for controller, I did the majority of my testing using a keyboard. As I am someone who plays racing games frequently, the analogue inputs of a controller give me much more control. Therefore, using digital inputs ensures I play more similarly to a less skilled player who would only be pressing the triggers/sticks at 0% or 100% and nothing in between anyway. However, I would occasionally check on a controller to make sure I still found it fun to play when aiming for fast laps. I also made sure to test with team members whenever I had the opportunity.

I implemented plenty of custom mechanics that do not apply to real driving, but instead are intended as subtle assists to make the driving straightforward. One example is a formula that decreases the angle of the wheels at max steering input as the car goes faster. This is so that the driver has better control at high speeds, but doesn’t loose the ability to turn tightly at low speeds. However, a linear transition would be too jarring, so I used the graphing website Desmos to create a formula that included the adjustments and variables I required, such as the minimum and maximum angles, the maximum and minimum speeds those angles would happen at, and the smoothness of the transition.

image.png

image.png

Some other car mechanics I developed myself include