Many thanks as always cold_void.
I haven't tried your method yet, but I will, at the moment lack of time prevails.
I had to repeat other peoples' good work just so I could understand the relationships better, so sorry for not using yours, please don't be offended. Here are my own findings, with some easy definite formulae for those that prefer them...
The original Rotational_Inertia value was too high. It MUST be 10%-20% of the angular_drag to work correctly. If it's less than 10% (even at 8%!!) the ship will oscillate when trying to GOTO a target destination (such as a distant jumphole or station). If it s too hight then the ship shoots off at high speed when its hit by another even much smaller ship.
The angular_drag must also be higher per mass unit for the bigger ships than for smaller ones or else impacts will still send the big ships bouncing away as if they were little fighters.
With a lot of time spent in trials, I worked out some "drag/mass coefficients" of my own for this:-
<pre><font size=1 face=Courier>
Mass: 1-199 200-299 300-399 400-529 530-899 900-1,999 2,000-4,999 5,000-9,999
Coeff: 200 320 500 800 220,000 110,000 55,000 1,800,000
Mass: 10,000-14,999 15,000-24,999 25,000-49,999 50,000-199,999 200,000+
Coeff: 1,100,000 800,000 500,000 300,000 200,000
</font></pre>
There are some anomalies in my coefficients as you can see, this is because I wanted to leave the vanilla ships' ratios as they were designed. They are all stable with these coefficients anyhow.
For the ship's handling, the Steering_Torque divided by the Angular_Drag gives us the angular velocity of the ship (i.e. how many radians it can turn per second).
So - this work gave me some easy-to-use formulae that I was able to put into Excel, to compute stable values for all of my ships, using the ship's total mass (hull mass plus cargo capacity), as follows:-
Let's use one of my ships whose mass is 529 (hence my coefficient boundary is at 530 above, I wanted it to be in the lower mass/drag category!)...
1. Set angular_drag = total ship mass x drag/mass coefficent :-
529 x 800, rounded to the nearest 1,000 = 423000
2. The angular inertia is kinetic energy that makes the ship want to continue in its direction of motion, and it works against the drag that tries to stop that motion - for good behaviour it should be maximum 20% of angular_drag, so:-
rotational_inertia = drag x 0.2 = 85000 (rounded to nearest 1,000 again)
3. Your Steering torque should be enough to turn your ship at the rate you want, so for easy numbers let's say we want this ship to turn at a rate of 115 degrees per second, this is about 2 radians, so torque must be 2 x the drag:-
Steering_torque = 2 x drag = 846000 (again rounded to nearest 1,000)
OK so far in theory, but in practice this was a too-simple model, and I had some discrepancies in how some of the fighters rotated in flight - some were very sluggish.
So again trying to keep the model as simple as possible, for ships weighing less than 600 total mass, I used 2 x the X and Y values for the Z (roll) axis steering torque, and 1.8 x the X and Y values for the Z drag.
Here are the final figures then for this ultra-heavy "fighter" weighing in at 529 "tons":-
<pre><font size=1 face=Courier>
steering_torque = 296000, 296000, 592000
angular_drag = 423000, 423000, 762000
rotational_inertia = 85000, 85000, 152000
</font></pre>
EDIT - SORRY! WRONG VALUES ABOVE! That is for a turn rate of 0.7 radians/second. OK for a gunboat.
Thanks Strail
Here are the correct ones for this example, turn rate of 2 radians / sec.
<pre><font size=1 face=Courier>
steering_torque =846000, 846000, 1693000
angular_drag = 423000, 423000, 762000
rotational_inertia = 85000, 85000, 152000
</font></pre>
All of my ships now work well using these formulae, from my lightest ship, the "A-Wing" at 115 "tons", up to my Borg Cube weighing in at 2,500,000 "tons".
Many thanks to everyone, your input was not ignored but very much appreciated.
Roleplay: - the art of self-deceipt!
Edited by - StarTrader on 9/5/2007 3:05:30 PM - thanks Strail.
Edited by - StarTrader on 9/10/2007 3:01:57 AM