The torque curve per gear is so cool to see... Back in the days I did record my car's engine accelerating on a flat street (and I did it both ways) and then used a fast Fourier transform to find the engine RPM from the recorded sound.
I then plotted that torque curve (it requires knowing how many cylinders, gear ration, wheel size and a few other things and there are a few approximation [like tires deforming with speed, loss, ...] but it's doable) and, sure enough, the resulting curve was very close to the one given in the car's official book.
Yup, back in the eighties car manufacturers (at least some of them) would give you a book with the gear ration and torque curve nicely plotted.
IIRC you only need to record the acceleration over one speed (say the 2nd gear) and then with the gear ratio you can plot all the gears.
It was my first Java app with a GUI! I probably still have the code somewhere on obscure backups.
That's cool. I tried to write a driving game back in the late 80's ... a little like Spy Hunter if anyone remembers that arcade gem. I did lose myself trying to simulate the gearing — got caught in the circular logic problem described in the post.
I wanted to simulate shifting too soon and lugging the engine (vs. shifting at too high an RPM and having thrown away efficiency/performance). But determining when you were lugging the engine depended on the engine RMP which needed to allow for the gear you were in and the current forward speed ... forward speed determined by what gear you were in, what RPM ... so we're back to RPM... Never mind possible slipping of the tire if you broke traction and spinning out or drifting....
Happy to see someone lay it all out in a blog post.
(And happier still that the folks that did the game Carmageddon did a convincing enough job of all the car physics to entertain me for hours back then.)
A lot of the games are currently getting throttle mapping to RPM wrong. In Assetto Corsa if you put 20% into the throttle in neutral the RPMs will climb to red line and the throttle position just determines how quickly that happens and its because they aren't doing this correctly.
You need to simulate the torque curves
Niels Heusinkveld on YouTube has great videos about this!