So this post is going to be a little different. It’s going to be the first of a series of shorter posts (or maybe not always so short) doing deeper dives into how we have come up with the mechanics we are including in our game, and talking about some of the things we have tried and failed. So expect this to be a little more technical than some of the other stuff we release, but hopefully it’s still digestible.
When we first started developing our rocket thruster based flying movement, we were developing it for a racing game. We had a vision however, for a large, fairly open world. We had some understanding that this would help with motion sickness, and we felt flying around large spaces better suited the fantasy of flying. But in order to feel fast, players needed to stay near the ground.
At this point, we could have done what a lot of other developers might do, which is make the force exerted by the player’s thrusters be dependent on the height relative to the ground, effectively creating a physics based “ceiling”. However, we wanted to continue the idea of exploration, we weren’t about to lie to a player, telling them they could fly and then not actually let them go more than a few meters off the ground. Beyond that, we wanted to design levels that allowed multiple paths, both through the air and on the ground.
What we decided to do instead was think a little outside the box. That is, we want our player to go fast, but not be able to climb in elevation as quickly (to encourage them to stay near the ground most of the time). In terms of implementation, they needed a larger force in the horizontal directions than in the vertical. It sounds simple enough, but it actually behaves quite oddly when you actually stop and think about it. A “regular” force could be described as isotropic: it has the same value, regardless of its orientation. (For our more technically versed readers, we know this is not the correct usage of the word, but it works well enough). That would make this type of force model anisotropic, because the value of the force will be dependent on the orientation of the thruster.
Because this seemed like an unnatural way of modeling the forces of the thrusters, I wasn’t sure if players would be able to make sense of how to use them effectively. I was able to explore this in a project for Measurement and Instrumentation at MIT, and test whether players’ ability was affected by modeling the thrust in different ways.
It turns out that players suck in general, and they are just pretty inconsistent about which one works better for them. This ended up being great news to us, so we have continued to explore the realm of anisotropic forces…and found some pretty useful things.
Look out for a future post describing how we are using anisotropic forces now, in our grappling hook mechanic.
As always, thanks for reading, and if you enjoyed, please share on social media! Check out our Twitter for more day to day happening at VRemedy.