SPITE Postmortem
SPITE began with a long research period. I intended to create a fantastic combat experience, and as such I looked at some of the best boss fights in recent history, and some of my personal favorite combat systems or encounters in the games I play. I also took great pains to attempt to research many different forms of media to find the core of good combat. Early on I had a much greater scope for the fight, but I feel like I had begun to scratch the surface of design. I focused early on on mechanical density, making actions matter, and allowing for counterplay.
As time moved on, I realized the animations I had initially intended to use, as well as the models I planned to use, would not suffice. I needed better things. From there more research ensued. I scoured plenty of places looking for free resources I could possibly use, and eventually found some excellent animations on he Unreal Store. In that process I also learned how to use a Motion Capture stage, so I definitely learned a valuable skill there.
After obtaining new animations and models I recoded in my player character and the boss. I had initially intended to use AI Blueprints and Behavior trees for the boss, and had a rudimentary one coded, but soon found it would be far more efficient to run the AI from within the Actor itself. From there I began to assign the animations to where they needed to be, working out the intricacies of the triggering system over a short period of time and slowly expanding the bosses moveset as I discovered more assets I could use.
While implementing the animations I realized another issue. the method I had for activating the Hitboxes was inefficient and obtuse. I basically ran a Boolean which would switch the hitboxes on and off when triggered. this would result in occasional glitches and what I call the "Lightsaber" effect, where the weapons hitbox remains active despite them not swinging their weapon. to solve this I began to work more in the Animation Montages and Anim Blueprint. I created a system that would get it's trigger from within the animation montage itself, allowing me to easily align the activation of the hitbox with the swinging of the weapon, and avoid the aforementioned "Lightsaber" effect in both player and enemy
Throughout this process I did a good deal of bugfixing, The boss could animation Cancel and so I made a Function to prevent that, and duplicated a similar thing a bit later on. At this point I realized that the boss was still lacking 2 very important things, Visual feedback and Ranged capabilities. I feel as though these issues were a tandem problem, as generating spells for a smaller ranged moveset would come mostly from particles. Luckily, the character packs I imported had plenty of particles for me to use, so I began to retrace my steps in making a selector system for the spell attacks. I also added in a couple other small changes, like a flinch to the boss when hit (with particles) and a short animation to the healing ability of the player, to encourage a more tactical usage.
Afterwards, I was pretty much complete with my work for this project. All of the bosses attacks had satisfying counterplay, with a variety of differently timed hammer swings and an AOE blast the player had to avoid. Ranged capabilities to make running to heal a consideration, not a guarantee, and a Phase 2, which speeds up his attacks, testing the players ability to adapt the timings of similar moves.
Dev Log
Throughout the project I kept a weekly Devlog of my process, showing my stages of research as well as problems that arose and my solutions to them.