Race Engineer: Post Mortem
Matt Ager
Race Engineer: Post Mortem
Overview:
Race Engineer was a great success. My goal with this project was to take on a difficult set of technical problems, as I have done with my recent projects, but while putting a far greater emphasis on creating an entertaining game around those technical problems. From the start I knew this project would take me longer than usual. I planned for 3 weeks of development, including time spent creating media for the release. I managed to accomplish my goals both technically and design wise, to create a project which demonstrates my ability to implement into a fully fledged game (rather than a technical demo), my technical skills.
Successes:
Technical:
The primary technical challenge in Race Engineer was to create an intuitive system to build, select, and race a car where the player’s design determines the driving characteristics of the car. I split this problem into three distinct sections: construction, selection, driving. The construction of the car is discussed in detail in a separate paper, so that will not be covered.
The selection system is fairly straightforward. (For reference, the car’s stats and design are saved in a large class. The body is saved as a three dimensional jagged array storing float arrays of length 4 representing each point’s position and value so that the car mesh can be reconstructed using marching cubes when being loaded into the scene). We simply load each car along with displaying its stats and then the player can select the car they would like to use. From this screen the player can also remove cars from their garage.
The driving system was a surprisingly difficult challenge. Creating a believable car controller is an intricate process which becomes unintuitive very quickly. Instead of controlling the car using Unity’s 3D physics system, I decided to instead simply drive in two dimensions. I did this for two reasons. Firstly, simplifying the system allows for more direct control over the handling and driving characteristics of the car, which would become muddled when dealing with the more complex systems of a 3D driving controller. This would lead to a necessity for a far more complex and unintuitive car construction system. Secondly, in Race Engineer, there is really no need to have 3D movement as the tracks are perfectly flat. The added interest when driving on a track with an average gradient of a degree or two is negligible, unless the game is built around crazy tracks (ie. Trackmania 2020). The driving solution involved 7 player controlled variables: drag, downforce, mass, power, torque, grip, brake horsepower. Drag and downforce are the most important variables as they describe the top speed of your car, your braking ability, and the traction your car has while cornering to prevent spinning. Likewise they are the most difficult to adjust as the aerodynamic properties of your car are less obvious to tweak than just changing the engine or tires. These variables interact to create a significant variation in how each car behaves. The different tracks and track sets force the player to create cars with specific handling characteristics in order to compete. This encourages the player to create a more diverse garage and to try new concepts.
Failures:
Art:
I am unsure if I will ever be able to make sleek user interfaces. In all of my projects, usually, what I am least happy with is the UI. As I am not an artist I do not enjoy creating UI or other art assets and thus I have lower standards for such assets. Even after consulting many UI design articles and practicing over the course of the past few months, I am still unable to create good looking, satisfying UI.
Take Aways:
From this project I learned a great deal about time management and planning when dealing with larger projects. Each time I complete a project I am better able to predict the timeline of the next project. After this slightly longer project I feel I will be able to plan out future projects with a level of accuracy and precision I was not capable of previously. Along with better time management skills I also improved my ability to create intuitive, user friendly systems. The complexity of the player process of creating a car to bring it out on track could have been far more complex than it ended up being. The workflow was very straight forward and hints were left for the player to follow if they get stuck or confused. I can think of a number of instances where I could improve a project by adding a more easy to understand flow to the steps involved in completing the player objective.
Get Race Engineer
Race Engineer
Build, Refine, Race!
Status | Released |
Author | Matthew Ager |
Genre | Racing, Action, Adventure, Simulation |
Tags | 3D, Arcade, Experimental, Exploration, Low-poly, Singleplayer, Unity |
Languages | English |
More posts
- Race Engineer: Car Creation SystemDec 15, 2020
Leave a comment
Log in with itch.io to leave a comment.