well TMC's Offroad Code began as a DB copy of Marco's Car Physics, which was a 2D C coded program.
it was far from perfect and only used 2D Processed movement... not for the most part this was pretty good, and you could get alot of realism out. However each of the X & Y axis were calculated in turn, rather than together, meaning that when you tried to stop the vehicle it couldn't handle the low speeds becaue the float point wasn't low enough to be accurate - as the speed was being handled as part of the XY movement rather than a vector length.
it also ment when you tried to add height to the equasion it had to have a new seperate routine developed, causing it not to be tied into the original mathmatics of the engine.
when you create physics for any vehicle you need 2 Vectors (both 4D)
Current Vector (X,Y,Z,Speed)
Projected Vector (X,Y,Z,Speed)
ontop of that you also want another 3D vector which handles the Yaw/Pitch/Roll ... this is best determined from a special Data type for the vehicle which takes into account the detail for that particular vehicle. in this case it'd be a car, so you'd need to know each wheel's height calculated from suspension tension + reaction forces - you'll also need to know the previous YPR & the current weighting of the car. (so you can keep it moving in that direction adding or subtracting speed accordingly to the YPR)
now it is easi enough to fake most of those details to get an arcady or real effect whatever you want ... but you will always need 2 4D Vectors and 1 3D Vector

and you should never confuse the Position with the speed calculation, because the position is just an addtion or subtraction based on speed interpoled on the projection by the speed & reaction forces.

its not simple stuff to recreate acurately
Within the Epic battle of the fates the Shadow and the Angel will meet. With it will harbinger the very fight of good vs evil!