Complex, beautiful, and you don’t have to program AI if you don’t want to.
I’ve been learning quite a bit about Unity2D for the past couple of months learning from some good courses on Udemy. I think I have enough knowledge right now to go out on my own and build a simple fighting game for May’s 1GAM challenge.
Last year I built a fighter from scratch in Python. The only trouble I had was when I couldn’t get CX_FREEZE to work! So annoying! GAH!
With Unity2D, that’s not such a problem. There’s no slapping together a bunch of dependencies manually and throwing wrenches at my computer as I try to compile an executable that doesn’t cause a segmentation fault.
Geeze that was scary to see the first time. I’m sure if I had the patience, though I could have stuck with it and figured out how to snap everything back together to get an executable file to work. But it still runs on the interpreter.
I still love Python, and every once in awhile I go back to my old code and play the little overhead fighting game. I remember when it took forever to try to get all of the weapons to move together with the character at the correct angle with some trig functions. That was a great learning experience. I had to go back to highschool Algebra again.
Now, back to the game!
I have a little bit of time to work out the details with Golden Week coming up. It’s nice to get some time off from the daily grind.
For the simple fighting game, I’m going to try to learn from other fighting games by implementing all of the basic concepts of your standard fighting game.
High Speed Chess
All the competitive fighting games out there are like a high speed chess game in a way. Moves counter moves. You must know when to play defensive and when to go on the attack. And you have to react as fast as possible in the moment.
Dance Dance Revolution
In many ways, fighting games are like any other timed sequence game. You have to hit the right buttons at the right time and train your brain in order to master the game. This comes even before the strategy of the high speed chess game comes into play. You have to know a good range of moves before you can feel out the strategies.
Super Moves, Normals, Throws, and Combos
This is where the meat of the programming and animation will come into play. Each move will need to be mapped out. The time window to chain moves together into combos will also need to be carefully tested. This is why a fighting game takes so much time to develop.
Fighting games can be really showy, and let’s be honest, you’re probably not going to play something with bad animations. Even those stick figure fighting games have beautiful flowing animations. It takes time, patience, and Oh geeze did I mention time?
I might have to look at bone based animations, but It will be something I’m not used to and haven’t done much of. It will be a learning experience. On the other hand, I am more comfortable on sprite animations. Learning something new might take just as long as pushing all of those pixels. It’s a hard choice I’m going to have to make after a bit of research.
Having a limit is the wonderful thing that makes the animators and programmers jump for joy!
Although there are some very complex fighting games out there with many characters, Usually fighting games don’t have more than 50 different ones. And usually, the 2 player fighting mode is good enough. The backgrounds don’t have to be a functional part of the scene and can be done very simply if time is running low. Also, the range moves can be limited if I need them to be.
I’m going to need to limit myself this month on characters, AI, Background art, and moves in order to finish a polished working version for the May 1GAM challenge. We’ll keep you informed on the progress. Good luck out there to those that are cooking up a fighting game.
Do you have any experience building a fighting game? Do you have any tips on how to go about Bone based animation in Unity 2D?
Let me know in the comments!