Skip to content

Behaviour Tree nodes, Time Budgeting for Node Query System

Compare
Choose a tag to compare
@JarkkoPar JarkkoPar released this 14 Dec 20:26
· 93 commits to main since this release

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!