Build A Fighting Game Part 1: Introduction
If you're anything like me, at some point you loved fighting games so much that you considered the possibility of building and tuning your own.
This idea came to me when I began understanding the technicalities of crafting my own combos, how hitstun works, and in some games, how the different forms of hitstun come and go: normal, air, tumble, crumple, OTGs, wall bounces, ground bounces. To me, this was a concept very familiar to me at the time I became an entry game developer 2 years ago: finite-state machines. Finite-state machines, or FSMs, conceptualize the idea that something like the player's character in the fighting game can be described by a defined set of states, and the different ways a player can transition between them.
With pride that I was able to draw such a connection, I eagerly opened up Vim and started designing my own hitstun system, complete with inputs, determinism and rollback netcode. It wouldn't be until after I completely filled in the logic that I realized that I had challenged a beast.
The prospect of art ended my advances quickly. I was not an artist, nor an animator. I had someone who could draw, but their skills were geared towards attention to detail, which was incompatible at the pace I wished to produce characters: one character in less than 10 years.
In my daily midnight musings, I had realized that even if I could grasp a sprite workflow I was comfortable with, I would still have to deeply dedicate myself to the animations of moves. It is important to communicate to the player as much as you can about a move in less than 30 frames, depending on the move. Not everyone will have their Dustloop memorized for every character. A good animation should not only communicate the hitboxes well, but it should also indicate the properties of the move, such as invincibility or low profile. The animation of a move also determines how reactable, or how deceiving the move is, therefore it also becomes a case of game design.
It was relieving to realize that my game wasn't going to have to have amazing spritework to be remembered, but the effort I saved putting minimal effort in spritework would have to be directed to animations.
Considering that I write this with no fighting game to my name, it is safe to say I threw in the towel at this point. Github has a preserved copy of an old version of the game tech demo, but the final results were lost to time.
The Siren's Call
To summarize, a fighting game worth building hinges on two things: The ability to implement your game design and the ability to communicate your game design. These are fulfilled by the essential skills of programming/logic and art/animation. If you don't have at least a basic understanding of either, you may want to consider challenging smaller game projects first. Start with these resources and when you're bored and in need of something to capture your attention, go through Masahiro Sakurai's videos, which are incredibly helpful at capturing fundamentals. When you find a comfortable footing, join a game jam!
Sound design is also important too, but only because your player is going to be hearing the hit and guard sounds a lot, and may not be something worth getting deeply involved in. It is worth getting a sound that isn't grating on your ears, even after hearing it for the 20,000th time, and that can be time-consuming. Your hit sounds should be satisfying to hear, too.
This blog exists to follow my experience building a fighting game, and to document my shortcomings so others in the future don't waste their time pursuing dead ends like I have. This level of closeness to my text allows me to go in great detail about the struggles and decisions that must be overcome, but it also means the information here may not apply to you if you use this series practically. This series will be focused on airdashers and will also be focused on my own system mechanics I curate myself. If you desire more general advice, Andrea Demetrio, creator of Schwarzerblitz, has an amazing series on Medium here. I should have just named it Build An Airdasher, but there are many things that still apply to fighting games in general, and possibly even action as a whole. Besides, I don't think people who don't like kusoges as much as I do will be as drawn to the word "airdasher" as much as to the phrase "fighting game."
I am also going solo and operating on a budget of 37$ and a pack of gum. Very little work will be outsourced, and if it is, I will pay with trust and time. There will be corners cut, and details of these money optimized workflows will be included. This series is targeted towards people interested in the solo dev experience. It may very well remain a solo project because I do not yet trust my ability to handle a team.
The series so far: