Behaviour Tree nodes, Time Budgeting for Node Query System
This release adds the Utility enabled Behaviour Tree nodes and the NodeQuerySystem-singleton that enables Time Budgeting for the NQS queries.
Utility Enabled Behaviour Tree
- This behaviour tree supports Utility-based behaviour node picking. There is a special Behaviour Tree node ScoreBasedPicker which uses UtilityAIConsideration-nodes to score the childs of this node and picks the best scoring one.
- RunNQSQuery-node allows running NQS queries directly from the behaviour tree.
- NodeReference-node allows splitting the behaviour trees to subtrees that can be within other scenes, and to connect them to the tree at run-time. This allows objects to be "smart objects" for the AI, containing their usage instructions in the form of sub-behaviour trees.
- Other nodes included: Root, Sequence, Selector, Parallel, RandomSequence, RandomSelector, Repeat, RepeatUntil, Limiter, Inverter, FixedResult, CooldownMsec/Usec/Ticks, PassThrough, PassBy, Leaf.
NodeQuerySystem-singleton with Time Budgeting
- A NodeQuerySystem-singleton has been added that allows for NQS-query time budgeting. You can set a maximum time the queries are allowed to run per frame. If a query doesn't complete during that time, it gets spread out to multiple frames until it finishes.
- Performance Counters have been added to see the query run time statistic and how much time posting a query takes.
- The bug reported by engimaxp should now be fixed, too. Thanks for reporting!