Since our last post, there have been several updates to the vehicle system. New adjustments to the tire friction behavior now make it easier to perform drifting and drag racing wheelies. In addition, the skidding, tire marks, and ground-contacting particle system have been reworked and updated.
(credit to Edy’s Vehicle Physics asset for the updates listed above)
Next, the wheel colliders have been reworked entirely. Added a dynamic solid collider in which other game objects could collide, which helps prevent the wheels from overlapping geometry during the collision. In addition, the wheel colliders are now using a multi-raycast system instead of multiple capsules. This approach is based on this video from GDC. Using Unity jobs and the RaycastCommands to handle several raycast calls simultaneously has given the system fantastic performance gains. I will implement burst soon since it is now out of preview.
I started integrating softbody physics for vehicle damage, similar to other games on the market. This feature will help us reach our goal of more realistic destruction of vehicles. The softbody physics was tested on multiple machines (low to high end) and mobile devices and has passed our stress tests. Therefore, I will integrate this beside our existing damage system, which supports three times as many vehicles.
Softbody physics is more taxing on the CPU, but a few more optimizations will push this system to the next level. The plan is to apply softbody damage to the primary vehicles and our custom damage system to secondary cars.
Lastly, the automated vehicle set up in the Unity editor is almost complete. It is now straightforward to set up a car and start driving in under a minute—more about this next update.
And a special thanks to the community who have started following us on social media. Your feedback is greatly appreciated and helps to motivate us to move forward. Some of your ideas are helping to mold this vehicle system into something epic. Thanks.
Time to get back to work.