I was watching this interesting video about bunnyhopping and speedrunning in Quake's E1m1:
I must confess I've never really understood how bunnyhopping works (in Quake, or any other game for that matter).
The video provides a few clues, such as:
- Turning in a tight circle while strafing in the same direction provides additional speed
- Zigzagging (rapidly pressing Strafe left and Strafe right) while going forward also provides additional speed
- Jumping itself doesn't provide a speed boost, but rather preserves speed because there is no friction when you're airborne.
But these facts don't elucidate why bunnyhopping was possible in Quake, yet impossible in other games like Unreal.
How does the movement model of quake allow for the increase of player velocity through bunnyhopping and other techniques?
I am also interested in how bunnyhopping works in other games like Quake 2, Half-life and Half-life 2, but as I understand it, the movement models are slightly different, and so I'll limit this question to Quake.
I should also note that the Quake source code has been available since 1999, so this question ought to be perfectly answerable.