The demonstrations are all done on the map "100m.bsp"
from SDA
Bunny Comparison. This is a good map to train on because its open, brightly lit,
and have many demos to see how others are using movement speed techniques and
compare your progress against.
Speed visual elements in quakespasm-shalrathy
Commands:
scr_speed 4: Draw speed text and plots.
scr_speed 24: Show jump info under cursor about each
jump. E.g. "<^ 14 - 6 = 496 +7 30% -8" which means that for this jump:
< Strafe left key was down
^ Forward key was down
14 Speed was increased by 14 due to turning in the air
-6 Speed was decreased by 6 due to ground friction
496 The current speed is 496
+7 Which is 7 faster than the previous jump
30% This jump increased speed 30% of what was maximum possible with
perfect view angles at every frame
-8 View angle should have been 8 degrees to the left for best speed
due to ground friction.
scr_speed_scale 5: Increase size of speed text and plots.
scr_speed_history 100: Change time plots record, 100 is 10
seconds.
scr_speed_minspeed 400: Set min speed to 400 in the speed time
plot.
scr_speed_angles 180: Change shown view angles in plots, 180 means 180
degrees left and right.
sv_bunnyhopqw 1: Emulate QuakeWorld bunny hopping by not applying
friction between bunny hops (0 to disable).
host_framerate 0.01: Slow down game, lower numbers slows down game more.
Legend:
speed=540: Current speed.
avgspeed=506: Average speed of history (scr_speed_history 100
is 10 seconds).
maxspeed=545: Maximum seen speed since last standstill.
Speed history plot: X-axis is time, y-axis is speed.
Speed angle now: X-axis is horizontal view angle (center is 0 degrees
(looking same direction you are moving), left/right is if you looked
left/right). Y-axis is speed gain for the given horizontal view angle.
Speed angle jump: Speed angle at the point in time of the previous
jump.
Speed angle land: Speed angle at the point in time of the previous
landing back on ground.
Speed angle goodness history: X-axis is time, y-axis is how many
degrees away from the angle that would give the most speed.
Plot max: Maximum y value.
Plot min: Minimum y value.
Plot current: Current y value.
Speed turning
Turning increases speed. Different turning angles increases speed differently. Walking
straight have a speed of 320. By turning with the keyboard or mouse we can reach
speeds up to 493. Pay attention to the "Speed angle plot" to see which turning angle
give the most speed.
The best view angle is the same whether moving forward and strafing to one side, or
when only moving forward. But strafing makes jumping be more forward, this is useful
for circle jumping.
Increase speed up to 418 by turning (cl_anglespeedkey 1.5
(default)). "Speed angle now" plot shows that if we turned more we would gain more
speed.Increase speed up to 380 by turning too much (cl_anglespeedkey
3.0). "Speed angle now" plot shows that if we turned less we would gain more
speed.Increase speed up to 493 by turning just the right amount
(cl_anglespeedkey 2.15). "Speed angle now" plot shows that turning
more or less would decrease our speed.Heatmap showing how much speed is gained by looking left/right when
moving at different speeds when running forward. Y-axis is traveling speed, x-axis
is degrees looking left/right from the direction of movement, green colors indicate
traveling speed and look degree increases speed, red colors indicate speed
decreases. We can see that moving forward without looking left/right tops out at
about 320. And if we look left/right at just the right angle we top out at slightly
less than 500.
To train speed turning you can look at the "speed angle now" plot
(with scr_speed 3) while turning the mouse. Make a constant turning angle
that keeps the "speed angle now" plot center at the peak speed increase. You can
use scr_speed_angles 45 to better see the speed peak in the "speed angle
now" plot. Using host_framerate 0.005 more clearly shows the best turning
speed, but the timing is different so training with slowmo is unproductive. Speed
turning is unlikely to be helpful in real Quake situations.
Zigzagging
Strafing left and right in quick succession increases speed up to 405.
Quickly strafing left and right increases speed up to 405. The speed
history plot shows speed increases with big fluctuations.Slowmo. The "Speed angle now" plot first shows speed increase up to
320 by going forward. Then when strafing the "speed angle now" plot momentarily
change shape the current view angle quickly goes past a peak of speed increase.Slowmo. The "Speed angle now" plot show that we get a momentary
increase in speed by strafing in one direction, and get another momentary increase in
speed by strafing in the opposite direction, when the angle has gone past the speed
increase peak.
To train zigzagging just hit strafe keys as fast as possible. I do not think human
reaction times will be fast enough to reduce speed.
Wallhugging
Going forward and strafing into a wall increases speed up to 465. Speed increase
changes depending on your horizontal view angle.
Maximize speed by moving the horizontal view angle so the peak value in
"speed angle now" is in the center of the plot.
To train wallhugging walk against walls on the left and right and find the perfect
viewing angle by looking at the "speed angle now" plot (with scr_speed
3). You can use scr_speed_angles 45 to better see the speed peak in
the "speed angle now" plot.
Circle-jumping
Circle jumping or strafe jumping is just speed turning and jumping to keep the
increased speed while in the air. Like speed turning it can increase speed up to
493. But the increased speed is kept while in the air, and while going a specific
direction.
Getting maximum speed increase of 493 requires turning about 270 degrees. Turning fewer
degrees gets less speed but avoids looking backwards, which adds up to more forward
speed overall.
A turn of about 90 degrees giving a speed of 466. The "speed angle
now" plot shows that the turning angle is near the peak speed increase for the
turning part of the circle jump. The "speed angle jump" plot shows that the
jump happened when the turning angle is near a peak, but it happens too fast to
properly tell.Slowed down version of circle jump of about 90 degrees giving a speed of
459. The "speed angle now" plot shows that the turning angle is near the peak
speed increase for the turning part of the circle jump. The "speed angle jump"
plot shows that the jump happened when the turning angle is near a peak. This
is more difficult for me than the real-time circle-jump because the slowmo
turning timing is different.200 degree perfect circle-jump using only keyboard with cl_anglespeedkey
2.15.
To train circle-jumping you can split it up into two steps:
Do circle-jumps but focus on the "speed angle jump" plot (with scr_speed
3) and ensure you jump when the view angle is close to the peak speed
increase.
Do circle-jumps but focus on consistent change in your view angle. Try
different turning speeds to maximize maxspeed (with scr_speed
1).
Other tips:
Move forward a bit to get up to speed 320 before starting the turn into the circle-jump.
Bind key to restart to quickly make many attempts from a consistent state.
Do many circle-jumps right after each other to train circlejumping in
different situations.
Train circle-jumping turning both directions.
A good circle-jump lets you jump directly to the gold key
in e1m6. Training that jump also trains how to jump the furthest off a
ledge.
Circle jumping require many things happening very quickly and very
precisely. The only way to train it is to build muscle memory.
Bunny hopping
Bunny hopping is continually jumping while speed turning in the air to gain
speed. Bunny hopping can increase speed up to about 500 before friction from
being on the ground between jumps reduces speed more than it can be increased in
the air.
Speed turning in the air is slightly vs on the ground has differences: The optimal
view angle is different. The optimal view angle is not the same when only strafing
vs. when moving forward and strafing. And the possible speed increase in the air is
less than on the ground.
A good approach to increasing speed in the air is to not move forward but only
strafe in a direction. The view angle should continually turn towards the
strafing direction. To move forward instead of jumping around in a circle you
often change strafe direction and the view angle turning direction.
Bunny-hopping by gaining speed the air using speed turning while only
strafing. The "speed angle now" plot has tiny peaks of speed increase that
quickly move away from the viewing angle. The small speed increases quickly adds
up because there is no friction in the air. The "speed history" shows that we
lose speed when landing, and when switching the strafe direction, and that we lose
more speed the faster we are going. To get a high speed there are some wild
turns which means the forward speed is also reduced. Switching strafing direction
more often will reduce wild turning but requires more complex button
mashing.Heatmap showing how much speed is gained by looking left/right when
moving at different speeds in the air while strafing left. Y-axis is traveling
speed, x-axis is degrees looking left/right from the direction of movement, green
colors indicate traveling speed and look degree increases speed, red colors
indicate speed decreases. The plot is shown one game tick after strafing
left. We can see that we gain speed by turning slightly to the left, the
faster traveling speed the narrowed the angle gets. When strafing right the plot
is mirrored.
Bunny hopping is different in QuakeWorld and
Netquake/Dosquake/Winquake/GLquake/Regular quake/rq. In QuakeWorld there is no
ground friction when bunny hopping. This difference means that bunny hopping in
QuakeWorld does not require as precise speed turning to gain speed, and it means
there is no limit to how much speed can be gained with bunny hopping.
Bunny hopping in emulated QuakeWorld (sv_bunnyhopqw 1). Final
speed is 721 compared to the Netquake speed of 501.
Training bunny hopping tips:
Pressing and holding jump while in the air will jump as soon as you land. So
when bunny hopping you can release and press and hold the jump button at any point
in the air. This means you do not have to jump exactly when you land.
Train on a big open map like 100m.bsp.
Start bunny hopping from a stand-still. Bunny hopping gets more difficult the
faster you move, so starting with speed 460 (from a good circle-jump) means you
have to have perfect bunny hopping turning before increasing speed. If you
instead start with speed 0 or speed 320 (from walking forward) you can more
easily see when you are optimally turning the view angle.
Look at the speed history plot (wih scr_speed 2) to see how much
speed you are building. Show plot more clearly by increasing min y-value
with scr_speed_minspeed 300, or reducing history length with
scr_speed_history 30.
Use scr_speed 12 and look at the first umber to see how much speed
you gain each jump from speed turning in the air.
Start without changing strafing direction until you get a feel for optimally
turning the view angle.
Bunny hopping require many things happening very quickly and very
precisely. The only way to train it is to build muscle memory.
Power bunny hopping
Power bunny hopping is bunny hopping but also briefly holding forward when landing
to avoid loosing speed due to friction. Power bunny hopping can increase speeds to
about 700. Ground friction is still a problem because the required view angle have
to be so precise at high speeds.
Power bunny hopping is not required for QuakeWorld. There is no ground friction so
regular bunny hopping in QuakeWorld is faster than power bunny hopping in
Netquake.
Power bunny hopping is easier when "Always run" is off and the run is always
pressed. To ensure this is the case, disable "always run" and run the
command +speed.
Power bunny hopping is still speed turning. But speed turning is different in the
air vs. on the ground, and we are only on the ground for one game tick. The optimal
view angle when on the ground, and moving forward, and strafing, and moving above
450 is turning slightly into the strafing direction. The optimal view angle when in
the air, and not moving forward, and strafing is continually turning into the
strafing direction. So power bunny hopping requires quickly and precisely switching
between these two types of speed turning.
The more speed you have the more ground friction reduces speed. This means that
getting a single power bunny hop can take away all speed increases from several
perfect speed power bunny hops. The faster you move the more friction reduces speed
and the harder it is to hit good landings. This makes power bunny hopping difficult
to use in general Quake situations.
Starting from walking speed. Only do the power part of power bunny
hopping, so no speed turning in the air. The "Angle speed jump" plot shows
that the view angle when jumping. The plot also shows that the peak speed increase
in the plot decreases as speed increases. The "Speed history" plot shows that
speed is kept constant while in the air, and when landing the speed is
increased. Max speed reached is 433.Power bunny hopping starting from walking speed. The "Angle speed
jump" plot shows that the speed increase peaks become smaller as speed increases,
and the peaks get steeper making it more difficult to set the view angle
correctly. The "Speed history" plot shows that speed continually increases a
little due to speed turning in the air. And that the speed increases a bit more
when jumping up to 500. Max speed reached is 503.Power bunny hopping starting with circle jump. The "Angle speed
jump" plot shows that the view angle is good most of the time. But even so the
speed does not get above 566. The "Speed history" plot shows heavy
fluctuations because tiny mistakes decrease speed significantly when going fast
enough. Max speed reached is 566 and the final time is about
0:10.80.Current best 100m time by Crashfort. Demos does not record key presses
so the view angle calculation is missing. But the "Speed history" plot shows how
much speed is possible. Max speed reached is 672 and the final time is
0:09.59.100m time by Karol in 0:10.10 using a different method. Demos does
not record key presses so the view angle calculation is missing.100m time by Blacksecret in 0:10.30 using a different method. Demos
does not record key presses so the view angle calculation is missing.Heatmap showing how much speed is gained by looking left/right when
moving at different speeds at the game tick on the ground between jumps. Y-axis is
traveling speed, x-axis is degrees looking left/right from the direction of
movement, green colors indicate traveling speed and look degree increases speed,
red colors indicate speed decreases. The plot shows that looking slightly
into the turning direction increases speed up to 500. And the higher the speed,
the narrower the view angles that increase speed.
Heatmap showing how much speed is gained by looking left/right when
moving at different speeds at the game tick on the ground between jumps. Y-axis is
traveling speed, x-axis is degrees looking left/right from the direction of
movement, green colors indicate traveling speed and look degree increases speed,
red colors indicate speed decreases. This plot shows what happens when always
run is on. The optimal view angle is now farther away from straight ahear and its
the opposite direction to the strafing direction. This explains why it is more
difficult to power bunny hop when always run is on.
The plot shows the best viewing angle relative to forward for the
landing frame in power bunny hopping. y-axis is player speed, x-axis is how far
away the player is looking from the forward direction, the lines show where to
look to get best speed and close to best speeds. We can see that looking straight
ahead only looses about 5 speed per jump between normal movement speeds from 420
to 600. A strafe jump give you about 420 speed when landing so, when strafing
left, the best look direction is about 15 degrees left of forward. But the speed
gained decreases sharply if you look too far left, so its safer to look maybe 10
degrees left of forward.The plot shows how much speed is gained for the landing frame in power
bunny hopping. y-axis is player speed, x-axis is speed gained or lost on the
landing frame, the lines show how speed change when looking at best direction and
close to best directions. We can see that looking in the perfect angle only adds a
few speeds and only when moving below speed 500, so the point of power bunny
hopping is to reduce the speed lost in the landing frame. We can see that looking
too much toward the strafe direction looses much more speed than looking too much
the opposite direction. We can also see that even 10 degrees off of perfect does
not reduce your speed too much, so power bunny hopping does not have to be super
precise to increase your speed.
Training power bunny hopping tips:
Start with a circle-jump. The view angle is pretty consistently straight
forward above speed 450. But below this speed the view angle is further away from
forward and having to learn multiple view angles is difficult.
Train on a big open map like 100m.bsp.
Train while always holding forward down. This means speed turning in the air
wont work. But its fewer keys to press so it partly builds muscle memory for
some of the button mashing.
Train without doing speed turning, to build muscle memory for the landing view
angle.
Slow down game with host_framerate 0.01 to give yourself time to
press all the required buttons. The different game speed messes up the muscle
memory for view angle turning. So after building muscle memory for the
complicated button mashing, expect having to retrain the view angle
turning.
Train by only attempting a power bunny hop every second jump. This reduces the
button masking while building muscle memory. Look at the "Speed history" plot
for big decrease in speed to check if you missed the landing view angle.
Train by using sv_speedhelppower 1 to visualize the best angle view
on landing.
Train with scr_speed 23 to see where you can improve each jump. Look
at first two characters to verify you are holding down forward and a strafe key
on the landing frame. Look at the second number to see how much speed you
lose/gain to ground friction on the landing frames. Look at the last number in
the jump info to see how many degrees your view angle was away from giving the
most speed on the landing frame.
Bunny hopping require many things happening very quickly and very
precisely. The only way to train it is to build muscle memory.
Plots
There are four speeds you can move forward:
Forwardspeed 0, sidespeed 0: Standing still.
Forwardspeed 200, sidespeed 350: Moving forward with always run off and the run
key disabled.
Forwardspeed 400, sidespeed 700: Moving forward with always run off and the run
key enabled.
Forwardspeed 800, sidespeed 700: Moving forward with always run on and the run
key enabled.
These different forward speeds changes the normalized vectors that ends up increasing
speed by turning.
Heatmap showing how much speed is gained by looking left/right when
moving at different speeds on the ground. Y-axis is traveling speed, x-axis is
degrees looking left/right from the direction of movement, green colors indicate
traveling speed and look degree increases speed, red colors indicate speed
decreases. These plots show the speed increases for all speeds and strafing
directions at the game tick you are on the ground when bunny hopping. Looking
at all speed combinations we can see that strafing and moving forward with +speed
and always run off have the speed increases closest to looking straight
ahead.Heatmap showing how much speed is gained by looking left/right when
moving at different speeds in the air. Y-axis is traveling speed, x-axis is
degrees looking left/right from the direction of movement, green colors indicate
traveling speed and look degree increases speed, red colors indicate speed
decreases. These plots show the speed increases for all speeds and strafing
direction after one game tick of that movement. If the plots were on the same game
tick the movement was triggered then the max speed increase would be straight
ahead, that one game tick is not relevant for real gameplay. Looking at all
speed combinations we can see that strafing and not moving forward have the speed
increases closest to looking slightly to the strafing direction.Heatmap showing how much speed is gained by looking left/right when
moving at different speeds on the ground. Y-axis is traveling speed, x-axis is
degrees looking left/right from the direction of movement, green colors indicate
traveling speed and look degree increases speed, red colors indicate speed
decreases. These plots show the slight speed increase changes when looking
up/down on the tick on the ground when power bunny hopping. Going just
forward have no change. Going forward and strafing left/right changes optimal view
angle by about 2 degrees when looing all the way up/down compared to looking at
the horizon. A change too subtle to be noticeable or exploitable.Heatmap showing how much speed is gained by looking left/right when
moving at different speeds. Y-axis is traveling speed, x-axis is degrees looking
left/right from the direction of movement, green colors indicate traveling speed
and look degree increases speed, red colors indicate speed decreases. These
plots show the speed increase when in the air and strafing left/right without
moving forward for different angles of looking up/down. There are no changes
to speed increase depending on how up/down you look.
Tool assisted speed
TAS Quake uses different techniques that utilize joysticks and
super precision to maximize speed while ensuring the recording is
fun to watch.
Best TAS 100m time
using TASQuake. Demos does
not record key presses so the view angle calculation is missing. But the "Speed
history" plot shows how much speed is possible. Max speed reached is 702 and
the final time is 0:08.97.
We can also use tools to maximize speed but apply them to the normal movement speed
techniques. These commands change the view angle to gain the most speed.
sv_speedhelppower 1: This helps with the power-part of power bunny
hopping. It changes the view angle when landing to minimize speed lost due to
ground friction.
sv_speedhelpbunny 1: This helps with bunny hopping. It changes the
view angle when in the air to maximize speed gained from speed turning. This
turns very fast which makes it difficult to move in a straight line. The
solution is to change direction more often when in the air, but that requires
retraining a lot of muscle memory. sv_speedhelpbunny 10 changes the
angle a maximum of +-10 degrees, this is a good value for going forward, because
it does not turn too fast to handle. If going for maximum speed a good value is
sv_speedhelpbunny 70 so the view angle always jumps to the other side
when changing strafing direction.
sv_speedhelpview 0: This stops updating the seen view angle, but
changes the view angle just before the speed calculations are made. So speed is
increased from helper commands but the view angle is not affected.
TAS 100m run that updates view angle. This is difficult to control
because the tool turns too fast and makes it difficult to go in a straight
line. Max speed reached is 648 but the final time is slow.TAS 100m run that does not update view angle. Not updating the view
angle means the air turning move sideways more than normally and thus does not go in
a straight line. Max speed reached is still 648 and the final time is still
slow at 0:10.75.
Using speed helpers we can test maximum speeds for the separate techniques. These
demonstrations use a larger map manym.bsp.
TAS manym run using only sv_speedhelppower 1. We can see how
just the power-part of power bunny hopping increases speed up to 481.TAS manym run using only sv_speedhelpbunny 1. We can see how
just speed turning in the air increases speed up to 595 going forward and 630 when
going in a circle.TAS manym run using both sv_speedhelppower 1 and sv_speedhelpbunny
70. We can see that power bunny hopping increases speed up to 750.TAS manym run using TASQuake. Demos does not record key presses so the
view angle calculation is missing. We can see using all tricks increases speed up
to 753 in less time.