I have come up with any idea that sort of works - there's a better solution out there but if anyone's interested:
object 1 is your car
object 2 is a hidden plain of width 1, height 1
All then movement calulations are based on object 2(hidden)
All the rotation calculations are on your object 1 (car)
do
if leftkey()=1 or joystick left()=1 then dec carangle#,turnangle#
if rightkey()=1 or joystick right()=1 then inc carangle#,turnangle#
if spacekey()=1 or joystick fire c()=1 and speed#<maxspeed# then inc speed#,acceleration#
if returnkey()=1 or joystick fire d()=1 and speed#>0 then dec speed#,brake#
if spacekey()=0 and returnkey()=0 and joystick fire c()=0 and joystick fire d()=0 and speed#>0 then dec speed#,deceleration#
if carangle# > skidangle# then inc skidangle#,grip#
if carangle# < skidangle# then dec skidangle#,grip#
yrotate object 1,wrapvalue(carangle#)
yrotate object 2,wrapvalue(skidangle#)
if speed#>0 then move object 2,-speed#
position object 1,object position x(2),0,object position z(2)
position camera object position x(1),cameraheight,object position z(1)-cameraposition
point camera object position x(1),0,object position z(1)
sync
loop
I've tried it - it works. But it's not pretty coding and the effect isn't quite what I had in mind.
I'm still open to suggestion