Cars roadmap
Added 2022-09-22 04:32:32 +0000 UTCI have previously said that the next post will be an overall roadmap of development in Udon, however, the subject of car development was too big to be combined with my other Udon work.
What will be different for the cars?
Firstly a new map for the Udon testing world will be created to test cars in different situations.
- Suspension testing, not just speed humps. Actually yes, just more elaborate and lengthier.
- Ground surface testing. Including grass, sand, snow, water (currently only present in the private test maps).
- More tunnels and loops.
- More tracks built into the map.
The current car physics will be kept maintained but deemed as "legacy", meaning you can still drive some of the existing cars on my maps. There are some features which have been or are being backported to this legacy version:
- Different wheel collision methods, including tire patch mode for offroading:

- Turbo improvements and supercharger implementation is still on the way.
- Upcoming menu system.
- Upcoming new engine sound system.
What's new?
In the "new" physics, which was waiting for a stable Udon v1.x release, has now been the main focus since VRC's CreatorCompanion update. Compared to legacy, this car new physics framework that I have been writing has the following:
- Modular components thanks to inheritance support in Udon v1.x.
- Each component can be measured to check the accuracy of the physics and data. For example:
Tire telemetry output up to SAE J670_200801 and ISO 8855:2011 standards.
Replica of a car performing close to real spec using real units of measurement (SI, imperial). - Support for > 0 number of differential and wheel components instead of just 4 wheels and 2 differentials.
- Support for multiple tire models: simplified Pacejka, MF 6.1, brush tire model.
Why keep the legacy version?
There are some risks involved and more development required with the newer car physics.
1. Being more modular means being less Udon friendly. Udon performs best in one class (one CS file) with all the code in it. Abstraction and inheritance will be less performant since Udon is 200 to 1000 times slower than regular C# in Unity.
2. Having reference to match the driving feel to. The legacy physics feels nice to drive, however, it is very hard to measure due to the nature of the code built over the year and a half. Having easier ways to measure and read data in the new physics version will let me understand better on what could be incorrect/tuned for car setups.
Turbo and supercharger
Turbo improvements will include: better back pressure calculation and BoV sound logic. An addition of a supercharger component for car builds.
Menu system?
This will be useful for having per user preferences in the world, and to be able to see information about the car. Once VRC releases data persistence, we won't have to go to the settings menu every time we spawn into the world instance. Some general features are outlined below:
- CPU and GPU Performance settings.
- Car information, specs, settings.
- Gamification for worlds: lap times, points, etc.
Car sounds
I will be working on a new system that blends multiple engine sounds together in a nicer way. This includes the whole RPM range, not just the load and coast sound.
One caveat is that engine sounds are very hard to source, so I will be sticking to one sound for the interior and exterior of the car. For example, I could be recording an engine sound from a Youtube video, next is to clean up the sound and trim it for a seamless loop in Audacity. The cleaned up sound in Audacity may seem good, however, once tested in Unity by driving and tweaking the sound parameters, it may have been wasted effort just because it sounds bad.
Directional sound is another venture I would like to explore, for example:
- The supercharger sound on the Lancia 037 Group B.
- Exhaust sounds.
- Other directional sounds specific to a car model/build.
Thank you very much for your support!
Feel free to ask me anything related to the development.