Ah, but overkill is the most fun and Richard Burns Rally is still considered one of the best simulators of all time.
Plus on Outerra all of the CPU cycles are free for simulation!
This is how my latest engine simulation goes:
enginedisplacement: 2000 engine size(cc)
RPMTorque=( 0.0, 0.0, 0.0) (rpm,volumetric efficiency(0-115%), boost(bar/psi), This defines the volumetric efficiency and boost at this rpm
RPMTorque=( 250.0, 10, 0)
RPMTorque=( 500.0, 20, 0)
RPMTorque=( 750.0, 45, 0)
RPMTorque=( 850.0, 45, 0)
RPMTorque=( 1000.0, 45, 0)
RPMTorque=( 1250.0, 55, 0)
RPMTorque=( 1500.0, 60, 0.2)
RPMTorque=( 1750.0, 65, 0.5)
RPMTorque=( 2000.0, 70, 0.6)
RPMTorque=( 2250.0, 75, 0.6)
RPMTorque=( 2500.0, 78, 0.6)
RPMTorque=( 2750.0, 81, 0.6)
RPMTorque=( 3000.0, 84, 0.6)
RPMTorque=( 3250.0, 86, 0.6)
RPMTorque=( 3500.0, 88, 0.6)
RPMTorque=( 3750.0, 89, 0.6)
RPMTorque=( 4000.0, 89, 0.6)
RPMTorque=( 4250.0, 88, 0.6)
RPMTorque=( 4500.0, 88, 0.6)
RPMTorque=( 4750.0, 87, 0.58)
RPMTorque=( 5000.0, 85, 0.55)
RPMTorque=( 5250.0, 84, 0.52)
RPMTorque=( 5500.0, 81, 0.50)
RPMTorque=( 5750.0, 75, 0.45) this means at 5750 rpm engine is at 75% VE and has 0.45 bar of boost at full boost.
RPMTorque=( 6000.0, 70, 0.4)
RPMTorque=( 6250.0, 66, 0.4)
RPMTorque=( 6500.0, 60, 0)
RPMTorque=( 6750.0, 50, 0)
RPMTorque=( 7000.0, 35, 0)
boostlag = x this is used to simulate the turbo spooling up, to make it more advanced I've made it a function of rpm, but would be even better to define it seperately for every rpm like for boost and volumetric efficiency. Same with gas response.
maxtorque = enginesize / 10 * (volumetric efficiency + boost) torque(NM) so at full throttle engine will make (0.88+0.6)*2000/10 = 296 NM of torque at 5500 rpm
compressiontorque ~ enginesize / 100 diffrent numbers used, depends on alot of things hmm