Speed strafing

Speed strafing is a technique common to both GoldenEye 007 and Perfect Dark which is used constantly throughout any and all GE and PD speed runs.

Overview

Basically, running forwards and strafing left or right at the same time results in you moving diagonally roughly 40% faster than just running forwards alone. It's a vector sum kind of thing.

It's standard to speed-strafe throughout the whole of any given speed run, except when it's necessary to look or shoot at something directly ahead of you. It becomes very hard to unlearn this practice for games where it doesn't work, like TimeSplitters 2.

Switching strafe directions while moving continuously forwards, for example at a corner, results in your strafing speed (the left-to-right component of your motion) dropping from 100% in one direction all the way to zero to 100% in the other direction. During this time, your horizontal velocity is NOT at its maximum which means that for the split second it takes you to fully change direction - even if it takes you no time at all to move your thumb - you are NOT moving at top speed. Therefore, it is good general practice to switch strafes as little as possible, especially on flat speed levels like War. When you do switch strafes, try to arrange to do so at places like doors, where you usually have to slow down fractionally for the door to open anyway.

Speed strafing also cultivates the highly advisable practice of strafing around potentially dangerous corners instead of blindly walking out into gunfire, and allows the activation of wall-mounted buttons and objects while moving at top speed parallel to the wall, which is rather handy.

Strafe Change Time Loss

Aka "Why do strafe changes lose time?"

Short answer

Changing from 100% leftward to 100% rightward speed or vice versa does not work instantaneously, it takes some time to decelerate to zero and afterwards accelerating to full speed in the new direction. Fire up a level like Dam and do nothing but alternating C-Left / C-Right and you'll clearly notice that. That transition time, where your sideways speed temporally reaches zero, in turn decreases your resultant overall speed which is the length of the vector sum of forward and sideways speed. And having lower overall speed for a certain amount of time obviously loses time.

Detailed answer

I will guide you through the plots below. In all plots the x-axis is time and all have the same scale, i.e. the timings of strafe changes are vertically aligned with all below plots.

Plot 1 - Strafe button: You can alternate strafe buttons arbitrarily fast with your fingers. Instant changes are shown.

Plot 2 - Sideways speed: After a change of strafe button, the sideways speed will approach full speed in the new desired direction but it takes some time to do so because of deceleration/acceleration as described above.

Plot 3 - Resultant speed: Pythagoras says that the resultant overall speed is sqrt(forwardspeed² + sidewaysspeed²). This plot shows this function with constant 100% forward speed and varying sideways speed according to plot 2. Temporary speed drops after strafe changes are evident.

Plot 4 - Progression: You can think of the y-axis as progression% of a level like Streets Agent. The red curve shows linear progression with constant 100% resultant speed. The blue curve is the time integral of plot 3, i.e. mostly linear progression and parallel to the red line, but it falls behind further and further after every strafe change.

Plot 5 - Time loss: This is the difference of red and blue curves in plot 4. Stepwise increases of time loss after strafe changes can be observed.

 

Comments:

  • Assumed simple turns like on Streets Agents, which can easily be done without strafe changes. It obviously does not cover more problematic turns like Archives upstairs or Cradle ending.
  • Assumed full forward speed = full sideways speed. Didn't do any research on that besides speedrunwiki saying strafing increases speed by ~40%, which is in line with my assumption because of sqrt(1² + 1²) - 1 = ~41.4%.
  • Values on plot axis were left out on purpose because I only wanted to outline the mechanics of strafe change time loss and didn't want to give an accurate answer to "How much do they lose?".
  • Assumed constant deceleration/acceleration, i.e. linear sideways velocity decrease/increase. No research done, but there is little reason why an old and simple game like GE should have more complex behaviour there.
Fix

The above assumes forward speed = full sideways speed which is incorrect. Max strafe speed = 1.0, while forward speed maxes at 1.32 at max run speed.

External Links