Zigzagging Through A Strange Universe
By Anothony Bailey
Quake done Quick is a collective
of people aiming to push single-play performance to the limit by completing
Quake and its offspring 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.
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 its 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
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
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, errr, 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
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
allowed one to get up to ridiculous velocities by strafe-running along
"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", and 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.
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
through water more quickly. But the most obvious is the trick known to
almost 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 gotten 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
"It's a Feature!"
However, fortunately for speed-runners and DeathMatch players alike, id
has 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!
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!
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!
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 practice 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 Exar "Mandalore"
OK, here's how it works:
forward, and then strafe left and then right alternately as quickly as
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.
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
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.
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:
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
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.
Both these new techniques need practice to get good at, and some feedback
to let you know how you are doing when you practice 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 utilized 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
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? )
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 now, I want to blast something nasty into little giblets. Time
to do some more research I think...
Comments on this Editorial? Send it to Feedback.
Back to PlanetQuake