Ship construction, component variations, prettier visuals, thrusters-you-can-switch-off (I failed to notice that the AI was unable to throttle down), smoother rotations, brake-to-rendezvous and a single class to handle all things related to the camera and the GUI...done!
Well, functional, at least. Still needs lots of work - but it works!
Now I'm looking at refining the rotate-to-aim code again, because they're still doing some spinning around the Z axis, and I finally understood why - because they just compare their angular velocity's magnitude to the angle-yet-to-traverse, the AI has no way of noticing when it's going in circles around the direction it's meant to point at. I'm bad at explaining this, so let me illustrate it with an example:
- Ship has angular velocity to the right, and its nose is currently pointing above the target
- Ship accelerates its rotation downwards to meet the target
- Shorty after, the ship has downward angular velocity, while pointing to the right of the target
Unless the angular velocity is so large that it triggers the AI's "fukc directions, we're spinning too fast, just de-rotate!" safety, they will continue to rotate *around* the right direction.
Now, I realise this is probably not exactly anyone's speciality (it certainly isn't mine), but can anyone explain to me how to check whether a Vector of rotation is, roughly speaking, going "the right way"?
I've done some testing, but so far I wasn't able to get a good grasp of it. So thanks if anyone can help a little