Should Behavior Trees for AI be used despite C++?

I’ve done both in other engines, but I’ve only used BTs in UE4 simply due to how well integrated they are.

Data-driven in this context means that the code is driven through data (i.e. assets, blueprints, whatever), particularly gameplay values.

Take your example, what if I want to change the follow distance? How about the wait time? What if I want to change it so it randomly chooses a new target after 3 seconds? But maybe 3 seconds is too long so I change it to 2 seconds?

If I do that entirely in C++, I’ve just recompiled N number of times where N is the number of times it takes for things to “feel” correct. If I do things in BTs, I’ve probably knocked out all of these in the span it would take you to finish compiling once. Iteration time is everything in gameplay code. You will change numbers 1000x till you get things feeling just right, forcing a recompile every time is just a waste of time IMO.

BTs are tested and proven in shipped UE4 games. Anything else you add will not be.