Hello there! Hope everyone had a lovely holiday season… and Thanksgiving… and Halloween… Oh man it’s been a while hasn’t it?
It’s time for another Dev Log! I’m gonna change things up a bit and start doing more focused posts rather than a mishmash of a bunch of different stuff. This likely means that each post will be a bit shorter, but they should come out more frequently.
Anyways, let’s get to it!
BEHOLD, MY CHILDREN!
Enemies
All non-boss enemies are pretty much finished! I’m sure I’ll be polishing things like behaviours and movesets until release, but for the most part they’re all in-game and you can fight’em to your heart’s content. This includes all 22 core enemies and 4 mini-bosses.
I modeled and animated all the enemies in two batches: one in 2018, and another in 2019. Getting them all in-game took about 2.5~ months, which I just wrapped up a couple weeks ago. Normally getting 26 unique movesets in-game would take forever, but I had a couple cheats on my side that kept the workload more… realistic.
For starters, since a lot of the game’s enemies are humanoids I could re-use a lot of animations between them (and Ashe). I mostly did this for generic stuff like hit reacts, and then made unique animations for stuff like idles, runs, and some of their attacks. The biggest cheat however was with their abilities.
Basically, the way abilities are learned in Arbiter is by sealing (or executing) enemies when they’re low-health. The abilities learned are actually the exact same as those the enemies use, usually with some extra functionality for the player’s benefit. This system has two really great advantages from a developer’s standpoint:
- I can literally copy Ashe’s ability animations, effects, and code and port it directly onto each enemy.
- Enemies can teach players how to use the moves they’ll learn before they learn them.
The former’s great because it just saves tons of time. In many cases I quite literally copied Ashe’s ability data and used it on the corresponding enemy. Enemies have some unique moves too, of course, but this process made creating their core abilities trivial.
The latter is especially useful because it means that by learning how to fight the different enemies’ abilities, you’re also learning how to use them yourself. You can’t learn the ability without defeating the enemy, so you’ve got a natural learning curve built into the game. It effectively turns each enemy into a mini-tutorial (and saves me time having to thoroughly explain how each ability works (though I’ll probably do this anyways)).
AI Behaviour
The enemy behaviour right now is pretty simple. Basically, each enemy has a huge list of actions they can perform, and each action has various conditions required for it to be used. Actions then go on a cooldown timer (which varies based on the action), and cannot be performed again until it elapses.
They can also perform reactions which prioritizes a certain set of actions after another action has finished, allowing enemies to create their own “combos” as it were. It’s a very simple system, but does a good job of making enemies fight realistically while showcasing their entire movesets.
The enemies scale down how aggressive they are based on whether or not they’re on screen and/or the player’s current target. This essentially means that the enemy you’re actively fighting will be trying its hardest while the rest will go easy on you. The system works really great for fighting smaller groups of enemies (especially 1v1’s), though I’ll be doing some more work in the future to make mob fights more enjoyable.
Conclusion
That wraps up this update! As I mentioned, these will probably be a bit shorter moving forward so I can keep them more focused. That said, the next one should be out soon and will go over the new parry system. Exciting!
As always, thanks for reading! If you’d like to support the game in any way, please consider checking out my Patreon—it helps me a lot! We also have a pretty active Discord where we attempt to settle the age old debate of Kingdom Hearts vs. Devil May Cry (ft. Chicken Memes). Can style prevail over the power of friendship? Only time will tell…
Cheers!