FAQ
Q: Is the blackboard data of identical memory nodes in a subtree duplicated?
It is a known issue, but because the next entry resets the node's blackboard data in
OnOpen, it does not manifest as an error. If you hit a real bug, please report it.
Q: How do I use target inside Tick?
It is used in AI:
targetis usually the owner of the AI, and the owner holds a blackboard member. Built-in nodes do not usetarget— it is only accessed by custom nodes.
Q: How do I interrupt a RUNNING state?
See issue #15. The idea is to use a non-memory
Priority: re-evaluate the higher-priority branches every frame, so when a higher-priority condition becomes true, the parent automatically closes the lower-priority subtree that was RUNNING (triggering itsOnClose).
TODO
- Typed parameters
- Parameters that read blackboard values via the
@varNameformat - SubTrees with custom parameter passing
Further reading
- Node concepts and practical tips: Design Notes
- Behavior tree basics: Wikipedia: Behavior tree
- A community write-up of legacy behavior3go code: CSDN blog
- An Erlang implementation of behavior3 (with behavior-tree fundamentals): behavior3erl