
Bunnyhopping from the Programmer's Perspective - Artemis2
https://flafla2.github.io/2015/02/14/bunnyhop.html
======
jsprogrammer
Cross-posting my comment from reddit (had the article first):

Asheron's Call had a similar bug, although it took a while to be discovered.
There was a buried feature that allowed you to turn/rotate, your character by
clicking your mouse on the screen in certain locations. Your rotation speed
was controlled by how far from the origin the mouse was located and ramped up
to a capped rotation speed after a certain distance. The closer you were to
the origin, the slower your rotation speed. The game came out around 1998 when
most people were playing on 800x600 or maybe 1024x768 screens and since the
possible rotation speeds you could achieve were directly related to the pixel
width of the viewport, there was effectively a limit to the slowness of your
rotation. Fast forward half a decade and people are playing on dual 1600x1200
screens and you can now turn reeeally slow if you get your cursor in the right
position (and enabled the rarely used feature). Well, you could combine this
slow rotation with strafe-running to make your velocity vector scale out many
multiples of your normal run speed. In-game, other people viewed you as
essentially teleporting (game had slow updates and basic client-side
prediction) huge distances at a time. Not too long after this exploit was
found, they introduced a new game client (for other reasons) that didn't have
the mouse turn feature (I don't think anyone ever really used it in the
previous ~7 years), so it was no longer possible to use. My friend and I had
some fun nights on the PK server being able to just 'disappear' from a fight
at will.

~~~
jsprogrammer
Hmm, looks like something ate my line breaks and editing/deleting isn't
working...

~~~
louhike
You have to double them.

~~~
jsprogrammer
I tried that...about 10 times...

------
JoachimSchipper
Isn't this... just a bug? Good on the players for finding it, of course; and I
can even see the community agreeing to let everyone exploit bunnyhopping - but
_intentionally_ programming in this behaviour seems really odd to me.

~~~
clarry
It is now considered a feature, and there are entire maps & games built with a
focus on trick jumping. It's a fun thing to learn and it really opens up new
possibilities, even in maps that weren't specifically designed with trick
jumping in mind. For most games, it increases the skill cap, thus adding
depth...

I am so used to bunny hopping that I feel handicapped in any FPS that doesn't
let me do it. If I ever get my FPS project going, it'll sure as heck have this
feature.

~~~
vehementi
I really wish people perceived the bar to be higher than "well, it doesn't
totally break the game, and it adds to the skill cap, so ship it!" for keeping
any bug/feature in.

Literally anything that can impair you adds to the skill cap because it's
another thing you have to learn to use/avoid.

We must also answer questions like "Is it credibility-destroyingly stupid to
have players flying around at high speed in a semi-realistic military shooter"
and "is this even fun" and "what effect does this have on the intended balance
& map design". I don't know the answers for CS but in general I often see
criticism of the status quo in games met with with knee-jerk "this increases
the skill cap, learn to play" responses.

~~~
reubenmorais
Realistic military shooters are niche. The average player wants fun, not
believable. I personally attribute most of Counter-Strike's success to its
completely unrealistic movement/weapon handling, creating a game that is
arcade-y: you can replicate movements with almost 100% accuracy which means
with enough practice you can master the game in incredible ways. This means
the replay value is almost infinite: see for example, how the 1.6 competitive
scene has used the same 15 original bomb defuse maps for more than a decade
without it getting stale.

~~~
clarry
I would assume however that mainstream gamers (who would be "average" by
definition, in terms of skill level) have no appreciation for non-obvious game
mechanics that give highly skilled players an "unfair" advantage. In fact
anything that increases the skill cap works against the "merely average"
players on public servers. So there is an incentive for the companies behind
big online shooters to strip their games of such features. It follows that
modern shooters do not come with bunny hopping, and the players who've been
primarily exposed to this new generation of games would find such tricks game-
breaking and unfair.

So I guess bunny hopping and such will remain a thing for old timers who stick
to the old classics. And boy do they have a ton of fun :) Although it would be
nice to see some new players. Old players get old and tired...

To vehementi: bunny hopping and all the other stuff you can master to become
better at a game really is a _ton of fun_. I don't think breaking balance is
as big of an issue as some here make it out to be, though it obviously depends
on the map and mode. But in general, if your foe can bunny hop, so can you.
Sometimes they start in a position where it's way more advantageous to them.
But in my experience it's just not very common. And thankfully, with the good
games, we are not tied to the stock maps put out by the company behind the
game.. instead there's a community of gamers and mappers, and the community
will adapt.

Many stock maps suck anyway, whether you have bunny hopping or not. For
example, many of the stock Q3A maps are regarded as crap, and aren't really
played at all in competitive matches. Bunny hopping however is a core mechanic
in these games and iD was well aware of it.

------
yelnatz
Source video for the gif:
[https://www.youtube.com/watch?v=KYEyIGLRqW0&t=47](https://www.youtube.com/watch?v=KYEyIGLRqW0&t=47)

It really shows how much of an advantage it was if you knew how to bunny hop.

~~~
bko
Here is another video showing a fuller explanation of bunny hopping and going
into the history a bit

[https://www.youtube.com/watch?v=n1HowpVX-
hU](https://www.youtube.com/watch?v=n1HowpVX-hU)

------
TwoBit
So games intentionally program support for bunnyhopping, or us it a math logic
bug.

~~~
scarlson
Both. It was originally a bug, has since turned into a feature.

~~~
sirclueless
Talking of other CS "bugs" that have turned into features, anyone who's never
seen "surfing" should check that out.

Basically, you take the same air-strafing principles from this article, add a
little bunny-hopping, and another "feature" of counterstrike where if you land
on a steep enough slope you won't take falling damage or apply friction. Give
this to some insane map makers and the end result is an incredibly skill-
intensive obstacle course of sorts at tremendously high speeds.

Here's a good example of what I'm talking about:
[https://www.youtube.com/watch?v=o0Xv00yJhjs](https://www.youtube.com/watch?v=o0Xv00yJhjs)

There's a really dedicated community behind this stuff, you can find 64-man
servers full of people playing this type of map in CS:GO and CS:Source.

~~~
nawitus
Here's an interesting bug/technique in HL2 called 'Accelerated Back Hopping'
[https://www.youtube.com/watch?v=NV-
AWxqYAgc&t=41m43s](https://www.youtube.com/watch?v=NV-AWxqYAgc&t=41m43s)

It's used in speedruns, but I believe is fixed these days. Apprently if you're
bunnyhopping backwards, the game tries to limit the speed, but since you're
going backwards the player ends up accelerating essentially indefinitely.

------
Morphling
Not bunnyhopping, but similar idea a game called Gunz: The Duel had many
animation glitches where you could cancel animation lock with higher priority
move. The action would execute, but the animation would be cut in short with a
shorter animation which allowed you to perform a new longer animation move.

Commonly it was called kStyle or "korean style" in west since the game was
korean and koreans came up with the bug. It made the game everyone was doing
it flying through the map with swords swinging wildly it was a lot of fun and
definitely raised the skill ceiling and someone how it didn't seem nearly as
cheaty as the bunnyhopper in articles video.

~~~
simonlc
That sounds like how certain types of combos work in games like Street
Fighter.

------
neckro23
The good old-fashioned rocket jump is another example of this.

Quake 1 had a feature where if a player took damage, they'd get pushed in the
direction the damage came from. This was originally intended to serve as a
visual indicator.

Of course, this meant that if you aimed the rocket launcher at your feet, and
jumped and fired simultaneously, the damage kick + the jump would launch you a
good distance upward. This became a popular enough technique that it was
retained in the Quake sequels, and even imitated in games like Half-Life (the
Gauss Gun would push you backwards, allowing a "rocket jump" of sorts)...

~~~
_neil
This was also a common tactic in Tribes, which also had jet packs and 'skiing'
(basically bunny hopping downhill while building up momentum). The game had
vehicles, but after people figured out skiing, the vehicles were basically
abandoned.

In the later years of the game, people even figured out disc jumping in midair
off of their own grenade.

Edit: here's a quick Tribes 1 video where a guy skis around the enemy base,
team kills his own flag carrier, catches the flag in midair, and disc jumps
home to cap it.

[http://youtu.be/HF_htZRhbiQ](http://youtu.be/HF_htZRhbiQ)

------
krat0sprakhar
Haha! This is awesome! Reminds me of the good days of CS 1.6 when newbs would
to be totally flabbergasted on seeing others bunnyhopping. The best times were
when a sniper would get knifed by some bunnyhopper! :D

Thanks for sharing :)

~~~
hedwall
If I remember correctly so was bunnyjumping fixed in version 1.5, which also
started a mod of CS called classic 1.3 or something like that.

~~~
benihana
It was 'fixed' in 1.3 but was still possible in 1.5 and 1.6, just much harder

------
Paul_S
I think it's extremely telling how people react to it. Some will get annoyed
and demand for this to be disabled because others have the advantage on them.
Others will try and learn to do it to get that advantage on other people. I
wonder if you could use this to perform a similar test to the marshmallow
experiment
([http://en.wikipedia.org/wiki/Stanford_marshmallow_experiment](http://en.wikipedia.org/wiki/Stanford_marshmallow_experiment)).

------
agumonkey
Ha, I thought it was a `Skater Bunnyhop from the Physicist Perspective`
article. Interesting nonetheless.

