Hello folks,
I've lately played quite a bit Behavior Trees for AI Decision Making in my game, and noticed there are 2 main literatures surrounding this concept.
But first let's discuss what an AI requires:
- Sensors
- Decision Making
- Actuation (Animations, Sound, Commands, etc)
I've always thought of BT as a tool that could serve both Decision Making and Actuation, but lately I'm not so sure about it, here is an article which goes into detail why BT are best served as Actuation tool ONLY: https://takinginitiative.files.wordpress.com/2020/01/behaviortrees_breaking-the-cycle-of-misuse.pdf.
TL;DR:
When using Behavior Trees in both Decision Making and Actuation, the tree constantly grows and and variations of the same tree might look completely different - this of course counters the Separation of Concerns, which is also clear as the tree grows and it's harder to introduce new features.
That being said, there is no denying that BT are very comfortable tools, they describe flows and data in the simplest form we humans can conceive, as such I'm wondering if anyone had managed to balance the two responsibilities into a scalable design, which still retains some simplicity.
Since I work with ECS, most of the actual logic is done by those systems,, and I mostly view the Actuation as trigger entities, which do not perform any other logic.
What are your thoughts?