Doom · PC · Manipulation · Saves: ~10–25% of level time depending on map geometry · Documented: 1994
Moving diagonally by combining forward and strafe inputs simultaneously to achieve approximately 141% of the base forward movement speed, using a specific strafe-run key combination documented by the community as SR50.
Doom's movement engine adds the forward velocity vector and the strafe velocity vector as independent components, applying them simultaneously without normalising the resultant. This means a player holding both the run and strafe keys simultaneously moves in a diagonal direction at a combined speed equal to the square root of the sum of their squared magnitudes — approximately 1.414 times the forward speed. The community named this SR50 (Strafe Run 50 — the strafe and run inputs both at maximum, 50 units each in the game's internal representation). The actual speed achieved is √(50² + 50²) ≈ 70.7 units per tic rather than the 50 units of pure forward movement, yielding a 41% speed increase. This was not an intentional feature of the game's movement system — John Carmack's engine simply did not normalise diagonal movement vectors — and it became the default movement standard in competitive Doom runs within months of the game's release. At top-level play SR50 is maintained continuously wherever map geometry permits, with the diagonal angle adjusted to keep the player moving along the fastest available path through each level. Combined with the linedef skip technique (using SR50's speed to pass through certain trigger lines without activating them), SR50 is the single most impactful technique in Doom speedrunning.
Doom models player movement as a 2D velocity vector in the horizontal plane. Forward movement contributes a velocity component along the player's facing direction; strafe contributes a perpendicular component. Each tic (1/35th of a second at standard framerate), both components are added to the player's position independently. The game does not calculate a resultant vector and normalise it to the intended maximum speed — it simply adds both components directly.
The result is that moving at a 45-degree diagonal produces a speed of √(forward² + strafe²). With both at their maximum values of 50 units, the diagonal speed is √(2500 + 2500) = √5000 ≈ 70.7 units per tic, compared to 50 units for pure forward movement. The 41% speed increase is consistent, deterministic, and free — it requires only holding two keys simultaneously rather than any precise timing.
The practical complication is navigating level geometry while moving diagonally: corridors, doorways, and obstacles designed for straight-line movement must be approached at angles that allow SR50 to be maintained. Skilled runners develop fine-grained knowledge of where the technique can be held continuously and where it must be briefly interrupted for navigation.
The Compet-N community — which maintained the defining Doom speed record database from the mid-1990s — documented and named SR50 formally, distinguishing it from SR40 (strafe without run, yielding a smaller but still beneficial speed boost). This naming convention became the vocabulary of Doom speedrunning and is still used in current records documentation on the Doom Speed Demos Archive, the successor to Compet-N.
SR50 also raised the philosophical question that would recur throughout speedrunning history: is using an unintended movement technique legitimate, or does it constitute cheating? The Doom community's early answer — that any technique achievable through standard control inputs on the original game engine is legitimate — established a principle still applied in id Software game speedrunning. The id Software team's own response, when asked about SR50 in interviews, was generally one of admiration: the technique became a point of pride in the engine's emergent depth rather than a design flaw to correct.