the making of Outer Space Transport Service
Thought I would share an early concept drawing that ended up looking almost exactly like the end product.

the illusion of control
Implementing rotation control in a physics engine turned out to be more complex than expected, as you can see from this early planning diagram (which is almost exactly what ended up in the final game). Since the player's ship is part of the physics simulation, it's subject to all forces in the simulated world. That means that crashing the ship can result in angular velocity (i.e. spinning) that is impossible for the player to cancel out given only the basic Asteroids-style controls (e.g. hold left to turn left at a constant angular velocity, let go of left to stop turning instantaneously).
My solution to this was to add an auto-stabilizer that would stabilize the ship by applying a damping force until the angular velocity reached 0. However, trying to rotate the ship while the damping force is in effect makes for a rather janky experience, so I decided to simply ignore player input while the auto-stabilizer is in effect. After I did that, I noticed that it felt bad to have to wait for the ship to stabilize before trying to control the ship again, not to mention it would have seemed to new players that their inputs were being eaten, so I implemented input buffering, which is what you see taking up more than half of the state diagram. You still can't control the ship while the auto-stabilizer is active, but at least you can act as soon as the ship is fully stabilized.

Thank you for reading. You can play Outer Space Transport Service here.










Take care now: https://ldjam.com/events/ludum-dare/49/devils-sitter





