We're tweaking the acceleration code like crazy to try and get a good feel. The problems are as follows:
1) Sometimes you want to pour on the speed, especially when trying to dodge or when you're at a standstill.
2) Sometimes you want to make lots of little changes to your speed to get precise aiming.
How to tell the difference programmatically? Or how to provide a suitable mechanism for determining which to use?
In the "automagic" camp, there's an "acceleration model" known as "ethan1", which guesses based on your velocity and which way you're facing which of the two cases you're in. If you're thrusting in a direction you're mostly already travelling in, it looks at your speed -- too much speed throws you out of control. If you're moving opposite, then it looks at your speed, but the opposite way -- you're trying to slow down, so the faster you are going in the wrong direction, the more accel you want. These aspects feel pretty good, except when you're trying to reverse direction, which takes a little bit longer.
But then there are two cases when you're flying sort of perpendicular to where you're thrusting, and these aren't clear. Maybe you want to make a big course correction, but maybe you're tweaking your velocity or trying to come to a stop. Hmm, maybe I should look at velocity again.
Ethan