I decided that before I went haring off over the entirety of the ship a hundred times testing the introductory story sequences, I should really make the control feel a little better. It had been bugging me for a while. A couple aspects in particular just made it feel sluggish and unresponsive:
- It took too long to get moving when you were on the ground
- Jumps felt downright floaty
- Changing direction in the air was basically impossible
Addressing just these few issues made a radical difference. I’m kind of blown away what an improvement I was able to achieve with minor tweaks in behavior. Here’s what it looks like in another emotional rollercoaster of a video:
For the movement on the ground, I was starting the player off relatively slowly, then uniformly accelerating them if they had the run button held down. The initial speed values for walking and running were just too slow, and bumping them by 40% or so immediately made the control feel more responsive. Before, trying to build up any speed was like running on a slick surface, but stopping was always immediate. Now, whether you are walking or running, you start at a fairly good clip, and even though you’re still accelerating relatively slowly (2.5 seconds to accelerate to full running speed) it feels like you’re going places immediately.
Getting the jumping to feel satisfying was a bit harder. A lot of game bloggers recommend not using a physics engine for platformers because it’s too hard to make the jumping to feel right. But those who have pulled it off have one piece of advice: pump up the gravity by a lot. I increased my world gravity to 30 m/s/s, then played around with the jump take-off speed and how long holding down the jump button would make the jump boost higher. Fiddling with those numbers at runtime using the control tweaking system I built earlier, I was able to get the jump height where I wanted and feeling much snappier. Finally, I decided to enable much more meaningful air control for jumps. It’s completely unrealistic to be able to control the arc of a jump in the air, but for this kind of game it makes things much more enjoyable.