Quite why moving from side to side perpendicular to the direction in
which you are actually headed should speed up your net forward
velocity is a mystery to us. Maybe it is something to do with the
friction calculations that Quake uses. It seems to be that if
you are going full pelt and then suddenly strafe to one side, the
engine takes a little time to reorient you and reduce your total
velocity back down to be under SV_MAXSPEED
again. A
change in direction confuses Quake, so we just keep changing our
direction as quickly as possible. Basically, it seems to be a bug in
the Quake engine. Whoops! I mean a feature! It's a
feature!
How fast can you go? Well, as far as the total velocity at which you
travel at any one moment goes, I've measured speeds of up to 450
pixels per second. (Which, interestingly, is about
SV_MAXSPEED
times the square root of two. That is
probably very significant. But exactly what goes on is still beyond
me!) However, because you are zigzagging from side to side rather than
heading straight forwards, the component of your velocity that is
headed in the main direction that you want to travel doesn't get quite
that high. Some of your speed is off to the side of you - first one
side, then the other. So, the component of your velocity in the
direction in which you actually travel is less than the full amount,
but it can still approach 410 pixels per second. This effective
forward velocity is the speed that I consider for the purposes of
calculating speed-up, and I have written a Quake-C mod to evaluate it whilst the game plays.
A second thing to understand is that in fact it isn't the case that
the faster you zigzag, the quicker you go. You can test this out if
you play with a slow motion cheat by using the
HOST_FRAMERATE
console variable, effectively increasing
the rate at which you can hit those keys. You'll find that eventually
increasing that rate will begin to have a negative effect. There is an
optimal fast regular rhythm that gives the best results. However,
that rhythm is pretty quick, and for regular speed play you will
probably find that the faster you change direction and zigzag, the
faster you will go.
Running faster, you can make longer jumps. For example, you can get straight to the gold key on E1M6 (The Door To Chthon) using these techniques without even having to rocket-jump: a normal jump is fine, as long as you build up enough speed before you jump. I don't think id planned for that!
Finally, although I have been describing the technique for going forwards, it works in all four main directions. If you run backwards, exactly the same rapid strafing can be used. And if the main direction you want to travel in is sideways, then strafe in the direction you wish to travel and alternate forwards and backwards movements rather than left and right ones. The resulting zigzag has exactly the same effects.