Dan Fornace’s 10 Tips for Making a Fighting Game
So you’ve decided you want to make a fighting game. Or you’re already making a fighting game. Or you enjoy playing fighting games. Or you came here from my Twitter which you only follow because you like seeing pictures of my dog.
If any of those apply to you, then you’ve come to the right place. In this article I’m going to give you 10 Tips that will help you make the best fighting game possible. These tips are mostly directed at designers but spill over into art direction and programming too. These tips are for games of all sizes whether you’re starting one on your own or working with a bigger team.
If you’re wondering why you should listen to me. I created the indie fighting game, Rivals of Aether. I’ve also been working on fighting games for 10 years now. Wow, I’m old. But if that doesn’t impress you then maybe my sick writing skills will.
1. Fun before Balance
This is a concept that I’ve brought up in the past on Twitter, but it’s worth bringing up again as the first tip. I believe that a lot of game developers look at a fighting game as a difficult genre and the thought of balancing all the variables that goes into a fighting game seems like a monumental task.
My argument is that these developers are putting the wagon before the horse. It won’t matter if your fighting game is balanced if no one is playing it. When a trailer rolls at E3, no one says “Oh that looks like a perfectly balanced fighter! I’ll definitely buy that.” The driving force for interest and a later purchase is whether or not the game looks fun. Presentation obviously plays a big part in this but a fighting game being fun is both how you get players in the door and get them to share it with their friends.
Focusing on balance too early can negatively impact the development of your game. Worrying about balance as you are designing new concepts can lead you to make conservative choices early. And this spirals down the development cycle until you end up with watered down designs. Game design as the project continues is about refining and making systems work together. If the initial idea is tame then it’s difficult to make it more elaborate over time. But if the initial idea is wild and unbalanced then it’s easier to refine it into a balanced piece of your game while retaining what makes it unique.
The idea of a perfectly balanced fighting game is a myth and not really something that you should set out to achieve. If that was a design pillar on your project, you would be tempted to make a homogenized roster where characters have similar tools, movement properties and frame data. Instead set out to give your characters their own identities and playstyles. When adjusting their balance, don’t be afraid to push them even further toward a glass cannon or slow tank. It can be easier to appear like a balanced game when every character is so different that it’s hard to tell how they stack up against each other. This strategy can also accentuate player preferences and give you more varied tournament results. Maybe you’ll never need to balance your game and people will argue about tier lists until the end of time.
2. Rollback is Required
Rollback netcode is a method of setting up your online play to predict frames in order to achieve a lower and stable input delay. The alternative is delay based netcode which simply increases input delay for worse connections. Rollback is the superior method especially when you give users control over their rollback values.
For those who have been following fighting games closely, you could say that rollback netcode should have been required for all fighting games starting in 2006 with the release of GGPO.
Unfortunately there are still big fighting games with delay based netcode. Even my own game Rivals of Aether launched without rollback netcode in 2015. It turns out that launching a game without rollback netcode makes adding it back in extremely difficult. We started working on rollback in 2017 but just launched an open beta for testing our rollback solution in September 2021. This is one reason why you see a lot of games without it. They are building on top of engines and previous games that would take massive overhauls to get rollback to work. Another reason is that a lot of fighting games come from Japan where the distance between players is low and internet connections are great so rollback is less required when playing against opponents in their own region.
But if 2020 has taught us anything, it’s that the days of delay based netcode are over. In 2015, I would have told you that you can’t launch a fighting game without online multiplayer. Players and communities have shifted to online and they need to be able to play against each other quickly online. Now in 2021, you can’t launch a fighting game without rollback netcode.
And you need to plan for it from the start. From a developer who has experienced it both ways now, make sure you research rollback netcode and what is required and get it hooked up along with your first character. Because while adding in more content that works with rollback is tedious, it’s a million times better than trying to get a game with a massive amount of objects and interactions to work with rollback after the game is in players’ hands.
3. Animation is the Foundation
To make a good fighting game, you need good animation. There really is no way around this requirement. You can have simple animation. You can have low polygon characters. You can have small sprites. You can have low frame count animation. You can have stepped animation. But you can’t have bad animation. This is because in fighting games, animation and game feel are intricately tied. The animation is the foundation to your fighting game and the visual effects, sound effects, hitpause, camera effects, and other game feel additions are the dressing.
Animation is probably the main area where a lot of newcomers to the genre struggle. Why is it that Smash Bros plays so well but when other companies attempt the same formula, it doesn’t feel as good? Well, on top of the design and perfecting the dressing, all of the Smash Bros titles are master classes in animation. All the way back to the N64 version, Smash has always had great silhouettes, a good sense of anticipation, strong keyframes for startup, active and recovery, good use of squash and stretch, and clearly distinct states.
I have another medium article where I do go into some more detail about animation principles, timing and silhouettes. But the main takeaway is that animating for a fighting game has additional requirements on top of other game animation. Being a great animator in other genres doesn’t guarantee your skills will transfer over instantly. This is where having an experienced combat designer working closely with your animators can push your game to that next level. Fighting game timing requires a good bit of cheating. Characters need to quickly get into their key frames to improve your game’s readability and responsiveness. Once design and animation get on the same page about the requirements, then you can start cruising through your character development.
4. Readability over Beauty
Fighting Games need to be readable. Now that you have great animations because you listened to step 3, you need to make sure that people can see them. First, your characters need to pop out from your backgrounds. You can achieve this by making sure your characters have more saturation and contrast than your background elements. Here is a contrast hierarchy copied over from my previous article:
- Characters: Highest Contrast
- Projectiles and Character Articles (ex. Kragg Rock)
- Stage Elements with Collision (grounds, walls, platforms)
- Close Background Elements
- Far Background Elements: Lowest Contrast
Next you need to make sure that your visual effects are not blocking your animations. You want them to accentuate pivotal moments but not obscure the gameplay for you or your opponent. One trick that Rivals of Aether does is we obscure the player getting hit inside hit effects but reveal the attacking player. The player getting hit is in hitlag and then goes into hitstun and is more predictable than the attacking player who can drift or sometimes do a cancel while the visual effect is still happening. In platform fighters, you want to see the attacker so the defender can clearly see what hit them and DI.
Finally you want to make sure your camera and your HUD are not hiding information. If you have stage hazards or character traps then make sure people can see them or display indicators. Spend time to make sure your camera displays the action you need without being so jerky that it’s difficult to look at. Both players should have all the information they need to make quick choices. You want to make sure players are fighting each other and not the game. You also want to make sure that the game is fun to watch and follow along even if you are not playing it.
5. Responsive not Fast
Recently in platform fighters, we have seen a trend toward “faster” and more technical gameplay. Our game, Rivals of Aether, is part of this trend as we tend to have lower recovery, low landing lag and quicker movement options than some of our contemporaries in the platform fighter genre.
But “faster” should not really be your goal. A fighting game doesn’t need to be fast to feel good. If you make everything in your game faster then nothing is fast in comparison and the game eventually becomes difficult to control or watch. You need slow actions so that the fast actions actually feel fast. You want to have a balance and design attacks with varying startup where some you can react to and others you cannot so players can both express their prediction skills and use their reflexes. You also want to have attacks that are have quick recoveries and are “safe” and others with long recoveries that are easy to punish. If everything in your game is fast with quick startup and quick recovery, then the gameplay will suffer as combat becomes samey.
But while your game does not need to be fast, it does need to be responsive. Making your game responsive is a two front attack. One is from design and the second is from programming.
The design front was mentioned in the animation tip, but the goal is that all your actions should feel responsive. The frame after a button is detected, your character should be getting into their key-pose for that action. Within 1–3 frames depending on the action and the length of the startup. In other games, you might have a transition from one state to another where the character slowly blends out of idle. You don’t want that in a fighting game. You want the character to pop into action. If you have a slow blending transition then the button is just going to feel laggy as the first few frames look too close to idle and you can’t tell that the game has even received your input. Now you have to be aware of just how much you are popping because too much motion in a single frame will be jarring. You’ll need to take a handcrafted approach. Most fighting games run at 60 FPS and are animated by hand for every frame. You don’t see much interpolation unless it’s programmatically done to cover state transitions. Get into your poses quickly but also be ready to create a lot of animations for all kinds of transitions so your game can feel both smooth and responsive.
Along with animation, the design front continues to all feedback in the game. Sound Effects should play as early as possible and be designed to give you the tell as soon as they can without much build up. If you want players to be able to react to “FALCONNNNN PUNCH” and dodge when they hear Falcon then make sure it’s audible and early into the startup. The same strategy works for visual effects. Hit effects shouldn’t scale up slowly to a crescendo like in other games. They need to start big and then explode even bigger. As soon as the hit happens, you want the game state to be noticeably different. You want both performing and landing attacks to feel tight and responsive. These VFX and SFX rules can be broken to hide rollbacks but it will affect how your game feels locally if you have delayed reactions.
The programming front of the attack is the fight against input delay. A fighting game is going to feel worse the higher the input delay is. There really is no way around that. A lot of great games have struggled with input delay for a variety of reasons. Sometimes this challenge is out of your hands especially when using a game engine and especially on certain platforms. You should put energy in getting your delay as low as possible on your flagship platform even if you can’t get it down on all your platforms.
The second half of the programming front is the second tip - you need to have rollback netcode. With rollback, you can keep the input delay to a reasonably low amount even when playing online. Make sure you are optimizing your game and designing it with rollback in mind from the very beginning.
6. Create Spectacle Moments
Fighting Games need spectacle moments. This is something that the genre has improved on greatly over the last 10 years. In fighting games, you want player actions to have a scale of feedback. You don’t want all actions to have the same amount of feedback. From your lightest attacks to your craziest super, you want to ramp up the visual and audio feedback to match the impact that is happening on screen.
A lot of indie fighting games struggle with this because spectacles are expensive. Big and varied visual effects are harder to create and fit into the game’s style than repetitive small flashes. Cinematic supers are extremely expensive when mechanically they offer the same gameplay as a simpler super effect. But you want to spend some time and push your pivotal moments over the top if you can afford it. The value here is two fold. The first is that players feel rewarded for achieving the difficult or limited action whether that’s landing the final blow or activating their X Factor. The second is that spectacle moments are a great way to sell your game to new players. Even if they don’t understand what is happening exactly, they can understand that it’s cool. Spectacles help guide new players toward getting better. Because if it’s cool, then they will want to figure out how to do it themselves.
7. Characters need Personality
Fighting Games are carried by their characters. But in the modern day and age, most fighting games are not carried by their story modes. You may have noticed that since 2010, pretty much all fighting games fall into three categories: sequels, licensed or indie. Sequels and licensed games are easier bets because people already care about their characters. They probably already have a favorite character and are excited to see how it plays in this iteration. And even if they don’t have a favorite, the roster has a variety of characters pulling from usually decades of content so there is probably some personality that they will gravitate towards.
Indie games are where we are seeing some fully new rosters come out. But these games often don’t have the budget to create big story adventures or establish their characters outside the game. For a lot of indies, just making a fighting game with a handful of characters and functional online is a monumental task.
So what can these indies do to make people care? You need to give characters personality during the gameplay itself. Design and animation are not just for moving from point A to point B and attaching hitboxes. You should be designing attacks, movements and even idle animations to match a personality or gameplay style for your character. If you are making a fighting monk then you expect that character to be flexible and smooth. If you are making a steampunk robot, then you would expect that character to have more rigid motions. These differences are important and help people relate with your characters and choose their favorites without ever reading a single word of story text.
8. Reduce Menu Time
The most fun thing to do in a fighting game is to fight people. You want to make sure that when people are playing a session of your game, they spend as much time as possible fighting people. This means that your menus and load times need to be reduced as much as technically possible.
You might be tempted to create flashy menu transitions and cool animations especially when opening character select. And you should do this if you can afford it! But keep it as short as possible. Unless you are hiding necessary load times, never make the player wait for a menu to transition. Players are going to be in the same menus hundreds of times so no matter how cool that transition may be, if it’s long, eventually they will hate it. This is also true for character intros and outros. You either need to keep them short or allow players to skip them.
When it comes to online play, you want to follow the same principles. You can add fun modes and interesting lobby systems, but your quick match option should be quick. Match up two players near the same skill as quickly as possible and get them playing a match within seconds of finding their opponent. This will help your game look better on streams because you’ll be showing off more game time and less menus.
9. High Level Play should look cool
This is a down-the-road problem for most projects, but it’s something to consider since we are developing in an age with such rapid user feedback and interaction. Basically, every videogame will eventually be played optimally. And if you want your game to be fun to watch then the tournament level needs to look cool and aspirational. This has two caveats.
First the optimal style of play needs to be impressive to viewers who are fans of your game and competitive games in general. If your top strategies are considered “lame,” then look at your design to see what could be triggering this reaction. Are you lacking feedback? Are you lacking counters? Are you lacking technical difficulty? Sometimes the problem lies in perspective and not the game itself especially with fans coming from other games, but other times you’ll have a communication issue where the cool and difficult fine details in your game are not coming across to viewers due to lack of feedback.
Secondly, the optimal style of play can’t look too janky. If you make movement options or cancels that are the best then make sure that character doesn’t look broken when using these cancels to traverse the stage. The joke here is Melee wavedashing and dash dancing, but honestly both of those states break down quite well to illustrate what is happening on screen. But you could easily have a situation where optimal movement looks bad and detracts from the experience.
Make sure you are watching and recording competitive play during your game’s development and brainstorm ways to make your game more spectator friendly. Most of your fans will see a video of a game as their first impression so you’ll want to hook them in even if they aren’t playing it.
10. Work with your Community
This last tip may seem obvious but there are a couple tips embedded in this one. The first is that you want to build a fighting game with your community in mind. If you are making your game with competition at the forefront then work on having rules and features that match what your competitive fans want. For example, your ranked play should have best out of 3 sets if that’s what you expect your fans to prefer. Once your game comes out, you should work with the community to adjust the rules according to how people are actually playing. If tournaments are banning a stage because it’s an eye sore, a bad layout, or causing slowdown then update the stage to resolve the problems so it can fit back into the rotation. You want your own official tournaments and the game itself to adapt to how the community is playing and prioritize features that are highly requested in your updates.
The second tip buried in this last one is that the tip doesn’t say “Listen to your Community.” Instead it says “Work with your Community.” This is because while your community is often very good at detecting problems, they are not always the best at coming up with the best solution for your game. It’s up to the designers on your team to really get to the crux of the issue. Sometimes it’s obvious but the fix isn’t easy. Other times the actual problem is buried under negative feedback and player salt and the solution can be a much lighter touch than the community is clamoring for. At the end of the day, you and your team should know what is best for your game. You have the vision. You set out with your original goals. Work with the community but it’s up to you to decide which problems you address and how you address them.
And that’s my 10 tips for building fighting games in 2021. This year has been an amazing year for fighting games and it looks like even more great titles are on the horizon. If you have a game you are working on that you want me to check out then feel free to reach out to me on Twitter. I would love to see what you’re cooking up!