After making a very basic fighting game engine in the previous post, it’s time to think a little more about what we want. What kind of gameplay do we want our engine to encourage?
This is obviously a question of taste. I generally prefer a slower pace for fighting games, allowing more defensive play and more planning and tactics, rather than frantic button pressing. I haven’t played much commercial fighting games in the recent years, as they have an annoying habit of costing money and almost never being available for PC, but I did learn some things from slight experiences with Tekken and Mortal Kombat (I also tried Marvel Vs. Capcom recently, but came closer to an epileptic seizure than a game design insight). It seems that their method is generally to give an option of blocking that stops all attacks except for a small group of weak attacks (usually throws). That way you can block against a button-frenzied player, but can’t block forever, because the opponent will eventually realize what you’re doing and start using the anti-blocking attacks. This is one element of their engines. Besides blocking, there’s also evading. Since our movement abilities are not very advanced for now, we’ll ignore that until later.
Another inspiration for me in the fighting game genre is the 1989 classic game Budokan. They had a very different system – each player had a certain amount of stamina and ki, and strategy was based on balancing them – moving and attacking would lower your ki, and you needed it to inflict damage on your opponent. The actual damage was to the stamina, which would regenerate quite quickly. Thus the game made you act carefully to conserve your ki, but prevented you from slow hit-and-run tactics by making your opponent’s stamina regenerate.
For now, I’ll go with the modern method. After adding a blocking button, we still have a problem. Blocking an attack is quite useless if another attack is coming right after it. So it’s time to introduce another mechanism – attack duration.
For blocking to be useful, there needs to be some price for attacking. Usually it will be time passing without being able to attack again, but it can be other things, like Budokan’s ki. The point is that a successful block should give you some advantage, otherwise it would be pointless. So I tried a 2 second duration for the attack. Now comes a new problem – while you’re attacking, the enemy can always attack you back, no matter if they blocked or not. This turns the game into a Ping-Pong of hitting, where the players just take turns hitting a helpless enemy, who is still finishing their own attack. Solution – add a recovery time after getting hit. Now you can’t always be attacked after attacking – you can only be attacked if you missed your own attack. This makes a great incentive for defending, because good defence can lead the way to good offence. But it’s still far from successful, and more on that later.