-
Notifications
You must be signed in to change notification settings - Fork 0
Development notes on Behavior Tree prototype
Sofian Audry edited this page Dec 3, 2016
·
3 revisions
Some notes collected as I was developing / using the BT software prototype (Sofian).
- It can be hard to understand where you are during execution: visual feedback is extremely important. Yet I believe it is more straightforward to get a sense of the hierarchical running of processes than for HFSMs because you can see everything in the same window.
- The decorator nodes can make things difficult to understand. We should make sure to display the state of both decorator AND its children.
- Node states sometimes change quickly: it would be useful to be able to see that they went through a state.
- It would be super-useful to have a timer for every state and its parent state as well.
- Blackboard variables are all global, which is dangerous: we need to be able to have local-scope blackboard variables.
- This could be done in expressions using names like "$this.varName". Also we could let users access parents and possibly children of the node (eg. $parent / $children or $this.parent() and $this.children() / $this.child(i)")
- Thinking about "tasks" to perform is not intuitive in every situation. For example: checking conditions such as "sync for at least 10 seconds".
- It would be interesting, instead of the ProbabilityNode, to instead use RandomSequential and RandomSelector.
- Even better: We could have options (maybe a special decorator for ordered-composites ie. non-parallel composites) as to how to browse through the children of a node
- Rename Sequential to Sequence.
- ParallelNodes can be confusing, especially if one needs to run several subtrees in a loop. The Unreal engine uses a somewhat different approach. See https://docs.unrealengine.com/latest/INT/Engine/AI/BehaviorTrees/HowUE4BehaviorTreesDiffer/#specialhandlingforconcurrentbehaviors
- It should be possible to easily activate / deactivate a node in the interface. More advanced features would include switching between "all activated" to "back to my deactivated configuration".