Week 5:
Implemented capability for Tactic switching in Enemy class: 3 hours
Enemy bug fixing/merge conflicts: 3 hours
Asmodeus improvements: 1 hour
Implement enemy death particle system: 1.5 hours
Total: 8.5 hours
I wish I had more time to dedicate this week, but 2 midterms fell on Tuesday so I didn't get as much done as I'd planned. I still made some good progress though! Enemy tactic switching is now (technically) implemented; I've created public methods on the Enemy class that replace the current tactic with a new one. The caller can specify whether to immediately halt and switch to the new tactic, or wait for the current execution to finish (tactics operate by looping over a set of instructions).
I like to write my code like an API, making it as easy as possible for coders to work with my systems.
Steamons are now more aggressive; in last week's demo, an animation bug was preventing them from attacking. It's frustrating that one null reference breaks an entire chain of events; I'll have to put in some more defensive try-catch logic to mitigate stuff like this.
Asmodeus still needs work. He tends to get stuck walking towards the edge of the room, but at least he attacks sometimes before that.
Playtesters responded really well to the enemy behavior overall! They perceived the enemies as smart and aggressive. Some players thought that enemies try to "ambush" you (actually just the nature of the Surround tactic), or that they got harder as the game progressed (they don't). I'm thrilled that they like the enemies! Combat is driven entirely by the challenges posed by enemies and how the player reacts, so interesting enemy behavior will lead to interesting player behavior. I'm hoping this will lead to players making a conscious choice to use certain abilities/grails to counter enemies.
I implemented Harrison's smoke poof effect to play on enemy deaths (and created an EnemyVFXComponent to handle similar effects). It helps give feedback, but it could use a sound to amplify that effect. In fact, we need to put in a lot more sound effect calls in enemy interactions; I've been hyperfocused on the enemy behavior and let that fall to the wayside.
Next week I'll be working more on Asmodeus and maybe implementing a new enemy? Giving the steamon a projectile attack? Depends if the art team pulls through with animations/models. I'd like to tidy up the Enemy code too, as a lack of communication on how to use the various sub-components has led to people dumping functions into the base class as a quick way to get stuff working. That's partially my fault for not giving them that direction, and partially theirs for not asking, but that's part of learning to work as a team.
Comments