Hi Epic and Unreal community.
I’m currently embarking on a stealth-action game project, and as such, I will need to do some complex AI. I will probably eventually port things to C++/use the Blueprint-to-C++ feature now in the engine, but for now, I’m using Blueprints to do rapid testing.
What I’m interested in is a high-level overview of all the different AI tools in the engine, their status (release, experimental, or early experimental), their intended purpose, and, if possible, when we can expect the tools to mature (for experimental tools). It seems like much of the engine team’s focus has been around rendering and performance lately, so if there is no definitive info on the future of these tools, I get it and it’s okay, but we would still appreciate knowing for sure.
I think this thread could serve the greater community, and I will commit to updating it with new information contained in replies if the community is interested in making this a reference thread (or even stickying it for a bit).
AI is a complex topic, as we all know, but I will add what I understand about the current AI tools below:
Behavior Trees/Blackboards: ways to setup cascading AI logic simply and easily. This is a mature tool, ready for production, and is designed to pair with programming in an AI controller, though I’m still a little fuzzy on what the AI controller is supposed to do to help the behavior tree.
Environment Query System: An experimental tool for AI to query aspects of the environment and nav mesh to provide better information for blackboard assets which can then feed that info to behavior trees. I can’t be sure, but I think this tool is somewhat stable, even though it’s still experimental (please correct me if I am wrong).
AI Perception: There’s almost no documentation on this tool, and I don’t know if it’s considered experimental or not or even how it works.
Manually coding behavior: You can augment Behavior Trees/EQS with manual blueprint coding for particular behaviors or maybe state switching (ie, moving from guarding to attacking when detecting a player).