Today in game and simulation development we typically use some kind of game or physics engine as a starting point. One of the most popular engines is the Unity game engine. Unity has a lot of additional content made by its community.
During my training project laboratory course my team’s task was developing a vehicle simulation solution in this particular engine. Our focus was to create a basic wheeled vehicle concept which can be tailored to any kind of wheeled vehicle. We supported three wheeled vehicles, eighteen-wheelers and everything in-between. We noted multiple points of possible improvements during our project. My task was to improve this project during the semester.
My focus was on the main building block of the simulation, the wheels. I replaced the engine’s built in wheel component with my own implementation. The engine’s built in wheel component has only basic functionality, it does not support wheels with width and different kinds of road materials. Although there are similar addons on the official marketplace like my solution, they are mostly paid products. There are some open source solutions, but they all have some kind of drawback.
My solution does not support different kinds of road materials yet, but I will make recommendations about this feature’s implementation. I greatly reduced the complexity of setting up a vehicle with the project. The suspension and collision detection of my wheel implementation is complete. The collision detection is improved compared to the basic Unity wheel, although the friction forces are not handled as well as in the default component.