I'm failing at maths and physics again.

In order to calculate the amount of time required to flip the ship around (relevant to getting the right time at which to switch from acceleration to deceleration), I need the angular acceleration potential of the ship, and that should be it. So...

(shipAngAcc in °/s², timeToFlip in seconds. 90° * 2 because we need to accelerate, then decelerate the rotation.)

`Mathf.Sqrt((90° / shipAngAcc) * 2) = timeToFlip`

Does this look about right?

My brain isn't firing on all cylinders right now, but:

1) I need to turn 180 degrees.

2) My ship has (for example) an angular acceleration of (4 degrees-per-second) per-second

3) Using d = (1/2)*a*(t^2), I get:

180 = (1/2)*4*(t^2)

180 = 2(t^2)

90 = t^2

sqrt(90) = t

9.48 ~= t

So 9.48 seconds to flip without coming to rest. Which isn't the answer we're looking for, but anyway.

4) Just targeting 90 degrees, with the deceleration from there being a mirror of that:

90 = (1/2)*4*(t^2)

sqrt(45) = t

6.71 ~= t

So 6.71 seconds to reach 90 degrees, and then 6.71 to come to rest at 180. So in the neighborhood of 13.4 seconds for the full maneuver.

To sanity check:

1st second - start at 0 degress-per-second, end at 4 degrees-per-second, so 2 degrees travelled

2nd second - start at 4 degrees per second, end at 8 degrees-per-second, so 6 degrees travelled this second, 8 total

3rd second - from 8 to 12, so 10 this second, 18 total

4th second - from 12 to 16, so 14 this second, 32 total

5th second - from 16 to 20, so 18 this second, 50 total

6th second - from 20 to 24, so 22 this second, 72 total

7th second - accelerate for 0.71 seconds, from 24 from 26.84, avg 25.42, so 18 for this interval, 90 total

7th second part 2 - decelerate for 0.29 seconds, from 26.84 to 25.68, avg 26.26, so 7.6 for this interval, 97.6 total

8th second - from 25.68 to 21.68, avg 23.68, 121.28 total

9th second - from 21.68 to 17.68, avg 19.68, 140.96 total

10th second - from 17.68 to 13.68, avg 15.68, 156.64 total

11th second - from 13.68 to 9.68, avg 11.68, 168.32 total

12th second - from 9.68 to 5.68, avg 7.68, 176 total

13th second - from 5.68 to 1.68, avg 3.68, 179.68 total

14th second - from 1.68 to 0 in 0.42 seconds, avg 0.84, so 0.35 this second, 180.03 total (the extra because I rounded pretty loosely earlier)

So 13.42 seconds via a rough approximation model.

So looks like your:

"Mathf.Sqrt((90° / shipAngAcc) * 2) = timeToFlip"

would work better as:

"Mathf.Sqrt(90° / (shipAngAcc / 2) ) * 2 = timeToFlip"

If I'm to be trusted with math, that is. And I'm not.

Recent advances in glorious soviet engineering:

New shipbuilding procedure is resource-intensive but finished. Might have to make it a coroutine to stop the game from freezing for a few frames every time a new prototype is introduced (mass produced ships just use the component coordinates from the first one, which is a lot faster). Either way, we now have symmetrical ships with turrets and sensors on the outside, thrusters and spinal weapons in line with the Centre of Mass, and tougher parts being placed towards the front, all while keeping a minimal profile.

Glorious indeed!

Though a coroutine still runs on the main thread, it would just be something you could spread over multiple frames. You could multithread to really offload it from the main work, but that gets into a whole other can of worms where you'd need to send that other thread a copy of

*all* the relevant data that was even theoretically capable of changing during its execution, or else have a lot of locking on "shared" mutable data. So I hope coroutining fits your case (and you don't need to use Unity's coroutining for that, you can just write it to be done in multiple pieces, and do one piece each frame or whatever), or you find some other way of optimizing it

Guns have been balanced a great deal to no longer result in reload times exceeding the average ship lifetime by a factor of 30.

Sounds like you could have gone the other way and saved a lot on ammunition stowage! "Um, comrade, why does gun have only one bullet?" "Relax, comrade! We only get one shot."

20,000 RPM guns have also been balanced out, since the safety equipment for them outweighed the rest of the ship and looked rather silly.

What is this "safety equipment" you speak of?

Made lots of little sanity checks (Isn't that an Arcen term?)

What have we to do with sanity?

such as keeping fleet bureaucracy from ordering ships to be build that couldn't be afforded

Alas, sometimes realism must give way to game design considerations.

(and accidental ship collisions leading to more kills than gunfire or deliberate ramming).

It is as it should be! It isn't so much crews taking ships into battle as it is terrified skaters going onto the ice with intermittent rocket boosters attached to each skate.