I’m in process of implementing Utility AI for Unreal, after getting somewhat workable prototype, I decided my next step would be either integrate into behavior tree or create my custom editor.
For now I have gone with the first approach. There is much work done on tooling side, and there is no reason not to reuse it.
Unfortunetly current behavior of BT do not really lend it self into my Utility implementation.
When task from Utility selector will be selected it will lock into this task, and wait until this task will be finished (or aborted).
I need the Utility Selectr to constantly (for examply every frame, every 0.1s) evalute possible tasks (or other Utility selctors) for score, and if at the time, different task will be higher scoring, abort the current one start new one.
My question is, how to make selector constantly evaluate it’s children, even if there is child task running ?