i'm making a car sim.. tried usin Newton but car kept drifting.. tried xxxGuitar's advice (sir thanks for the advice by the way ) but was only partially successful.. i'm now trying A6 physics.. here's the lowdown on what i'm trying to get from the physics..

1. fun physics rather than realistic physics.. i.e. car should be fun to drive even if not accurate.. Newton is so accurate that some fun element gets missed (in my opinion that is )..
2. Physics applied to car body only. Not to tires, glass etc.. all tat is too complicated for me Tires are just attached in a single model.
3. should maintain momentum for quite some time and should have low turning radius

here's the code i've written (for the body). Pretty simple and works well till i take a turn, then it gets awkward.. (lines starting with '//' are parts of an older code i tried and ditched, 'merc' refers to the car body)--


//Code start

var fwd_force[3];
var turning_force[3];
var pan_force_count;
var translate_axis[3] = 0,0,0;
var rotate_axis[3] = 10,0,0;
var merc_linvel[3];
var merc_angvel[3];
var lin_friction;
var ang_friction;
var earth_grav[3] = 0,0,-386;

var mass;
var grav;
//var flag_nopan=1;


action physics_merc
{

phent_settype(my,PH_RIGID,PH_BOX);

mass = phent_setmass(my, 8, PH_BOX);
grav = ph_setgravity(earth_grav); //mass and gravity set, working well


while(1)
{
camera.x = my.x - 200*cos(my.pan);
camera.y = my.y - 200*sin(my.pan);
camera.z = my.z+30;
camera.pan = my.pan; //camera is fine

//my.pan = my.pan%90;

fwd_force[0] = 4000*(key_cuu-key_cud);
phent_addforcelocal(my,fwd_force,translate_axis); //'engine' force

phent_getvelocity(my,merc_linvel,translate_axis); //friction force
lin_friction[0] = -2*merc_linvel[0];
//lin_friction[1] = -2*merc_linvel[1];

if(!key_any) //decrease momentum when no key pressed..
{ phent_addforcelocal(my,lin_friction,translate_axis); }


if(key_cul || key_cur)
{
if(pan_force_count<30) //slowly increase torque applied
{
pan_force_count+=1;
turning_force[2] = pan_force_count*(key_cul-key_cur);
phent_addtorquelocal(my,turning_force);
}
}

if(!key_cul && !key_cur) {pan_force_count = 0;}


wait(1);
}
}

//Code end

i think the major problem here is that the forces added on 'if(!anykey)' don't get removed and car continues to move under the influence of these forces.. is there any way to remove the forces?

i tried adding opposite forces but that doesn't work very well.. maybe i couldn't get the magnitude right..

i haven't added code yet for resetting on flip-over or no forces applied after a critical tilt or roll.. i'll do that once i can solve the force removal problem..