Hacker News new | ask | show | jobs
by mrob 2243 days ago
Karl Jobst has a Youtube video covering the speedrunnning record history of Quake's first level, which serves as a good overview of Quake movement technique:

https://www.youtube.com/watch?v=43d8fICz6gM

It starts with an explanation of the significance of Quake to speedrunning as a whole, so skip to 5:46 if you only want to see the movement tech.

1 comments

This is an incredible video - thanks for sharing. Couple notes for those like me who are new to the speed running world:

* The goal here is to get through a particular level as fast as possible. Not to kill enemies or get points; it's just speed.

* The physics engine computes a speed for your player. There are some movements that increase it and some that decrease it. What these speedrunners are doing are (1) finding techniques in movement (2) exploiting features of the map that result in increasing their speed and maintaining it.

* These techniques include running along a wall (unclear to me why this increases or maintains speed), bunny hopping (jumping and turning at the same time in such a way where you don't pick up friction), leveraging features in a map to give you added speed (blowing up an explosive barrel and using its shock to speed you up).

* Over the course of 20 years, players have managed to get the record from 30 seconds down to its current 20 seconds for the quake map in question.

As someone who spent many hours playing Quake 2 on multiplayer, the best players moved in a rhythm similar to how the speed runner players do here.

Speculating here based on my experiences in the past building my own physics engines: running along a wall could speed you up a little bit depending on how they’re handling “keeping you outside the wall”. One common/simple way is to apply x1 = x0 + v*dt, calculate collisions after the moment calculation, and then fudge your position back to being inbounds. If I recall, Q1 used simple bounding boxes on all of the entities as well and there’d probably be some (pardon the pun) corner cases in the “keep out of the wall” algorithm.