Jack Harrhy

Linkblog/2025/03/29

Typed Japanese, Bunnyhopping from Programmer's Perspective (Quake / Source Engine movement dive).

typedgrammar/typed-japanese - 🌸 Learn Japanese grammar with TypeScript

🌸 Learn Japanese grammar with TypeScript

typed-nihon.png

とてもクールです !!!

Adrian Biagioli - Bunnyhopping from the Programmer’s Perspective

“Bunnyhopping” is an exploit of a very popular bug in games like Quake III ArenaHalf-Life, and Counter-Strike. Bunnyhopping, or bhopping for short, allows a player to exceed the game-defined speed limit. It has created entirely new methods of play and allows very exciting, fast-paced emergent gameplay. As a decidedly skill-based mechanic, competitive players love bhopping because it is so hard to master. Thus, it may be useful to you as a game developer to “implement” bunnyhopping into your game. The purpose of this article is to define what bunnyhopping is, why it is important to consider as a game developer, and how to implement it mathematically into your FPS movement code. All code examples are open-source and free to use, as always.

I love Source Engine / Quake style movement, I’ve spent many hours on CSGO Surf / Bhop servers.

This is honestly my special interest, and what’s cool, is you can dive into the source code for implementation / genealogy for the different approaches as well!

I gave ChatGPT, Claude, Grok, & Gemini the above links, and asked them:

Summarize the differences / similarities between these player movement codes: […]

They all come from the same lineage, so give details of Quake, then move onto the others, show where the changes are.

Use very simple psuedocode to describe them, keep it high level.

Then, once they gave my their response:

Source has really cool surf mechanics, how would I backport that to Quake II?

One of my current projects, I think, might end up being a heavily modded game built on Quake II that has movement at its core.

I’ll hopefully return to this idea in the future, we’ll see.