July 2019: When Real Feels Wrong
Long ago — in what feels like a different era — when we first got the inkling to add physics and gravity and chain reactions into our nascent, mostly unremarkable space combat game, we hit a challenge almost immediately: how much gravity do we want?
Gravity would play a critical role in our game, being the main driving force behind the exciting chain reactions we wanted to deliver, and contributing heavily to the weighty, tactile feel we were hoping to evoke. We needed gravity to be strong enough to create satisfying crashes, while still varying gravity noticeably from world to world, and we needed for gravity to be an ally rather than an obstacle.
But those goals are not where we started. As a life-long astronomy lover, the question of gravity seemed like a non-issue at first: these aren’t random made-up planets we’re talking about, they’re actual worlds with actual surface gravity figures I could just look up on and plug in, right?
Well, not so much. I had anticipated problems with tiny asteroid Vesta and cheated by substituting Lunar surface gravity in its place. But Venus, with its gravitational pull rivaling Earth’s, shouldn’t have felt nearly so floaty — this needed some more investigation.
Even though none of our space battles would take place on Earth, I figured I needed to get Earth gravity to feel right before worrying about the rest of the solar system. Bumping Venus’s gravity to a full and proper Terran 9.81 m/s², Earth gravity still felt ‘floaty.’
What’s going on? Two main factors came to mind:
First, with no familiar markers like buildings or humans or depth-of-field effects, it can be hard to get a sense of scale. Even though the spacecraft in the game are modeled in the physics engine similar in size to cars and trucks and small planes, it’s hard to tell if they are full-sized or toy-sized.
And “toy gravity” is a much stronger than real gravity. Without getting lost in the math, just know that a 1:10 scale model of a car pushed off of a 3-foot table top by a cat will hit the ground much quicker than a full-size car driven off of a 30-foot cliff. Thanks to the tireless work of our aviators and air traffic controllers, seeing full-sized planes collide in mid-air and go into free fall is not a common sight, whereas most people who’ve tried to fly a toy remote-controlled aircraft have crashed one at least once.
Second, everything is moving. The player is continuously flying to the right as a steady stream of enemies fly to the left, which adds a sense of urgency absent from many other physics games. When you are fighting against a bunch of green pigs that are content to stay put as you knock their fortress down, a little bit of dramatic tension as high blocks slowly give in to gravity’s call is fine. But when an enemy is going to be flying off-screen in a few seconds, you want gravity to get on with it.
Worse, if gravity doesn’t get on with it, then you’ve got a lot of extra debris you need to dodge. Suddenly, the space trains that we want the player to get excited about shooting down for chain reactions become high-risk hazards the player will most likely avoid.
With these things in mind the only thing to do is experiment with some different scales.
My first thought was that something in the 1:18 to 1:48 scale range — between action figures and Lego® bricks — would have a nice feel to it, but this turned out feeling way too heavy and with a bit more experimentation it seemed like the 1:4 to 1:12 range is closer to what we want.
We’ve toyed with the exact values quite a bit over time; as of the current version, we’re using a 1:9 scale which seems to be the perfect balance of making the three planets feel significantly different from each other while leaving none of them feeling outright weird.
And gravity is just the start of the story of making things less realistic in the physics engine for the sake of making them feel more realistic. We’ve had to take extreme liberties in object density to get gamefeel right — the floating ice chunks in the zero-gravity comet level? They’ve got the same density as stainless steel. And sometimes we’ve even had to model spheres as pentagons so that they wouldn’t just keep on rolling forever.