BehaviorTree vs coding in AIController

Hello everyone!
I started studying BevahiorTrees and BlackBoards, and I can’t wrap my head around something.
Are they mandatory? Can’t I do the same things with code inside the AIController?
I recognize that for most people BehaviorTrees may feel and look more intuitive, but having been a programmer for long, I feel more confident and see more clarity using the code directly.
Are there any particular disadvantages in writing the AI logic directly in C++? Does BehaviorTree have any optimization/advantage?

Thank you!

Why would they be mandatory :slight_smile: Behavior trees are easy to understand and follow and are quick to prototype as you do it inside of blueprint like UI, you can think of it as a pretty FSM. That being said you will generally have more control and performance (as BT’s have an effective limit on number of AI’s that can run as far as I remember) by doing the AI logic in C++, but it all depends on how complex you want the AI to be, how many concurrent AI’s running there should be, and if you’ll have non-programmers working on that AI.