DEV LOG: Rumble Futura PART 1: PROGRAMMING a Fighting Game

Inspiration

I’m currently taking a class called “Intermediate Programming for Games” where we are exploring ways to code scalable systems and write code which is easier to make not break after changing one variable. We’re learning about concepts such as: structs, interfaces, inheritance, delegates, and more! As part of our final assignment we had to create a game that used these concepts in a way that was scalable and neatly formatted. As a fighter, I was very eager to make a fighting game, with a twist! We had a month to make the game so I quickly got to work!

Concept and Inspiration

Last semester, in my class “Intro to Game Design” I pitched a game called Rumble Futura, a Fighting game which involved random events taking place in the arena during a match including a boss fight, groups of enemies attacking both players, and more. I decided to create a fighting game involving a full combo system as well as a few events that happen during the match and disrupt it. On paper, I mapped out the various combos that could be used from various button combinations. I also settled on two major events that happen in the middle of the fight: a robot boss attacking both players, and a health pod that crashes into the arena, where the first player to reach it heals until the health pod is either destroyed by the other player or they are filled to full health. The health pod was inspired by a few boss tropes I had seen used in games such as the Marvel Ultimate Alliance series.

Creating the Combo System

Flow of various combos in the Animation State Machine

To create the combo system I used the Animation State Machine system that Unity has built in to make the logic of the attacks and make a blueprint that could be built on by potential further characters that could be added. The character takes in the input and sends a message to the animation state machine, which processes the input (heavy or light) and uses that to decide which branch to continue off of, allowing for the designer to easily keep adding more moves to a combo. This also allowed for easy integration of animations into the animation states, and used events within the animation to trigger the hitbox on the player character.

Making the Event System

I decided to research a couple of the intermediate programming concepts we learnt to determine the best way to implement the random events occurring during the fight. I decided to go with delegate events, with a manager that controlled the events and delegates that were subscribed to it. The manager would periodically choose a random event, spawn the necessary objects related to that event, and when it was over/defeated, it would alert the manager in order to restart the timer till the next one.

The Boss

I made the boss a robot that attacks both players, and decided on two unique attacks, a ranged and melee. The melee was a simple slash they did within the range of their target player, and the ranged was a laser blast. I programmed the boss to periodically switch targets between both players to keep the playing field even, but also added a functionality so that if a player attacked him he switched targets to that player. I wanted to encourage emergent gameplay, with players determining how the situation played out and the enemy simply reacting to their strategies. I used the Animation State Machine to determine his actions at various points and make decisions such as hitting, ranged, and running, all directed towards the target and the main Boss script making decisions to randomly change his state. Lastly, I added the Boss to the list of “Active Characters”, which was read by the game manager to determine who was the winner, so that if the Boss beat both players he could potentially win, adding another incentive for players to decide what their actions would be with each other during the fight.

The boss’ brain in his Animation State Machine

How it Looks Right Now

Next Steps

Concept for final version of the game

Next, the plan is to work on art that adds polish and character to the game! I’ve already started sketching out some concepts, but the plan is to add a cool snowy mountain range environment, a martial artist character and Robot Boss each with frame-by-frame animation, and VFX! I have roughly two weeks left of development time, which I’ll also need to integrate the art into the existing combat systems… Wish me luck!

Previous
Previous

DEV LOG: Rumble Futura PART 2: DRAWING a Fighting Game