Thrust Ship Flight Dynamics

July 13, 2011 by Terry

In Retrobooster, you control an Asteroids-style thrust ship. You can thrust forward or backward and rotate clockwise or counterclockwise. Thrusting backward is unusual for this genre, but I think it’s a nice addition.  The genre, specifically, is multidirectional shooter (or tunnel-flyer in some circles). This isn’t the most challenging game development topic, but it takes more thought and tuning than you might imagine and is critical to this game.

Since most of what you do in Retrobooster involves flying and blowing stuff up, the very first decision in the design process was to make flying feel as freeing, powerful, and generally awesome as it could possibly be. People often say the best quality of Grand Theft Auto III and its sequels is their open-world nature, but I think the most fun part is that driving just feels so good. The first goal for Retrobooster is to make the flying feel marvelous.

Here are some gripes you might share: thrust ships with low acceleration or low top speed, fighting against gravity all the time, and heavy-gravity levels. I wanted to start by leaving all of these out. Low acceleration and low top speed can make a game easier to learn, but they also make games feel sluggish. An acceptable alternative might be to let you increase your ship’s power as you advance through the game, but Retrobooster is not the right style of game for that solution. It’s not about character building, more about getting high scores.

Too much gravity can also diminish the fun. Fighting against gravity to stay in the air can be a good challenge, but I want players to be able to focus on blowing stuff up. Therefore, I decided to keep gravity low so that it would remain simply a tool to help you land your ship and a means to have some projectiles fly in an arc instead of in a straight line, which makes dodging enemy fire more interesting. Heavy-gravity levels are an obvious addition to a game like this, but I also plan to keep those out unless I can find a novel and extra fun way to implement them. They can be likened to the ice levels in platformers where you have poor traction and slide all over the place. Sure it’s an added challenge, but it’s often taken too far and just ends up feeling like an extra layer of frustration. A more likely addition to Retrobooster will be zero-gravity levels, which offer a different game dynamic without the frustration.

That was all a good start for flying: make acceleration responsive, let players fly fast, and keep gravity low. But after playtesting with several people, they still thought gravity was too high. After some tuning, I got it down to where people liked it. The second thing players said was that flying was too difficult in general. I was worried that would be the price paid for allowing high acceleration and a high top speed. Specifically, they said they wanted a way to put on the brakes when they lost control. A braking button seemed redundant since there was already a button for shields, and this would add another button, further complicating the controls.

After some consideration I figured out a decent acceleration cheat. I programmed the thrusters to exert more force when decelerating than when accelerating. This gives you a distinct advantage when trying to stop before you run into terrain or any other object. Also, it didn’t add any more buttons; with any type of human-machine interface it’s almost always preferable to eek more benefit from existing controls before adding new controls. Care must be taken when tuning this “decel-boost” feature; if there is too much difference between rates of acceleration and deceleration the controls start to feel inconsistent and confusing. As of writing this post, deceleration exerts exactly twice the force of acceleration and no playtester has complained about it feeling wrong. This value will likely change after more testing.

Accurate aiming was another problem. Sometimes playtesters wanted to rotate their ship just a tiny bit to aim at an enemy, but the ship rotated too fast, making accurate aiming very difficult. The solution was to make the rotation rate increase from zero to full rotation instead of instantly rotating at full speed. This way, tapping the rotate button would result in a very small movement, making precision aiming very easy. I tuned this rotational acceleration so that it is slow enough that players can make precision turns and fast enough that they don’t notice any lag when they press a rotate button. Getting the perfect balance is tricky but very satisfying.

The flying in Retrobooster is tuned to keep the game action fast. Its fast-paced nature can make it more difficult to learn than it otherwise would be, but it keeps the game from getting stale as your flying skills improve. Care has been taken to keep the controls simple, precise, and as easy to handle as possible, even at the cost of realism. Although, the door is still open to any and all ideas that would make the flying more fun.

3 Responses to “Thrust Ship Flight Dynamics”

Leave a Reply