Hydra Blade
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.
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.
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.