IGP spoke with the developer of MerFight to talk about sea life inspired special moves & compelling options for when you’re stuck blocking.
IGP: MerFight is a fighter with an aquatic theme. What interested you in doing a fighter where all of the characters are built around sea life?
Matthew DeLucas: I feel a lot of games already utilize the 20XX theme. They take place in the real world but have some unreal elements – magic, demons, shadowy organizations that want to block out the sun, etc. In an effort to try to make my theme stick out, I decided to go with an aquatic one, mostly using Rikuo from Darkstalkers as inspiration.
Did this aquatic theme inspire any unique mechanics? Any interesting abilities for the characters based around the animal they were inspired by?
The theme definitely influenced some character-specific ones. For example, Odon is based on the mantis shrimp, which can apparently punch so far that they sometimes can break glass tanks. So, like mantis shrimps, Odon has very fast, powerful punches. Then there’s Naeco, who is based off the Yellowtail Fang Blenny, which is a small poisonous fish, so he has some poison attacks. I will admit I could have pushed this further for some characters, and if I do DLC characters, I definitely plan to.
As for universal mechanics, not really. The game doesn’t even take place underwater – something that is rather difficult to explain. After launching the game into Early Access, one of the players mentioned that it’d be neat if there were a mechanic where players can jump in and out of water and the physics changed based on their positioning. It’s too late to make a change like that, but maybe I’ll utilize that in a sequel or prequel game.
Creating a character and moveset in a fighter is a complicated process. Can you walk us through the thought process that goes behind the creation of a character and their abilities? The process that goes into creating a set of character moves that flow well together to create combos?
It’s a bit tricky as I’ve been working on the game primarily solo for a while. On a larger team, I imagine it’s a lot more of a collaborative process between a combat lead and other designers. However, for me, it’s been mostly just throwing darts at the wall and seeing what sticks.
Maybe my process wasn’t that haphazard, but for MerFight, it definitely was a lot of having the character ideas in my head and going from there. I’d grab some inspiration from other games, do some sketches – nothing really concrete or in stone. I’d animate some attacks, put them in the engine, and play around with and tweak them. As I played, I’d find interesting combos or mechanics and go from there. I think that more organic, iterative process is what helped create moves that flow well together. It’s very rare – if not impossible – to design everything on paper, implement it, and it be perfect right away, so even if I had written a very strict document beforehand, there’d probably be a lot of iteration anyway.
You mention that you wanted to create a fighter built around “flexibility and leniency.” What does that mean for you and how you designed MerFight?
MerFight isn’t perfect with this, but I wanted to make a very accessible game, and I feel flexibility and leniency are two ways to help with this. By flexibility, I mean that most moves combo into other moves and there aren’t a lot of exceptions to various rules. For example, all normals can be canceled into specials, which can be canceled into supers, etc. There are very few exceptions to this. As for leniency, I meant more from the input and timing perspective, neither of which are meant to be very strict or hard to understand.
Overall, one of my goals was to make it so my parents – who are definitely not skilled gamers – could play the game. Sure, they can’t play at a high, competitive level, but they can at least complete the tutorials without my help.
You allow players to do simpler inputs to execute special moves, but you reward players who do the more complex motions with a meter boost. What drew you to do this? Why allow for both simple and complex motion inputs?
In 2016, I wrote a Game Developer article about accessibility and simplified inputs. It got a bit ragged on, but I think some readers missed the point. I wasn’t saying “Oh, traditional inputs are bad and we should do away with them,” but more that “They are a bit complex and fighting games need to do a better job teaching new players how to do them properly.” So, in a way, MerFight was sort of an attempt at this. I tried to achieve this by going, “Hey, you don’t have to do the complex motion, but you should try learning to do so for the bonus.” After player feedback though, this is now optional. In retrospect, though, some simple versus traditional input schemes are hard to play off of – charge characters specifically.
I will admit, after playing DnF Duel, I liked the way they approached this issue. One issue MerFight has is, at times, a player doesn’t want to do the simple input for a special but gets one by accident. That’s why there are no back z-motion attacks in MerFight; players would often do the special by accident when performing a crouching low attack while holding back. Unfortunately, I feel the game is too far in development to overhaul the scheme to this extent.
You created two sets of meters for players to use: Energy Meter and Pops. Why two types of meters? What did you want to do with this complex system?
This is sort of influenced by my other fighting game, Battle High. Sometimes I say that MerFight is a spiritual successor to that game, especially with the elemental (earth, fire, water, etc.) sub-theme in the game. Regardless, because the inputs are simpler, I tried to balance this out by adding some complexity to the game with its meter management. I also like the pressure it adds; if you hoard energy, you can’t gain pops, for example. I also like the separation of “This type of meter is specifically for super moves only; the other type of unit is for attack canceling and defense.”
An interesting thing you did was give players on the defensive some meter options in the form of Pop Rolls and Pop Pushes. Can you tell us a bit about these moves and what drew you to give players these defensive options?
These didn’t exist in MerFight’s early builds, but essentially, players wanted more defensive options. I think giving these options helps players on the defensive be more active in a way. Instead of just blocking, they now have to think what they can do – if they have the meter available – and can ask themselves if they do anything to escape a particularly nasty situation. Also, blocking for long periods of time gets old fast; I think allowing players defensive options so they can attempt to regain control more quickly is a plus.
What drew you to implement rollback netcode into the game? What challenges did you face in getting that set up and maintained for your game? Why was it a focus even in Early Access?
My previous fighter, Battle High, didn’t have any netcode. I felt that if I couldn’t do it well then I shouldn’t bother to do it at all. That being said, I really wanted to get online play working for MerFight. I couldn’t get GGPO integrated into Unity, unfortunately – I know others have, though – so I decided to use Photon Unity Networking (PUN) instead. I may upgrade the system to Fusion Unity Networking (FUN) at some point, but the challenges remain the same.
The biggest challenge was that I had to make sure my game was deterministic – that regardless of what frame a button is pressed on what machine, the results will be the same. Unfortunately, to do this, you can’t rely on what a game engine may provide. I had to do custom data structures for animations and my own physics calculations, for example. Knowing when and how to play VFX and SFX also created their own challenges. In a way, it feels like I wrote my own game engine in Unity, only using Unity to handle rendering and receiving input from various devices.
Essentially, MerFight was my attempt at the aforementioned accessibility features. but also to see if I could make my own rollback netcode solution. Then, the pandemic hit and it highlighted the importance of online play. Having playable netcode up and running early has also helped get more players to play together and get feedback, which has been very valuable, something I couldn’t do by just solely showing the game to players in person. Additionally, netcode is very difficult to retroactively fit, so I believe implementing it as soon as possible is extremely important.
Merfight is available now (in an Early Access state) on itch.io, GameJolt, and Steam.