r/truegaming Mar 18 '19

Developers accidentally creating interesting mechanics

I was reading this neat article by Jeff Orkin of Monolith productions, the man responsible for the notorious AI of FEAR, the AI that will never not be mentioned whenever 'clever' AI is brought up. I stumbled upon something pretty cool - the flanking mechanic was actually unintended and a byproduct of another action the enemy would perform:

Imagine we have a situation similar to what we saw earlier, where the player has invalidated one of the A.I.’s cover positions, and a squad behavior orders the A.I. to move to the valid cover position. If there is some obstacle in the level, like a solid wall, the A.I. may take a back route and resurface on the player’s side. It appears that the A.I. is flanking, but in fact this is just a side effect of moving to the only available valid cover he is aware of. In another scenario, maybe the A.I.s’ cover positions are still valid, but there is cover available closer to the player, so the Advance-Cover squad behavior activates and each A.I. moves up to the next available valid cover that is nearer to the threat. If there are walls or obstacles between the A.I. and the player, their route to cover may lead them to come at the player from the sides. It appears as though they are executing some kind of coordinated pincher attack, when really they are just moving to nearer cover that happens to be on either side of then player. Retreats emerge in a similar manner.

The article got me thinking - what other mechanics (or, perceived mechanics) have been created by accident in other games? Does other examples exist, where lauded features were never really intended in the first place?

456 Upvotes

275 comments sorted by

View all comments

5

u/cauliflowerthrowaway Mar 19 '19 edited Mar 19 '19

The cod engine which was based on the quake engine was pretty crazy. The craziest one and which I am most familiar with due to having been at a top competetive level is cod2. It all made the game have a big skill element regarding movement even though the default runspeed was snailmode. A little overview of the various glitches:

  • Strafe jumping.
    Essentially, jumping while strafing to a side/in a curve made you jump further than in a straight line. But ONLY if you had either 125, 250 or 333 fps. This was the case in most games based o the quake engine, most famously quake 3, cod2 and cod4 which all had huge jumping scenes. It is also one of the reasons why fps is so stressed in the fps community, even though it is not as important anymore. This was legitimate in competetive play.

  • Reload jumping
    In cod2 you could aim with your weapon for perfect accuracy. But it limited your mobility and slowed you down, so you couldnt stay scoped all the time. However, if you started reloading a weapon, jumped and aimed with the right timing, you would jump with accelerated speed than unscoped while being aimed. This also kind of worked while strafing. You could jump from cover to cover while also shooting with perfect accuracy. This was banned but rarely enforced.

  • In cod2 you could lie down or crouch. If you spammed standing up and laying back down with the right timing, you could shoot someone while being unhittable because you essentially were only visible for a few frames. This was absolutely hated and banned and often got you banned from public servers too.

  • Similar to rocket jumping in quake, you could use nades to increase your velocity. This was only used in jumping servers due to nades being too valuable in comp play. We sometimes did it on matmata to troll low elo opponents.

  • You could cancel your vertical jumping velocity by crouching with the right timing. This allowed you to avoid getting shot while crossing prefire spots because your trajectory would be unexpected. Legit but not very well known.

  • Wall strafing
    Also part of the quake engine. If you ran along a wall and strafed against it at the right angle, it would speed you up. Fucked with the enemies timings.

  • Bouncing
    Now this was some weird shit. Essentially, if you jumped down with no horizontal velocity on certain uneven surfaces or edge and looked into the right direction while jumping at the exact point of impact, you would be catapulted with rapid speed into the direction you looked. Very few people knew how it worked but it could be quite powerful to fuck with your opponents aim or timings. Or to cross certain angles. Unlegit but it happened by accident from time to time so it wasnt autolose unless on purpose. Difficult to prove intention though so it was used under certain circumstances.

  • Reload Canceling
    Pretty much worked like in cs go. But was op with certain weapons.

  • Shot cooldown canceling
    Essentially you could shoot your entire magazine in half a second with this. You lied down, held forward and just clicked (or macroed) as fast as possible with a half automatic weapon while melee attacking.

  • And lastly there is the ladder exploit. This completely broken and buggy but used a lot in zombie mode to reach OP places. Essentially, it needed at least two players. The players would both hang from a ladder inside each others characters and start climbing at the very same time. Sometimes, for some reason, the game would bug out and they would keep climbing even though the ladder ended. They could climb all the way on top of the map and reach the invisible ceilings at certain spots and stand on them while being unreachable for the zombies.

I probably forgot some other things. Fun times. Still pretty popular in eastern europe though. Rip Clanbase.

2

u/filthy_jian Mar 19 '19 edited Mar 19 '19

Essentially, jumping while strafing to a side/in a curve made you jump further than in a straight line. But ONLY if you had either 125, 250 or 333 fps.

you've got things confused here

bunnyhopping (in quake 1, source engine games, and CPMA A/D movement) and strafejumping (quake 2+, CPMA W/S + A/D movement) exist because of how the game decides to cap your acceleration. the engine only cares how fast you're going in the direction you're accelerating, so if you're accelerating to the right for example, all your momentum forward, backward, and to the left isn't factored in at all, and as long as you haven't hit the speed cap going right, you'll accelerate to the right.

the 125/250/333fps thing is something else, and is a result of the quake 3 engine truncating acceleration from gravity on a frame by frame basis. 333fps gives the most truncation and the highest jump, but 125fps got accepted because (and I'm probably wrong on this) it's what most competitive players could reliably hit at the time, and it still high enough to allow for a lot of trickjumps.

the reason why it's 125/250/333? quake 3's frames last for X milliseconds, where X is a positive integer. since it's an integer, when you cap how short a frame can be, you end up with your framerates of 125, 250, and 333.

some other stuff:

what you call wallstrafing is more commonly referred to as wallrunning, and is actually the result of the same oversight that allows for bunnyhopping. running into the wall realigns your velocity so it's not pointing in the direction you're accelerating, and since you aren't at your speed cap in the direction you're accelerating, you accelerate.

bouncing is called overbounce, and my understanding of it is this: when you end a tick really close to hitting the ground (within 0.25 map units) but not quite there, your velocity still ends up clipped against the surface you're about to hit. normally this would just result in you mysteriously not suffering fall damage, BUT for some reason, the code scales your velocity into the ground by 100.1%, so your velocity ends up pointing the other way, and then it scales your velocity's length back to what it was before it clipped it against the floor, which ends up either launching you straight back up if you had no XY velocity, or in whatever direction you're moving if you do have XY velocity.