HadoukInput 2d fighting game input wrapper

I put the input wrapper I use in all my fighting game sutff up on Github: HadoukInput (i know, the name is corny haha)

It’s a CSharp XNA/Monogame library for scrubbing, sanitizing, sorting, and pattern matching controller input for use in a 2d fighting game.

From the Readme:
Continue reading

Designing the Wedding Video Game

Screenshot of game being played!

Screenshot of game being played!

Yo, so I got married this weekend and had a huge badass wedding.  One of the things that was cool was there was a custom video game I made for the reception.  It was like a really simple fighting game, with the whole bridal party beating each other up.   There were a bunch of little touches in there to personalize it, and it turned out really great.  For example the bride attacked with her bouquet , or there were two best men, so I combined them into a two-headed monster that threw the heads to attack.  There were a few design challenges though to make a game like this…

Gameplay needed to be simple… like, really REALLY simple.   This was a game designed for people to walk in, pick up and play a match, say “wow that was cool” and then probably never see it again.  It had to be IMMEDIATELY obvious what every button and control did.  People wouldn’t play this game long enough to learn any complicated or hidden attacks, so somehow the game play needed to have incredibly simple controls, yet somehow avoid shallow gameplay.

I only wanted to use the face buttons on the controller because some people coming to the wedding haven’t picked up a controller since Asteroids on the Atari.  Holding a controller and pressing both buttons and triggers is actually a lot harder than some people realize!  There was a “quick” button, the player could press while holding direction to do different fast attacks (like in Smash Brothers).  There was a “strong” button that was similar but did much more damage, but had longer startup and recovery.  There was a “fireball” button, when the player pressed it would throw a fireball in whatever direction the player was holding.   This move had REALLY long startup and recovery.  Last there was a “defense” button, which did various block, dodge, and air dashes.  In hindsight that was too many moves attached to one button, it should have been simplified.  Last thing about the controls, the game needed to support both the L thumbstick and the dpad… if it only supported one or the other, the player would pick up the controller and have 50/50 chance to use the incorrect one which could cause confusion.

There was going to be a lot of people at this wedding, and if they had to wait in line to play the game they would just wander off and do something else.  The “player throughput” had to be fast enough that people could get a solid game in without it feeling too long, then shuffle through a new set of players.  I’ve found that a good length of time for a game like this is about 3 minutes.  I had to design the animation speed, attack damage, and player health to target that time goal.  Even if the players had a really good defensive game, I added a 3:00 timer that ended the game and chose a winner at the end.  Also making the game 4-player really helped throughput.  As a result, there was almost never a line to play the game, but if there was an empty controller available people didn’t feel hesitant to pick it up since the game was so short.

Since most players would honestly only play once, they needed to be able to pick it up and make it do something that looked cool without a lot of effort.  I tweaked the fighting engine so that any quick or strong attack could combo into another quick or strong attack.  This was the players could have a really simple “close” game that looked cool.  To counter the simplicity of the combo engine, attacks had a cumulative knockback effect that threw the other player farther every time they were hit in a combo.  Also the player could aim & throw a projectile with one button press, so there was a simple long range option to counter players who favored the button mashing.  To counter the long range game, the player had a whole bunch of movement options to dodge.  The player could block or “roll through” projectiles on the ground with the defense button, or 8-way air dash using the defense button + direction.

Also, this game had a hard hard HARD deadline, with no option for slippage… it had to be done in time for the wedding or else there was no point to do it!  To hit this deadline, I had a few different strategies.  First I reused a TON of code from Pajamorama, including the animation engine, menu code, and fighting engine.  I did some heavy modification to the animation engine so I could reuse animations between characters, which saved a lot of time.  I also created a whole tool chain for editing the characters in the fighting engine.  It was 100x quicker to spend time writing solid set of WSIWYG tools, than to skip it and edit text files.

If I could do it again, the only thing I would change was there were too many options mapped to the defense button… People didn’t realize they had so many defensive options, didn’t utilize them correctly, so most games ended up favoring aggressive rushdown players.  I’d change it so that button did an omni-directional block, and the character would airdash in whatever direction the player tapped while in the air.  In fact by the end of the night some of my more knowledgable gamer buddies were calling me out on the lack of defensive options 😉

So taking all that into account, how did the game play?  It was fast and fun!  It was like a Smash game with 4 player at once, contained in a square board like a traditional 2d fighter, but they could fly or shoot in any direction.  The character were bouncing around off the walls like billiard balls, flying in figure 8’s, and throwing projectiles all over the screen!  Everybody could play it, recognized they knew the characters, and had a total blast!

If anybody wants a bespoke video game for an upcoming wedding, hit me up on Facebook or twitter!  Cheers!

Projectile-Projectile collision in fighting games

Had an interesting question come up the other day about fireballs in 2d fighting games, and specifically what happens when fireballs collide with each other.  Here’s the scenario:

Two players are facing off from across the board.  Both players throw projectiles at the same time.

The two projectiles collide in the middle of the room and cancel each other out.  Both players are back to the same situation.


The projectiles DON’T collide and pass through each other.  Now each player has to react to the other character’s fireball.

Some games do option 1, some do option 2.  Option 1 sounds like it might be more interesting because the extra defensive capability of the fireball can be used to balance long ranged vs close ranged characters.  Option 2 sounds like it might be more interesting because it adds another level of complexity if the characters have different speeds/strengths of projectile.

Option 1 seems like a bad idea because all these fireballs cancelling each other out will slow down the pace of the game.  Option 2 seems like a bad idea because if one character has a better ranged attack in a matchup, it makes sense to play “spammy”.

Maybe it would be fun if a game used a combination of the two?  Like some characters have projectiles that will block other one, or some characters have projectiles that will pass through other ones?  Maybe a EX fireball always blasts through a regular fireball, but a super always blasts through an EX?

Anyway, I thought this was an interesting game design question.  Chime in on the comments if you have any thoughts/feedback/examples about projectile-projectile collision in fighting games.  Cheers!