The code behind Quake's movement tricks explained (bunny-hopping, wall-running, and zig-zagging)

Matt's Ramblings
10 Jan 202107:45

Summary

TLDRThis video explores the evolution of player movement techniques in the Quake game series, highlighting three key techniques: zigzagging, wall running, and bunny hopping. These techniques, all stemming from a single piece of code, revolutionized gameplay and influenced the genre. The script delves into the mechanics, explains how players exploit the velocity update rule for speed boosts, and showcases advanced strategies used in tool-assisted speedruns for maximum efficiency.

Takeaways

  • 😲 Quake's player movement techniques have evolved significantly over the years, impacting the way the game is played.
  • 🔄 The earliest trick, zigzagging, involves rapid alternation of strafe keys while moving forward to gain speed.
  • 🏃‍♂️ Wall running is performed by strafing into a wall while running parallel to it, another technique for boosting speed.
  • 🐰 Bunny hopping or strafe jumping is a technique that has evolved and is used to maintain speed during gameplay.
  • 🌐 All three movement techniques originate from the same piece of code, showcasing the game's influence on the genre.
  • 🔑 The 'wishder' is a key concept, representing the player's intended movement direction, formed by combining forward and side vectors.
  • 🔄 The player's velocity in the horizontal plane is updated based on the wishder, with vertical velocity calculated through a gravity model.
  • 🔧 A loophole in the velocity calculation allows manipulation of the current speed, leading to the development of speed techniques.
  • 📉 Friction affects speed, with different handling on the ground versus in the air, influencing how speed techniques are executed.
  • 🛠️ Tool-assisted speedruns exploit these mechanics further, using scripting for inputs to achieve record times unattainable by human players.
  • 👨‍💻 The video explains the original Quake source code and how it gives rise to these movement techniques, with references for further reading.

Q & A

  • How have player movement techniques in Quake evolved over the years?

    -Player movement techniques in Quake have evolved from simple tricks to elaborate routines, including zigzagging, wall running, and bunny hopping or strafe jumping, which have significantly changed the gameplay.

  • What is zigzagging in the context of Quake?

    -Zigzagging is an early trick in Quake where a player rapidly alternates the strafe keys while running forward to gain a speed boost.

  • What is wall running and how is it performed in Quake?

    -Wall running is performed by strafing into a wall while running parallel to it, allowing the player to maintain a constant wish-to-velocity angle and gain a speed boost.

  • What is bunny hopping or strafe jumping, and how has it evolved?

    -Bunny hopping or strafe jumping is a technique that involves holding a strafe key and turning the mouse to stay in an acceleration zone, and it has evolved to maximize speed in Quake.

  • How is the player's intended movement direction represented in Quake?

    -The player's intended movement direction is represented by a 'wishder', which is formed by adding a scaled forward vector to a scaled side vector and normalizing the result.

  • What is the role of the wishter in updating the player's velocity in Quake?

    -The wishter is used to update the player's velocity in the horizontal plane, while the vertical velocity is calculated according to a simple gravity model.

  • How does the velocity update function work when the player is on the ground in Quake?

    -When on the ground, the velocity update applies friction to scale the speed, and then updates the velocity by adding the wish scaled by an 'add speed' factor, which depends on the current speed and the maximum intended speed.

  • What loophole in the velocity calculation allows for speed manipulation in Quake?

    -The loophole lies in taking the current speed as the scalar projection of the velocity onto the wishter, rather than the length of the velocity vector, allowing players to manipulate the wishter relative to the velocity to make the current speed as large or small as desired.

  • How does zigzagging exploit the velocity update rule to increase speed in Quake?

    -Zigzagging gains speed by changing the strafe direction against the current movement direction, causing the velocity to move towards the wishter and then switching strafe direction to repeat the process.

  • What is the significance of the wish-to-velocity angle in strafe jumping?

    -In strafe jumping, the wish-to-velocity angle is kept close to 90 degrees by holding a strafe key and turning the mouse to stay in the zone of acceleration, allowing for continuous speed increase.

  • How does tool-assisted speedrunning in Quake differ from human speedrunning?

    -Tool-assisted speedrunning uses scripting of inputs to overcome human reaction and dexterity limitations, allowing for continuous selection of the wishter and alternate direction on every frame for maximum speed increase.

Outlines

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Mindmap

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Keywords

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Highlights

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Transcripts

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级
Rate This

5.0 / 5 (0 votes)

相关标签
Quake MovementFPS EvolutionZigzaggingWall RunningBunny HoppingStrafe JumpingSpeed TricksGame MechanicsPlayer PhysicsVelocity ControlSpeedrunning
您是否需要英文摘要?