Hydra Blade

Hydra Blade, our first project as Team Hydra, had lots of issues but taught us a lot of valuable lessons.

Hydra Blade, our first project as Team Hydra, had lots of issues but taught us a lot of valuable lessons.

 
 
 

Team Hydra’s First Outing

In Full Sail’s Prototyping course, I formed a team with three other students to create a game from scratch. After settling on a side-scrolling brawler, we put together a game design document and got to work. We wanted to implement a few key gameplay hooks: An AI companion, a stamina system, and the titular Hydra Blade - a transforming sword with unique attacks.

 
In its earliest incarnation, we had our companion attacking and our stamina/health system working pretty smoothly. Our attacks could only be performed one-at-a-time, but worked reliably.

In its earliest incarnation, we had our companion attacking and our stamina/health system working pretty smoothly. Our attacks could only be performed one-at-a-time, but worked reliably.

 

Tackling the Combat System

While the process of implementing the stamina system and AI companion turned out to be fairly straightforward, the player and enemy attacks and hit registration were a much larger hurdle to overcome. As we scoured the web for tutorial videos and Unity documentation, we gradually cobbled together a simple set of animations with collisions volumes that we toggled on/off to detect successfully landed attacks. This worked, for the most part, but when we swapped our basic character models and animations for more aesthetically pleasing ones obtained from the Unity asset store, we found ourselves having to redo a lot of previously completed work. Things became even more muddied when we began implementing our combo system, which was driven by timing-based inputs using animation states and timers.

We would eventually go on to get our combos working using a few simple strings of punches and kicks, though we were left will little time to implement the UI elements used to indicated the damage multiplier tied to the number of hits landed. One of the lingering issues of the combo system however, was the tendency of multiple attacks to get queued when rapidly input by the player, causing the character to attack more times than intended. This project showed me just how much I still have left to learn about the animation system, and has led me to investigate alternative methods of handling input buffers and animation transitions.

The animation controller for Hydra Blade.

The animation controller for Hydra Blade.

 

Investigating Further

Having since finished the course, I’ve spent some time on Nahuel Gladstein's blog learning how to implement hitboxes, pushboxes, and hurtboxes in Unity. Since the original posting, he has gone on to cover topics such as implementing data-driven frame data and property drawers. All of this seems information looks invaluable to anyone wanting to implement a fighting game (or other combat-focused game) in Unity.