Strafe-jumping was a result of a bug in the code base of the 1996 first-person shooter video game Quake, but it was later decided to be kept intact, as it had become a standard technique used by players. The bug itself relies on mathematics: when pressing a direction key, the game adds a unit vector in that direction to the player's movement speed. The final sum, however, is never normalized - this means that by directing the avatar away from the current kinetic vector but within 90 degrees of it, the player can exceed its own top speed.
Strafe-jumping requires a specific combination of mouse and keyboard input. The exact technique involved depends on the game itself. In several games, there are entire maps devoted to this, much like obstacle courses.
The controls are typically as follows:
- The player presses the forward key, preparing to make the first jump.
- While releasing the forward key, the player jumps, and pressing either the move left or the move right key (ergo the strafe in the term, strafe-jumping). The strafe and jump keys should be pressed at the same time, and the jump key immediately released.
- To gain maximum acceleration and speed, the player must now move the mouse gradually to the correct degree (i.e., turn) in the direction of the strafe, while still holding down the two aforementioned keys.
- For successive strafe-jumps, the player immediately jumps again on landing, swapping the direction of strafe as well as mouse turn direction if necessary to avoid obstacles.
Done correctly, this will increase the player's velocity with successive jumps. Mastering this technique requires lots of practice. Sequential strafe-jumping is mainly a matter of muscle memory, as the maximum angle of mouse motion increases slightly with consecutive jumps. Another way to increase jump speed in Quake III is a circle jump where the player gets over 500 units/sec (standard runspeed is 320 units/sec).
In some games based on the Quake 3 engine, such as Call of Duty and Wolfenstein: Enemy Territory, fractional increases in jump height can be achieved by playing the game at higher frame rates.
The circle jump start is the action performed by the player at the start of strafe jumping, giving a sudden burst of speed, as opposed to gaining speed with regular strafe jumping. This technique is found to have worked best in Quake engine based games.
The movements are as follows:
- The player stands about 90 degrees from the direction he intends to move in.
- The player then holds forward, the left or right strafe key (depending on which direction he intends to take), and turn to face 45 degrees the opposite way. (The player will have turned 135 degrees from his original position)
- The player now continues into strafe jumping.
Bunny hopping is a term used for different kinds of movement in games. There are two major usages of the term: In any first person shooter with jumping a player who jumps up and down to avoid being shot is sometimes called a bunny hopper. This is a very basic technique that only works against inexperienced opponents.
More advanced techniques known as bunny hopping use game physics to move faster than the base movement speed, combined with air-control (the ability to change movement direction significantly without losing speed while in the air). Techniques that gain speed without the ability to significantly change direction are often called Strafe-jumping. The methods used to achieve bunny hopping vary from game to game.
Bunny hopping is implemented in QuakeWorld, DeFRaG, Challenge ProMode Arena, OSP (only with cpm physics) mods for Quake III Arena, Half-Life (version 126.96.36.199, released in 2001, introduced a speed cap limiting the usefulness of bunny hopping) and many of its mods and sibling games including Team Fortress Classic "Fortress Forever", Team Fortress 2, Counter-Strike, Natural Selection, Warsow, Enemy Territory Fortress (a mod for Wolfenstein: Enemy Territory), Painkiller, Kingpin: Life of Crime, Dystopia, Elder Scrolls Online, "Counter Strike: Global Offensive" and Xonotic.
- Id Software Inc. "Github Repository - Mentions in Code (No references to ID's opinion in Q2)". Github. Retrieved 4 April 2017.
- http://www.funender.com/quake/articles/strafing_theory.html (archive link)