Impetus
ROLE
Solo Developer
DESCRIPTION
Impetus is a fast-paced airplane racing game. The player flies through a map called Oasis that incorporates player choice and incentivizes risk for reward. The game focuses on using progressive UI to keep the player engaged and give a sense of progression.
YEAR
2024
GENRE
3rd Person, Airplane Racing
PLATFORM
Windows
Background/Goals
This project was made completely from scratch and is currently a work in progress. My goal with this project is to challenge myself and create something fun that is outside my comfort zone. Due to this being a racing game, I want to focus on fast paced fun while also allowing player choice through level design to keep the map fresh and exciting. Additional focuses of this project will be to keep the player engaged through UI and level design, alongside interactive boost mechanics and a toon-like, low polygon art style.

Challenges
Since this is still a WIP, I haven't encountered too many challenges as far as implementation yet. However, there are some key design challenges that I would like to solve for this project going forward.
-
Level Interaction
-
Player Choice
-
Visual Clarity
-
Replay Ability
Level Interaction
Solutions
This is being solved by adding in features to make the level feel more interactable. Adding things such as checkpoints for the player to seek out in the level help this, but that isn't quite enough to solve the problem yet. Some things that could be added in the future to solve this would be...
-
AI racers
-
Destructible environments
-
scripted events
Player Choice
Solutions
There are many ways player choice can be improved. This challenge is being solved by adding in high-risk, high reward shortcuts that players can take to give them options. I am also going to add in some speed boost pickups the player can go for that are located in more difficult to reach places. These things will give the players an option to continue following the linear "safe" path to ensure they maintain their speed, or they can risk crashing but be rewarded with time cuts or resources that could help them take back 1st place if they are behind.
Visual Clarity
Solutions
As a level designer solving this issue is one of the top priorities for this project. If visual clarity is not maintained by making my level design too distracting, then it can take away from the experience rather than add to it. There are a couple of ways that this can be solved...
-
adding visual clues
-
using toon shader to make level visually pleasing but not distracting
-
Interactive UI that informs the player
Replay Ability
Solutions
This is being solved by adding in an updating UI that shows the player the total time of the race ticking up and the total time the current lap takes. This can be built upon by adding in best race time or best lap time to incentivize player improvement. However, more things could be added to make this even better...
-
More levels / level picker
-
More options for different planes
-
Planes with varying stats
-
these can be earned through tasks
-
Mechanics/Features
Flight
The flight mechanic is the core of the player experience. I made the flight mechanics more drifty/game-like rather than realistic to try and hit the overall feel of the fast-paced chaotic style I want to go for.
This system was achieved by creating variables to calculate speed as well as making input axis mappings to control the flight experience like roll and more three-dimensional movement.
Finally, animations were coded through a poseable skeletal mesh. This system allows moveable parts on the plane, such as the rudder, elevator, and propeller. This makes the plane feel more interactable due to the animations changing depending on player input.
Check Points
Checkpoints are an integral aspect to the players experience. These checkpoints are tracked and can be used to stop the player from continuously crossing the start line until they win.
This can be achieved by requiring all the checkpoints to be passed through before the start line can update what lap you are on. Variables to track this are being used through the player controller, macros, and HUD, so implementing this won't be difficult.
These checkpoints are also used to save the players progress through the level. When a player crashes and explodes, they will respawn at the last hit checkpoint or at the start of the race if no checkpoints have been hit.
UI
The UI system is very important for keeping the player updated on the current state of the game. It shows the player all of the information they need to know to complete the racetrack.
This system makes the game more interactable. The UI is also a useful debugging tool because it tracks whether certain aspects are being updated.
This system allows the player to track last saved "Best Overall Time" and "Best Lap Time". The UI also saves and loads the best overall and best lap time for the given map. The system is very scalable and flexible so you can have different best times for different maps.
Boost
The Boost system is a resource that can be acquired by taking risky routes. The system increases the players speed when used. The boost pickups are placed in harder to reach areas.
This provides the player more options on what they value more in a run. Would they rather risk exploding and losing time while going for more boost or go for the boost and be rewarded with more speed.
Level Design Process
Sketch
While designing a level I always start with sketching. With this sketch I try to determine size and placement of key features. This process allows me to think about where I should place boosts, checkpoints, and obstacles.
Illustrate


After sketching I then move into illustrating the sketch into an orthographic map. This stage allows me to fine tune scaling and placements of features to improve the flow of the level. The product will also provide me with a good reference for prototyping.
During this process I also develop a level design document. Doing this ensures that all features and design decisions are set and scoped correctly for the time frame. This ensures that the development process is as smooth as possible.
Prototype
After documentation and the map illustration is done, I then move onto prototyping. For this I utilized the landscape tools in Unreal to achieve the goals of the map. The scale of the mountains and flow of the is track set. Adding in the obstacles and other level interactions are done after the gameplay loop is further into development.
Gameplay Loop
Once the level is prototyped my next step is to develop the gameplay loop. This stage typically takes the longest and often requires iteration on certain aspects of the level prototype. These changes are reduced by pre-production, however. During this stage is when I develop all the game mechanics and make the level more interactable.