Hi 🙂.
I’m still actively working on newer versions of AGLS, even though the project has already reached a massive scale and level of complexity. That said, I still plan to “complicate” other mechanics and systems.
Currently, I’ve taken on the task of significantly rebuilding the AI controller for Human Enemies. In essence, what I’m aiming for would mean building it from scratch. The goal is to create a controller that could — at least to some extent — match the quality of AI developed in large Game Dev studio projects.
Implementing such a system would require a lot of time. At this stage, I only have a basic layout of the system, so I can’t yet say what exactly the new AI controller will be capable of. It’s possible that some behaviors will turn out to be too complex to implement and I might decide to drop them.
Still, I believe this change in AI is a good move — mainly because the current controller was originally created back in Unreal Engine 4.26.
I’ve also been considering designing the AI using StateTree instead of Behavior Tree. StateTree is a newer tool that works a bit differently compared to BT and is more performance-efficient. However, I’ll most likely stay with Behavior Tree, mainly because I’m much more familiar with it and it also makes it easier to manage tree logic across multiple assets.
EDIT: However, I decided to use StateTree. After exploring this tool for a while, I concluded that it offers the necessary features for AI development. In ST logic i can declarate delegates (like TickEvent with custom interval), which can replace the behavior of ServicesBT. I haven't found a way to change the global ST variables from outside the StateTree system. However, this isn't a major problem, as the AI can still use Blackboard without the BehaviorTree logic.
In the meantime, I’ve also improved the attack behavior of zombie instances and added a new mechanic I’d describe as "Paired Attack Sequences". This adds interactive 'cutscenes' that the player can enter as the zombie attacks. The actual result is shown in the video.