Action & Animation Management
This week, I spent some time restructuring my code that handles actions and animations. Unlike real-time games where most (if not all) actions can happen concurrently, turn-based games rely a lot on asynchronous actions.
So firstly I added an action queue system to allow for reactions or counter-moves, i.e. actions automatically taken by a unit when triggered by another action. For example, the Storm Turret will automatically attack any enemy unit after they attack an ally and are in range. Being able to queue actions means we can now check for and queue valid reactions before advancing the turn order to the next unit.
The second thing I had to change was how the game managed animations. Projectile-based abilities (which are most of the Gunwitches's abilities) required additional code. So for example, the Explosion ability has 3 phases:
- Play the charging up animation and trigger the next phase at a certain point.
- Create the projectile (a fireball), which is then launched at the target. When the fireball hits the target, it kills itself and triggers the next phase.
- Play the explosion animation and show damage animation and damage numbers. After all animations are complete, proceed.
This is the first multi-element VFX I composed myself without explicitly following any tutorials, so I'm pretty proud of it. I started by researching and viewing whatever examples I could find from other games and some VFX artists online to get inspiration and form a rough idea of how I want the effect to look like. Then I slowly figured out how to produce the effect by looking up different tutorials.
One thing I spent a lot of time on was trying to get the timing to feel right. I think it's passable for now. While I'm fairly happy with the animation for charging up and the fireball, the actual explosion itself is very simple and I hope to expand on it in the future.
This week, I also started following this free tutorial series from CG Boost to finally learn how to use Blender properly (https://cgboost.com/blender-2-8-beginner-tutorial-series/). Just going through the first few videos already made me familiar enough to be confident in making simple meshes in Blender for use with my VFX.
Next week: New changes to the code probably broke some abilities, so I gotta fix that. Then I'll have to run through the current abilities and make sure they respect LoS and vertical range restrictions.
At this point, I think it'd be good to start designing the very first introductory level that's supposed to teach the player how to use Izabel, then Marika. I already have an idea in mind for the setting, so it's a matter of figuring out what sort of enemies to throw at the player - maybe the current basic melee enemies are enough, maybe not.
And if I have time, I'd like to continue learning to use Blender and try my hand at modeling Izabel's orbs...which are probably the simplest things in the game I can hope to try as a beginner.