Balance Block Battle is a fighting-sports game I made with my roommate in 72 hours for Ludum Dare 49. We enjoyed working on the game together, so we added more polish and new features after the jam.
Working with my roommate was a nice bonding experience, as well as good practice collaborating on a longer-term project. We used Trello to keep track of todo lists and order tasks by importance.
All of the characters in this game are effectively derived from a base Fighter class with a finite state machine. This made it easy to change statistics and logic for all characters at once.
I wrote a custom input manager in GameMaker to take input from keyboard or controller, and assign each fighter the proper input device. Input from the keyboard or the controller assigned to the fighter is converted into internal input variables. Then, the fighter state machine can receive these input variables and act accordingly.
In the last few hours of the jam, we realized the game needed a single player mode so that more people from the jam could play the game, even without two players and a controller.
We rushed to add in an AI opponent for a training mode. However, this turned out to be much easier than expected due to the modular system of the Fighter base class. All the training robot's AI had to do was react to the game state and decide which "buttons" to "press." Then it could simply run the state machine as if it was a human player. AI could have been a nightmare to hack together at the last second, but we ended up with a convincing and fun result due to strong object-oriented design.