Amazing Curves Racing (ACR) development has restarted after 15 years. Since 2006 I’ve been working on many other projects, ranging from real-time audio/video/music (Myspace Music), to imaging processing (PC, XBox), camera systems, video production, spiritual/health products, 3D audio (Ambisonics, HRTF, VR), Fortune 100 cyber-security, and most recently business-based artificial intelligence in the HR space. In 2002 I used a 2002 C5 Z06 to help with development, in 2022 I’m using a 2011 C6 Z06.
The core simulation is written in MSVC C++ and the GUI is built with Borland C++ Builder. For many years I was unable to get C++ Builder to work with Windows 10, and after a recent fresh install on Windows 11, I was able to get it working. Once basic network play is working again, I’ll migrate the GUI to an OpenGL-based GUI and remove the C++ Builder elements.
I created ACR to accurately simulate driving dynamics for online play. ACR is unique in that it uses bicubic polynomial 3D curved surfaces for the track (modeled in 3DS Max). A custom physics engine computes collisions directly on the curved surfaces, instead of converting them to triangles (triangulation is only used for rendering). The integrator tries to be symplectic or ‘energy accurate’ so that there’s no artificial damping, the goal being more realistic motion. The collision system is also unique and uses a unique iterative impulse method. High angular velocities maintain proper precession using an RK4 integrator (was created for track object collisions at high speed, or when cars tumble). For aerodynamics I use the generalized fluid dynamics system I created for the first consumer commercial full VR game: VR Slingshot (originally written in 32/64-bit integer with elements in assembly language. Now everything is C++ and floating point).
Displacement mapping is used to simulate fine- to medium-grade surface roughness. The curved surfaces are joined continuously/smoothly for the main surface with sharp discontinuities for the curbs etc. A key concept was and still is to quickly set up a car, practice locally, or play online with very little time or effort to get going. The very low latency networked physics engine was designed to make online play seem local. The low level network code uses a custom UDP system for both unreliable and reliable data (no TCP). In 2006 this system worked very well: it will be interesting to see how it works in 2022 where network speeds are higher and latencies are generally much lower. Features were also added to deal with typical online shenanigans, e.g. ramming/crashing.
I’m currently updating the controls and force feedback (FF) code. I picked up a Logitech G923 wheel, pedals and shifter along with a GT Omega wheel stand for initial testing. It’s very impressive how far FF has come since 2006. I’m also testing top popular games with FF e.g. ACC, AM2 and Forza Horizon. The 2006 ACR FF code worked surprisingly well and I’m updating it to more modern APIs and will continue to refine how forces are computed.
In order to improve driving dynamics further, I recently built a Sim Lab P1-X, with a Fanatec DD GT Pro base, Club Sport Formula 2.5X wheel, and V3 pedals, which should cover mid range gear. Also testing the Heusinkveld Ultimate+ pedals so I can make sure the simulation can take advantage of higher-end inputs for braking.