Stop Bugging Me
Bugs that make and break the games we love
June 07, 2017
Infil blackadde

Some Bugs Are Mechanical Oversights

As mentioned, most of our discussion so far has been on programming bugs of varying severity that were clearly not intended. But there are some very important strategies in fighting games that are actually just logical extensions of intended behavior that ended up doing unintended things.

I think the most famous example is wavedashing in Super Smash Bros. Melee.

Super Smash Bros. Melee - Wavedashing

I’m not really a Smash player, so maybe you can give a little rundown on how things work. I do know that it had something to do with air dodging and hitting the ground and how momentum works in that engine, right?

In Melee, every character slides along the ground with a specific ‘friction’ that varies among the cast. You see this happen often when, for example, you get hit by an attack at low percents, or you get bounced around by an item - some characters, like Luigi, slide uncontrollably far, while others, like Bowser, don’t slide much at all. If you use your character’s air dodge while touching the stage, you will begin to slide using your character’s friction. Again, this is all intended by the game developers.

What they didn’t foresee, however, was that if you jumped and then air dodged diagonally downwards as soon as you left the ground, you could use this as a form of movement! Characters with low friction could slide effortlessly along the ground.

If you air-dodge into the ground immediately after you jump, you will start to slide around. (source)
You might ask yourself “why wouldn’t you just run or dash forward if you wanted to move?”, but the important thing about wavedashing is that you are technically in a neutral state while you are sliding, which means you get access to all your character’s powerful neutral tools (such as tilt attacks, smash attacks, shielding, and other forms of movement like dashing in the opposite direction). So wavedashing is a way for some characters to move without committing, and they are able to change their plan of attack in an instant.

Right, Smash is kind of weird in that when you’re moving around you change what moves you have access too, right? You can’t just do a tilt or smash or whatever when you’re careening full-bore across some Star Fox spaceship. I always end up getting dash attacks when I don’t want them.

There are ways to cancel your dash/run into stationary moves, but because wavedashing is so much more powerful, those other techniques are much less used.

I remember when I first learned to wavedash as a beginner Melee player back in 2002. It was my first exposure to using an unintended side effect like this in real matches, in any fighting game. Even just doing a successful wavedash in training mode felt really good, and slowly over time I became more consistent. But, like most beginner players, just because you know an advanced technique or combo doesn’t mean you understand how it fits into real matches. I would often wavedash in matches just because I could, and lose to people that couldn’t wavedash because they’d just do ‘dumb’ smashes and hit me.

Wavedashing in Melee really taught me about spacing in fighting games. I started to realize the reason behind why I would want to wavedash in and out of my opponent’s range; I could wavedash backwards to bait the smash attack that kept hitting me, for example. I took these lessons about spacing and used them to make me a better player in all other games I was playing, but I will always have a soft spot for wavedashing because it was foundational to me in my understanding of fighting games.

There is definitely a tech tunnel-vision that can happen to new players as they learn the ropes. At a very low level, once you learn how to perform a Hadouken in Street Fighter, it’s suddenly the only move you know how to do. I think that can persist all the way up the skill chain until you feel like you have mastery of your techniques.

It’s true. Lots of people prioritize the wrong skills while learning a fighting game (such as a difficult combo or technique) without learning the basics.

Nintendo definitely didn’t like wavedashing, though. They patched it out in the sequel, Super Smash Bros. Brawl, much to the dismay of pretty much every non-casual player, and they have maintained their dislike for it up to the modern-day Super Smash Bros. for Wii U.

I’ve seen plenty of complaining from casual (and not-so-casual) Smash players, both in person and on message boards like NeoGaf. One of the biggest complaints they often have is that it’s not ‘taught’ by the game, and that Smash’s (implied) design goal is to be simple enough that hand gymnastics don’t really play a role in the outcome of a match. I think there is sometimes a very real frustration that a game they love is being bastardized into something else entirely - although, I think that’s somewhat outside the scope of this talk. Regardless, I think wavedashing is actually an interesting case study in perceived complexity because it’s just the outcome of simple rules that are easy to explain.

In general, I think people don’t like it when a game becomes something they didn’t understand when they first started playing, even if the new way to play adds a lot of interesting things. People automatically think the new thing is above them, when really all that’s needed is some careful instruction.

Marth uses a wavedash to slide backwards after tricking Ganon into using a wakeup attack. Safely out of range, Marth uses his strong forward smash for an easy KO. (source)
Personally, I think wavedashing and its extensions like wavelanding are awesome because they are so freeing and allow for so much creativity. It ended up being a huge reason why people compare Melee to jazz music, something awesome because of its lack of structure and freedom of expression. Nintendo may not have liked that it was technically challenging to perform (although, to be honest, it’s not even that bad), but that’s okay… games like Rivals of Aether have simplified and cleaned up the wavedashing input so that it is accessible to more players, and then taught it in their tutorials and incorporated it into their character designs, so that all characters have useful wavedashes. Nintendo’s insistence on removing this technique has been to the detriment of their future games, in my opinion.

This is definitely one of those cases where a developer should be willing to learn from the ‘happy accidents’ that can happen as games get played by millions of people. Sure, wavedashing was used way beyond the planned design, and it provided a barrier of skill that Nintendo must not have been comfortable with. But the benefits wavedashing brought to the game were so numerous that Nintendo’s designers should have accepted that they stumbled into something amazing, and then focused on maybe cleaning up/improving the wavedashing mechanic in future games. Simply yanking it out because they were scared of it was, I feel, a big mistake.

All Fighting Games - Kara Cancels

I think there are tons of good examples of ‘unintended consequences’ arising from simple rules in more traditional 2D fighters, too. A good one to zero in on might be kara-canceling, or ‘empty’ canceling.

In many 2D fighters, the developers allow for some slop in the inputs. We all know that the motion for Ryu’s fireball is a quarter-circle-toward and a punch, right? But what if you accidentally press a kick a split second before, because you fat-fingered the buttons? Your input might be a mess, but the game has to do something with it - you’d think it would just give the first thing you input, but that’s usually not the case.

Many games - and here we can talk about Street Fighter III: 3rd Strike and Street Fighter IV in particular - actually prioritize special moves over normals. There’s a whole hierarchy of inputs which trump other inputs when they’re executed in the same small window of frames. All for the sake of making the game playable for normal human beings, whose inputs are rarely precise.

We’ve seen how kara canceling is responsible for bugs like roll canceling in Capcom vs. SNK 2, but the actual act of kara canceling in general is definitely not a bug - it’s a necessity for the game to not require frame-perfect timing on every action.

Perhaps the most useful strategy for kara canceling ends up being the kara throw, which involves doing a normal attack, and then pressing the inputs for throw 2 or 3 frames later. The main reason you’d want to do this is because you’ve picked a specific normal attack that moves your character forward during its first few frames. When you press throw a few frames later, the game thinks “oh, he just meant to throw but fat-fingered it”, so the game stops your normal from animating and transitions into a throw.

Except now, you have moved forward a little bit and your throw has extended range.

Each of these kara throws from Chun-Li moves her very far forward, extending her throw range way beyond the defender's. (source)

Right. Kara-throws are super useful, for obvious reasons. Your character jerks forward and throws your opponent from a farther range than they usually can. Some good examples might be Chun-li / Q in Third Strike, or Ken / Vega in Street Fighter IV. Your up-close game gets way scarier because there’s a range where YOU can throw THEM, but not the other way around.

Kara-cancels are useful for lots of range-related things, like making a special move go forward or backwards. Makoto, for instance, uses a kara-cancelled Fukiage special move to finish her 100% stun combo by moving her backwards just enough for the juggle to hit. If the Fukiages are not kara canceled just right, they will miss.

If Makoto grabs you with her back to the corner, she combos into super and then instantly stuns you with two kara canceled up-punches. It's very difficult. The audio for this clip is world famous in 3rd Strike circles, so give the source link a click to hear it. (source)

That 3rd Strike Makoto combo is really difficult, and requires different kara cancels depending on your opponent’s character. But it’s a big reason why Makoto is so terrifying in that game.

Kara canceling can also be used to improve movement, such as plink dashing in the Marvel vs. Capcom 3 series of games. One way to input dash in that game is simply pressing two attack buttons. However, if you press the two attack buttons slightly staggered, you end up doing a normal attack and then kara-canceling it into a dash.

So, what ends up happening is that you dash, then cancel the dash into a normal, and then cancel that normal into a dash. Repeat that and you end up screaming around the screen, because dashes aren’t animated evenly - usually, the fastest part of your dash is the beginning, and it gradually slows down before your character stops moving. It’s a logical extension of the fact that Capcom doesn’t want you to have to press two buttons on the exact same frame just to dash in the first place, which is much harder than it seems.

Plink dashing lets you move lightning fast across the screen. (source)
This means that you can cross the screen way, way faster than you could otherwise. It doesn’t take much to see how powerful this can be - you can run away better, you can chase faster, you can position yourself where you need to be much faster than you would otherwise. Some combos, like Spiderman’s web-throw loop, are only possible if you can move across the screen fast enough, and require you to plink-dash to accomplish this.
Web throw. See ya later! (source)

I love watching great movement, it’s probably the main thing that makes fighting games fun to me.

Also! Plink-dashing is actually just really fun to do. It’s great having that kind of control over your character. Flying around with Doom or Magneto at the top of the screen and being able to move in and out twice as fast as you’re supposed to is great.

Street Fighter IV - Wonky Hitboxes

Let’s move on to another topic that we both know a lot about, being Street Fighter IV veterans - wacky hitboxes. I’ve played and seen a lot of fighting games over the years, and really, nothing approaches this game for crazy interactions because of unintentionally weird hitboxes when characters get hit or when they try to block.

In case you don’t know how fighting games work, all characters have something called a “hurtbox”, which is a series of rectangles hidden behind the scenes, indicating what areas of a character can be hit by attacks; often they don’t line up perfectly with the visual representation of the character on the screen for a variety of reasons. Attacks themselves have “hitboxes”, and when a hitbox overlaps with a hurtbox, the character gets hit.

The actual mechanics of fighting games are kind of hidden, and the visuals are generally disconnected in some way. Just play fighting games long enough and you’ll run into all sorts of weird stuff where your character’s fist just phases through your opponent. That’s normal, don’t panic.

Street Fighter IV, being a first-try 2.5D fighter from Capcom (Arika made the EX games, after all), has some weird stuff going on behind the scenes. While it did have "normal" 2D hitboxes for many moves, which are usually drawn by the developers frame-by-frame, for some moves there were instead procedurally generated boxes based on the geometry of the character in question. Instead of designed by hand, they were chosen by an algorithm.

The end result of this is that characters reel out of hits a LOT in Street Fighter IV. Like, a lot a lot. In fact, one of the core things you needed to know about a character to main them is whether your bread and butter combo (your basic go-to when you hit your opponent) would even properly work on Boxer, Sagat, Blanka, Gen, all of the new characters in Ultra SFIV, and number of other characters that “reeled funny” when you hit them in certain ways. If you hit crouching Chun-Li in the corner a certain way, she would actually reel completely off the screen and be unhittable by many attacks for a brief window.

Elena's hitbox is notoriously ridiculous in SFIV. (source)
As an Abel player from the initial days of vanilla SFIV, I had to know that doing step kick into standing HP, the very basic core of Abel’s pressure/combo game, would only work on Ryu if he was standing. If he was crouching, the stand HP would miss, except if the step kick was a counter-hit, then it would work fine. Meanwhile, I couldn’t hit standing El Fuerte with the combo, because for some reason his standing reel animation caused him to keel forward, thus making my HP whiff. All these tidbits of knowledge were mandatory for playing the game. Being a Makoto player, you probably saw a lot of this yourself, right?
Abel's bread and butter worked on standing but not crouching Ryu. Evil Ryu's bread and butter whiffs on Blanka entirely for no apparent reason.

All characters had a couple ‘scripts’ for how they would reel from various hits. Light hits would cause them to react differently than heavier hits, which makes sense from an animation perspective. Because every reel was dynamically generated and animations were actually very different for each character, crouching Gen and Chun-li would basically reel off-screen when you hit them with Makoto’s Tsurugi (Axe Kick) in the corner, making followups really difficult.

Characters would also fall at different rates, making EX Hayate to LP Fukiage juggles in the corner only possible on some characters (Deejay and Cammy, for instance) in Super Street Fighter IV, before they buffed Makoto to make them more consistent.

Street Fighter IV is just packed with weird stuff like this, and it made the game both a great playground for combo video heads and a pain in the butt for people like me who had to memorize character-specific combos or variable wakeup-timings across the cast. There’s a reason Infiltration and Laugh kept notes on every character at tournaments, and it wasn’t for writing practice.

SFIV’s wacky hitboxes made combo video makers like desk famous. He spent over 5 years releasing curiosities about how the hitboxes would break down when you hit Sagat out of his standing HK on frame 15 with certain characters in the corner, or how Akuma could counter-hit crouching Honda with 4 crouching MPs instead of 2. It was surprisingly fascinating, which almost made up for the fact that wacky hitboxes made your life miserable as a player.

The thing is, this kind of stuff has an effect on high-level balance, right? If your BnB combo doesn’t work on X character, then you’re immediately at a disadvantage. If a character is harder to combo, then the damage cap is effectively lowered, and you end up with a longer life bar to contend with.

Some characters were notoriously difficult to juggle in Third Strike, like the twins (Yun / Yang). Chun-li and Q were both really easy to juggle, so much so that there were plenty of character-specific combos for them that saw regular tournament play. So it’s important to keep in mind that these aren’t just curiosities, but actual balance considerations.

Street Fighter IV - Unblockables

Speaking of balance considerations, the most game-changing thing about SFIV’s poorly programmed hitboxes were unblockable jump-ins after hard knockdowns. Basically, if you knocked an opponent down and then used a specific jumping attack timed with when they rose off the ground, the opponent could not block it. Long story short, no matter which way your opponent chose to block, their hurtbox would ever so slightly sway a pixel one way or the other (due to the procedural hurtboxes explained above), which changed whether the attack was cross-up or not - that is, it always became the opposite way of what you were trying to block.

After Evil Ryu ends a launch combo with heavy axe kick, whiffing sweep and doing jump HK is an unblockable on Guile in the corner. If you watch Guile's inputs closely, you can even see him trying to block it differently each time. (source)
I think it is an understatement to say that unblockables dominated certain versions of SFIV, particularly AE 2012, which is the version that saw the most tournament play. Because of the differences in how hitboxes reeled and because of variable knockdown timings, unblockables were extremely dependent on the opposing character and the screen position, and people would fill out entire spreadsheets for how to set up unblockables on each of the game’s 40+ characters. In most cases, you were forced to eat the hit and take a combo (sometimes into another unblockable).

It ended up being so game changing that, in Ultra SFIV, the game’s final version, they actually changed an entire system mechanic (adding delayed wakeup) to try and mitigate unblockables, because they couldn’t find a “proper” fix amidst the spaghetti code.

Fighting games are weird, man. It’s crazy to see how many unintended side-effects there are to otherwise reasonable things - the hitboxes in SFIV are wonky, but they actually work as intended about 95% of the time, with nobody the wiser. These things - character-specific combos, unblockables, etc. aren’t bugs, per se, because they’re just extensions of the rules. Doesn’t make them any less weird.

This section is getting pretty long, but I think we should talk about option selects, since that’s a real hot-button topic among people who don’t quite grasp how they’re kind of always there. You sometimes see people saying they’re happy that SFV has ‘no option selects’, which isn’t really how it works.

All Fighting Games - Option Selects

An “option select”, in case you aren’t familiar, is simply inputting some commands that the game will treat differently, depending on the situation. For example, if you press crouching MK with Ryu and then do a fireball command, the fireball only comes out if your crouching MK touched the opponent. If it missed entirely, your fireball input is ignored. Two different behaviors, but the same input in each case. This is a basic OS that has been in every game since special cancels were a thing, and stuff like this is necessary behavior in order to make your game responsive and playable by normal people.

Sometimes, OSes can be extremely powerful - for example, SFIV almost required knowledge of advanced option selects to stop the game’s strong defensive mechanics, which is maybe where some of the fear about OSes comes from - but I think talking about different option selects could fill an entire article by themselves. So instead, let’s focus on just one that’s on the mind of players right now, which is the “jump back tech OS” in Street Fighter V.

In Street Fighter V, to ‘tech’ (avoid) a throw you need to input the throw command (LP+LK) in some some small window of frames after your opponent begins to throw you. If they *aren’t* throwing you when you try to tech, you end up with a throw whiff animation, leaving your character wide open to getting slugged in the face with a punch. So that’s not something you want to be doing willy-nilly.

Right, so SFV players found a trick - after waking up from being knocked down, they would block for a small number of frames, then jump backwards and quickly press tech at the same time. If their opponent attacked them, they would block, but if their opponent tried to throw, their throw input was within the valid window, so they would tech. If their opponent did nothing, they would end up jumping backwards while doing a jumping light kick (which is how the game interprets the throw command in this case), and you are probably safe-ish from retaliation (unless you're playing against Tokido).

After Verloren (Cammy)'s cross-up attack is challenged, he tries to defend by using jump back tech OS. Tokido (Akuma) is so well prepared that he punishes the jump by walking forward, then doing DP canceled into super. (source)
SFV is a game with very few defensive mechanics, but this was one way for players to try and defend against the “throw or meaty” mixup. It wasn’t foolproof, of course… your opponent could delay their attack to hit you trying to jump away, or they could react to your jump and use a long-range anti-air attack. But the fact that you had this option available to you forced the offensive player to change his plan of attack, which might limit the iron grip they would otherwise have on your life bar.

The main reason I wanted to mention this specific OS is because Capcom didn’t like it. In the mid-season update for Season 2, they patched it out of SFV entirely.

Yeah - to even acknowledge that an option-select exists in the first place is usually beyond what Capcom is willing to address. They left so much stuff untouched in Street Fighter IV that I was surprised they were willing to even talk about this one.

So why did they get rid of it, and so publicly? Some part of it was definitely an issue of perception - they want SFV to be a simple game, but the term ‘option select’ has become saddled with all sorts of negative connotations. As though they only exist for hyper-nerds who write 30,000 word fighting game blog posts.

Yes, the fact that Capcom so violently squashed this particular OS is really interesting, especially in the wake of the giant soupy mess that was SFIV, as you said. I think Capcom probably wants their game to be “pure” in some complicated definition of the word… they want opponents to have to guess between being thrown or being attacked, as if that is their punishment for being knocked down.

And in some ways, I can sort of see their point of view. However, I feel their approach to this is a bit short-sighted in the context of the rest of the game, a game with such smothering and oppressive offense and so few defensive options. The world’s best players are unable to survive long stretches of offense, so a defensive tool like this (whether intended or not) probably works in the game’s favor. The “purity” of the technique doesn’t really come into question, for me.

Yeah, I can see that POV too. I think ultimately it’s just a window into how a single development team approaches these quasi-bug-like-behaviors in 2017, compared to the wild-west days of 90s game development.

It also probably doesn’t help that jumping back with a light kick looks pretty goofy. I wouldn’t be surprised if aesthetics came into play for that decision.

So, what is a good way to wrap up this section? These “bugs” that ended up being just unintended side effects of very intended behavior, some of which make the game more entertaining for many people (wavedashing, plink dashing), and some that cause lots of headaches?

I think I’d like people to understand that developers are just people who do their best to make things work, and that game mechanics that aren’t really understood at launch (even by the dev. team) is called depth. Whether the water is shark-infested or not is something only time can tell.

Back to the blog index.

Fightin' Words