I just tested a bit quickly and I think there are certainly ways to detect drifting. max_tire_speed() vs speed() gives an indication of how the tire speed differs from vehicle speed so that should work.
Also there is a velocity() method available which gives the linear and angular velocity, either relative to the model or relative to the world.
I don't think I'm smart enough to use this
, but I'd think this provides a lot of options to calculate the angle of the car with regard to the direction it's moving in. Together with the tire speed difference it should be possible to add in some nice squealing tire effects.
@josem75: It's just a general idea, but maybe someone smart could use the velocity data to recognize when the car starts to bounce and correct the forces on it using the extra_force() method.
@PytonPago: The script the BMW uses right now already accounts for the gears and max speeds per gear. Of course this should be accounted for when implementing a manual transmission, but I don't see any problems on that front. Like I mentioned in an earlier post, my adapted script has realistic gear ratios and torque per gear. It only accelerates a bit fast if you use high slip values.