Zigzagging Through A Strange Universe
By Anthony Bailey

An Editorial by Anthony Bailey (QdQ)


You are reading QdQ's local copy of this article, published on Planet Quake on 12th October 1997. If updates are needed, we'll make them to this copy:
  1. Corrected name of Ben Kovalik
Many additional notes on matters discussed in this article can be found in the follow-up.

Introduction

Quake done Quick is a collective of people aiming to push single-play performance to the limit by completing Quake and its relations on the highest possible skill levels in the shortest possible times. DeathMatch is cool, but speed-running offers another way to compete at Quake. If this sounds like fun, please do check out our page here at PlanetQuake, especially if you haven't already seen the Quake done Quicker movie.

I guess I could be described as QdQ's technical support. I write little utilities and help brainstorm ideas, even though my own Quake abilities are woefully lacking. In this way I get to bask in the glory afforded to the very skillful players who comprise the rest of the team. smiley

One of the things I do is investigate the physics of the universe of Quake, trying to understand more about how the engine underlying the game works so that we can turn it's little nooks and crannies to our advantage. You could call it research if you liked, but basically it's just running around, having fun and blowing things up same as normal, except maybe with a few little numbers flashing up on the screen monitoring the engine's vital statistics. smiley It's experimental physics in a whole new universe. Of course, sometimes I can double-check the Quake-C code underneath this particular universe, which is something physicists in the real world don't have access to.

Now, this article has two themes. The motivating one is to explain some techniques that QdQ have recently discovered for making the Quake-guy run faster than normal without cheating. These techniques depend on a peculiar anomaly in the physics implemented by the Quake engine that came to light in the course of my, er, research. You could see the trick I describe as the Quake version of DooM's strafe-running.

The second, broader theme is a more general look at anomalies like this one; things that started as bugs, or at least were unexpected by id Software, but which have turned into well-loved features over the course of time. I take a fairly close look at some of these and explain some of the technicalities involved. If you are interested, you can use this article as DooM and Quake Physics 101. But you don't need to read the details if you aren't bothered; they are displayed separately from the basic article.

If you just want to know the very basic fundamentals of the techniques that let you move faster in Quake, you may want to jump straight to the simple explanations of how to zigzag and bunny-hop.

Life before Quake

Back before Quake, there was DooM. Although DooM demos (or *.lmps) are less flexible than Quake *.dems, this is where the tradition of competitive speed-running started. Indeed, DooM running still continues today. Check out the COMPET-N, which has been going for years now.

In the DooM engine there was an physics anomaly that allowed a player to run faster than usual using a special technique. By running forward and strafing sideways at the same time, you could run along the diagonal of a square in the same time that it took to run along either of its sides. This anomaly and the technique that took advantage of it became known as diagonal running or strafe-running. A more specialized form of the anomaly, the wall bug, allowed one to get up to ridiculous velocities by strafe-running along certain walls.

"It's a feature!"

Speed-runners saw strafe-running as a feature. It was more awkward to do than normal running, since you had to face in an angle different from the direction you actually ran in, so you could no longer fire at what was directly in front of you. And maneuvering whilst turned at an angle was harder than normal maneuvering as well. But this was good - it meant that extra skills were required to use the tactic. The runners who were good enough to master strafe-running were the ones who could turn in demos with the lowest times.

DeathMatch players took advantage of the technique too. Speed kills in DeathMatch, and it kills your opponent. Strafe-running helped you cover more ground in the same time and get more of the goodies. And when you were on either end of a chase, whether in hot pursuit and ready to dish out some punishment, or low on health and running like a rabbit to escape your foe, the extra speed obtained by strafe-running could mean the difference between life and death.

Because of this, strafe-running became familiar to most DooM players. Although it was never intended to be there, it became a well-loved feature of the game.

"It's a bug!"

However, id Software didn't take quite the same view of this "feature", understandably so. After all, this was pretty strange behaviour that bore no relation to the physics of the real world. At the end of the day, they saw it as a bug in the DooM engine rather than a feature. As a result, the same anomaly didn't turn up in the Quake engine. No matter what angle you run at, Quake attempts to keep your velocity under the value of the server variable SV_MAXSPEED.

Quake is relatively realistic compared to DooM, the universe of which was a pretty bizarre place when all was said and done. There were quite a few other strange bugs and anomalies in the engine apart from those I've already mentioned. Most of them ended up adding to the game in the long-run, though. That's just part of the magic involved in the miracle that was DooM, I guess.

Rocket-jumping

Despite all the bug-fixing, the physics of the Quake engine can also be used in some ways that id didn't expect when they programmed the thing. One interesting anomaly is that you can jump higher by making use of sloped surfaces. A rather unfair one is that owning a faster computer allows you to swim through water more quickly. But the most obvious is the trick known to every Quaker - rocket-jumping. In fact, rocket-jumping is only one of several applications of a more general principle of Quake physics which can be briefly summarized by saying that when you are hurt, your velocity is changed. Once you've understood this principle, and have got to grips with the way explosives work in Quake, you can take advantage of some of the finer points of rocket-jumping.

"It's a bug!"

Of course, in the real world, if you are hurt, your velocity doesn't change. (Otherwise hospitals would be rather confusing places in which to work!) So you could argue that this is a pretty strange thing to be going on in the game. id certainly put the "damage knock-back" effect into the engine on purpose, but they claim they never realized that players would end up making such good use of it with tactics like rocket-jumping, and that this ability is just a happy accident. (Although I've always wanted to know how you were supposed to get to that Ring of Shadows secret in E4M4 (The Palace Of Hate) without making an assisted jump into the teleport.)

"It's a feature!"

However, fortunately for speed-runners and DeathMatch players alike, id have no intention of getting rid of rocket-jumping. After all, although damage may not change your velocity in the real world, it certainly makes sense that all the things that cause the damage (like huge explosions and impacts) should. Also, At the end of the day, Quake isn't about realism at all costs. It's about fun. And, as many a Quaker will attest, rocket-jumping is as much fun as you can have without gibbing something. Hey, sometimes you can even combine the two! smiley So worry not; damage will affect velocity in Quake2 as well. In fact, we understand that id are planning to make it work on monsters too, so we can all have great fun pushing monsters off of cliffs with a few blasts of the super shot-gun.

Strafe-running was fun for speed-runners and a useful tactic for DeathMatch experts, but at the end of the day I guess such players are only a small minority of the Quake-playing public, and the anomaly made far less sense in terms of real-world physics. So until now, it appeared that for Quake, players had to live in a more conventional and realistic world where, despite being able to have fun blowing themselves up into the air, it didn't matter what angle you ran at, SV_MAXSPEED was as fast as you could go.

QdQ to the rescue!

An id game without any useful bugs? An id game without some strange, arbitrary physics than a cunning runner can take advantage of? You have to be kidding! smiley Don't worry, the Quake done Quick team aren't going to let a little thing like SV_MAXSPEED stand between them and low times!

Zigzagging

What we've discovered is indeed a way to increase the speed at which you run without cheating. The speed-up isn't as good as that provided by strafe-running in DooM; at best, one can manage about a 22% speed increase, which is approximately only half that which strafe-running gave (that is, if you were doing it right.) And, like strafe-running, it is awkward to use and takes a bit of practice. But we think this is all to the good - the more skillful you are and the more you practise this technique, the faster you will be.

This is a brand new technique. Although we've known about it for some time, QdQ haven't yet made purposeful use of it in runs like Quake done Quicker. (We've recently learnt that the technique has also been independently discovered by some other people, such as Andrew Crawshaw and Ben "Mandalore" Kovalik.)

OK, here's how it works:
Start going forward, and then strafe left and then right alternately as quickly as you can.
Pound those two keys or wiggle that joystick just like you used to do when playing those old arcade games like HyperOlympics, Summer Games, and Track and Field.

By doing this, you can increase your forward velocity from the intended limit of 320 pixels per second to anything up to 410 pixels per second, especially if you understand all the technicalities. I call this technique zigzagging because of the tight little zigzag path that you end up following. You meander around, but not quite straight along, the main direction in which you want to travel.

Practical zigzagging

If your keyboard arrangement is anything like mine was, you'll probably want to change it around a bit so that you have two keys in convenient places that you can pound away at. Maybe you'll want to define two new keys altogether for this sort of strafing; you just need to bind them to +MOVELEFT and +MOVERIGHT.

It is worth noting at this point that, in the past, conversions of the arcade games I talked about before that used this sort of control technique for evaluating how fast you were going were notorious for damaging input devices on the old home computers they ran on. So be careful you don't hurt your keyboard by pounding away at it too furiously. Of course, you can get as good or better results with this sort of left-right alternation using a joystick, a mouse, or perhaps best of all for very quick alternation of direction would be a track-ball. The best results can probably be achieved by having a different person altogether providing the speed, so that one player has control as usual, and a second pounds keys (or wiggles a joystick, or palms a trackball) whenever the first is moving in a straight line and could benefit from the extra speed. Puts a funny spin on the term "single-player Quake", though.

At this point, you are probably thinking "Hmmm, repetitive behaviour... automation... MACROS!" And indeed you would have thought that with Quake's complex console system of aliases and bindings, it ought to be possible to make yourself a key that when pressed goes forward and strafes quickly to the right and then the left alternately. But we have not found a way to do this, for various reasons.

Bunny-hopping

There's a second technique with utilizes the same physics anomaly that zigzagging does. It doesn't require you to hit any controls fast, so maybe some people will prefer it. It gives good performance, not as good as the best zigzagging, but not half bad once you get going.

Whenever you leave the ground, you carry on with the same horizontal velocity you had at the instant you jumped. There's no air resistance in Quake, just friction from the ground and from liquids. So the idea of this technique, which I call bunny-hopping, is to escape the frictional slowing effects by spending as much time in the air as possible.

Here's how it works:
Start going forward. Once you are going full speed (very soon) strafe to the left and press jump at the same time. When you land, strafe right and jump again. And so forth.
Just keep alternating those two jumps (a hop to the left and then a hop to the right) for as long as you want to follow an approximately straight path. Within a few jumps your velocity can be up as high as 380-ish pixels per second. You will believe a Quake-guy can fly!

It looks a bit strange, and you don't have quite so much instantaneous control (because you are up in the air most of the time), but it works, and since each jump lasts the best part of a second you don't need to worry about hitting the controls so fast.

Conclusion

Both these new techniques need practice to get good at, and some feedback to let you know how you are doing when you practise can be obtained using a QdQ Quake-C modification.

How useful they will be in real-life play remains to be seen. It takes a bit of practice to get good at zigzagging, but you can certainly achieve better results using it. Although QdQ haven't utilised the technique in contests or in our long demos yet, we know you can use it to get better than normal times. We expect speed-runners to start using it slowly but surely, and maybe more so as people begin to win contests because they used it.

Zigzagging may also turn out to be one more trick it is useful to have up your sleeve if you are a DeathMatch player, I expect. DM isn't really my scene (am I allowed to say that? smiley) but even I know there are times when speed is of the essence (especially, when a healthy Quadded player is in hot pursuit of a worried unhealthy one!) So the extra speed-up could well end up saving your life or giving you that extra gib in some circumstances. Just as nobody plays seriously without running rather than walking, being faster than your opponent because you have mastered zigzagging or bunny-hopping can do you no harm.

It will be interesting to see whether or not zigzagging or bunny-hopping become an unintentional feature of Quake, just as strafe-running did before them in DooM.

Right, I want to blast something nasty into little giblets. Time to do some more research I think... smiley

- Anthony

Comments on this Editorial? Send it to Feedback.

Back to PlanetQuake