
Board: Development
For this purpose let's think of a joystick for moment.

OUR GOOD FRIEND THE JOYSTICK
For the purpose of fighting games, we are concerned with detecting a total of 8 directions, the ones that form the (two) cross map(s):
UB | U | UF | 1 | 2 | 3 | |||||
B | N | F | 4 | 5 | 6 | |||||
DB | B | DF | 1 | 2 | 3 |
I will be using the notation to the left, although some of you might be used to numerical notation. The previous map should show what I'm referring to in any case.
For the remainder of the tokens and symbols, I will be using the MUGEN standard of notation, because I think it is appropriate. This is a quick summary of the symbols I'll be using and their meaning:
Tilde (~): Detection of a button or a direction release of the joystick.
Dollar ($): Cardinal-only. In a command sequence, presenting $U,$D,$F or $B means that any diagonal input within the range of that cardinal is accepted as a valid input in the sequence.
For example, detecting a command as the sequence {F,$D,B} means that the subsequences {F,D,B}, {F,DF,B}, {F,DB,B} are all valid for activating the command.
Understanding the joystick.
Fighting games were born as arcade games, so it is no surprise that fighting games have mainly been designed to make use of joysticks as the main source of input. Originally most games did not require many precise movements other than moving vertically and horizontally, so joysticks used to be 4-way, this means diagonals were either mostly muted or completely out of range.
When fighting games came around, the more popular 8-way was starting to get its big break, and fighting game design started to take advantage of that. That's where the special move was created.


X-MEN just assumes you don't know your movelist.
Now that diagonals are available to use, how can we make good use of them? Simple! We can detect joystick revolutions! In a certain sense, it is like drawing. Detecting revolutions was the first step to establishing what we know as special moves, but detecting revolutions is not entirely a trivial problem.
In this regard, we can actually think that there's two very special schools of detecting joystick motions: the Capcom school and the SNK school. To illustrate, let's look at this picture:


Images borrowed from SlagCoin
What you see is the area representation of two distinct joystick restrictor gates, on the left we have a square gate and on the right we have an octagonal gate. These two gates co-existed in arcade cabinets during the golden era of fighting games, and each developer tailored their input detection and games towards the specific gates the games were produced for.
The square gate (on the left) allows the joystick to map an equal area or region to every possible direction (marked as 11%). In a square gate each direction is given the same amount of priority in terms of detection.
One particular aspect of the square gate is that it is highly difficult to perform inputs by riding the gate, this means that for the most part the joystick should never be touching the "walls" of the gate. This added a layer of difficulty to beginners and people who were not used to playing arcade games.
Capcom, in particular, was a company that tailored their games for square gates, as their games would mostly be featured in cabinets with the Seimitsu LS-32 joystick, which came equipped with a square gate. This type of joystick restriction gate is now the standard used for consumer arcade panels and arcade cabinets in Japan.
The octagonal gate (on the right) modifies the shape of the walls to form an octagon and thus creates an uneven distribution for our 9 possible joystick positions.
While the octagonal gate restricts the area of diagonals by 5%, it also holds one special perk: the octagonal shape! By using an octagon shaped restrictor, this type of joystick would allow new comers to have a "guide" for accurately moving the joystick. In this type of joystick, one can verify the position of the lever at all times by touching the nearest wall. This makes playing games more welcoming!
SNK, in particular, was a company that tailored their games for octagonal gates, as their joystick for AES and MVS systems was a modified version of an LS-40, with an octagonal (and sometimes circular) gate. Octagonal gates are often recommended to beginners who haven't used arcade sticks before.
When designing a game, and especially a fighting game, it is very important to keep in mind the type of hardware you're tailoring inputs for.
What's the most important aspect about any game? Well, being able to fucking play it! - James Rolfe as The Angry Video Game Nerd.
Coke or Pepsi? What input design school to choose?
The way a game responds to user input is one of the most important aspects for leaving a lasting impression to a player. What's the best way to go about it? When thinking of the golden era of fighting games we obviously have to examine what Capcom and SNK did back in the day.
Let's discuss a little how Capcom does it.

I just wanted to post this broken stance Guile gif.
Capcom designed their games with the square gate in mind, that is, they designed their games with the idea that the joystick would have an even distribution in regions for every possible direction. This carried over to their command design too!
There's one particular motion that demonstrates this more clearly to us: the half circle motion.
For a Capcom game, the half circle motion is parsed as follows:
Code:
~B,DB,D,DF,F
This means that, the diagonals are all checked and are a necessary aspect of the motion. Since the distribution of our diagonals is even, performing this motion with 100% accuracy is not too much to ask as it is just one swift motion of our wrist.
But what happens when we go over half a revolution? That's where things get interesting.
Code:
~D,F,U,B or ~F,U,B,D or ~U,B,D,F or ~B,D,F,U or ~D,B,U,F or ~B,U,F,D or ~U,F,D,B or ~F,D,B,U
This is the command for detecting a 360 motion, in this case full accuracy with the 4 diagonals is no longer asked, only cardinal accuracy is important. One important factor for this is that muscle memory for controlling the upper portion of a joystick is not usually developed as fighting games are focused on the lower half most of the time.
One of the nice aspects of square gates is that since the gate is a square, it is very easy for us to confirm the location of the cardinals , this is why they're chosen as the pivots for greater motions such as a 360.
In short, Capcom keeps a very strict case of observing diagonals throughout an input and relies on cardinals to define simplified greater revolutions.
Now let's look at SNK!

Let's not get too hasty now, we are almost done.
SNK is a very special case, as they turned what used to be a limitation into a quirk or personality.
In the very beginning, SNK made commands the exact same way as Capcom did, which meant that each direction in a sequence would receive equal priority in every step of the way. That is, until one game changed it all.

This bad boy.
What do we do when we must define a Power Geyser? Power Geyser is a motion that requires a quarter revolution backwards followed by half revolution forwards.
If we recall that SNK favored octagonal gates, then we have to observe that the areas assigned to diagonals are smaller than they would be compared to a square gate. This means that by doing two wrist flicks in opposite directions is very likely to produce an unintended error during the input.
The solution? Let's make it more lenient!
Code:
~D,DB,B,DB,F
This is the original sequence definition for a Power Geyser in Fatal Fury 2. Notice that for the final half circle, only one direction is checked instead of three. This is the basis of what SNK would later do with their commands.
A modern Power Geyser or Hou'ou Kyaku now has this form:
Code:
~D,DB,B,$D,F
This is a now modern and evolved version of the original solution they designed back in the old days. This command design was chosen to eliminate the constant execution errors by missing one diagonal by mistake (often due to the diagonal areas being small), but it carries over all the way to modern times, even without octagonal gates being standard.
Half circles and 360 motions also follow this same principle:
Code:
~B,$D,F
~F,$D,B,$U or ~D, $B, U, $F or ~B, $U, F, $D or ~U, $F, D, $B or ~F, $U, B, $D or ~U, $B, D, $F or ~B, $D, F, $U or ~D, $F, U, $B
Conclusion.
Knowing the existence and differences between the design styles of commands is a very important aspect of creating (or emulating!) fighting games.
Not all the rules are set in stone, but it is a good idea to sit down and think who the target audience of your game is, based on your target audience they might appreciate a little more to find that the personality behind the inputs is something that rings close to home.
Now that fighting games are more popular and diverse, it is not surprising to see games that mix rules and ideas of both styles, but not without careful study of the reason and the ideas behind their design.
Before jumping in to any paradigm altering buffering things, I invite everyone to pay more attention to commands and inputs, as this is an area that is often not given enough care.
This concludes this mini section, let's discuss more code in the next one!