(terribly simple old essay on movement systems, doesn’t really examine what should go into one, just recounts different existing ones)
The thrill of moving fast is awesome. The fluidity and flow of fast movement can be pretty incredible. One thing I’d personally like to see from more games is nice movement systems.
I’m usually in support of rock paper scissors style stuff and interesting choices, but with movement you can’t totally do that. Fast movement is typically just about efficiency, either you’re faster or you’re not, it’s a pretty linear progression. So what can you do to make moving fast interesting? My answer is making it hard to solve. Give players a challenge to figure out new pathways and the perfect methods, give them means to drag themselves forward. Make the game such that it’s paced as fast as they can handle. Whenever they can handle one level of speed, always leave options dangling in front of them to make it faster.
What players really enjoy in games based on movement are when they feel like they have transcended the system. Gunz was a game that allowed players to air dash and run on walls. When players mastered it, the game allowed them to soar.
Throughout history, all the best skill based movement systems have been the result of glitches, such as bunny hopping, snaking, wave dashing, butterfly canceling, skiing. These weren’t exactly anticipated by the designers in every case and they ended up kinda dominating the games they cropped up in, ruining: a lot of the balance. But the question we have to ask is, which is more important, balance, or ascending to a higher level of game? I think that we should recognize how these techniques arose and strive to integrate them into our games to make them greater than before, to introduce new elements of skill and strategy. If it breaks the balance, rebalance it around the new elements, make the new elements more accessible without compromising them.
When I first started snaking in Mario Kart DS, I saw the courses in a new way. It created new paths and forced me to think about the course in new ways and to plan differently. Instead of the trade off between going in a straight line and turning, I had all sorts of new things I had to manage, the angle of my hop, the way the road bent and how wide it was, how fast I could mash left and right, and frankly, I’d rather have a game with all of these things to think about and work with than a balanced one. Snakers broke the game and left a more interesting one in its place.
In Quake 3 derived movement systems the movement mode of choice is strafe jumping. This consists of moving your mouse back and forth like a whip to try to maximize your acceleration on every jump. I’ll explain why and how this works in the next paragraph, but to put it simply, this enables people to move very fast sometimes and makes building and managing momentum as big a part of the game as the shooting and map control.
I confess that I don’t have a complete understanding of strafe jumping (ammended in a later essay (Ammended again in a later later essay)), but from what I know, it’s based on abusing rounding errors. In a lot of older games programmers made the mistake of having the forward button make you move a certain velocity forward and the strafe button make you move a certain velocity to the side. The trouble with systems like this is if you press both forward and strafe buttons at once you move that entire velocity both forward and sideways, which anyone who took physics realizes creates a larger velocity vector than either speed individually. Id however knew better than this and used trigonometry to calculate the velocity at diagonal movement angles. Then they decided to round all non-round results up. This means that every time the velocity is not an integer, it gets rounded to one. Trigonometry almost always results in irrational numbers being produced as results. The goal of strafe jumping is really to force the engine to recalculate and therefore reround your momentum as frequently as possible. This is what produces the acceleration. There are a few things I still do not understand about it yet which I am working on learning, but I believe this is the reason strafe jumping exists and why it works.
What movement systems should strive to do is enable the player to move faster, move in new ways and give them more to manage for doing it. If they can be tied into interesting choices, like rocket jumps and losing health, then do it.
Tribes Ascend (regrettably the only Tribes I have played) has an amazing movement system based on skiing. By skiing you can use slopes to build velocity and slide around then soar through the air. To make matters more interesting, your fired projectiles inherit your velocity, affecting their trajectory. Tribes as a result is a game about building velocity, retaining it, and constantly watching the terrain to keep up speed. It’s about moving to avoid enemy shots and going fast as possible. To win you need to determine where the enemy is gonna move in the future, how they’ll accelerate, how far to lead your shot to connect it, adjust for your inherited velocity, and keep track of which hill you’ll ski down next.