Behavior trees for AI: How they work(笔记)
Source: Chris Simpson, Game Developer / Gamasutra, 2014-07-18. URL: https://www.gamedeveloper.com/programming/behavior-trees-for-ai-how-they-work GEA4 引用为 [401]。
结构
- 树状层级:分支控制流,叶子是真正命令/测试。
- 可极深;子树可库化复用;按优先级排分支,失败可回退。
节点返回值
- Success / Failure / Running:Running 允许跨多帧(如寻路+走路)。
三类节点
- Composite:多子节点。Sequence(全成功才成功,AND);Selector(任一成功即成功,OR,按优先级试备选方案)。
- Decorator:单子节点。Inverter、Succeeder、Repeater、Repeat Until Fail 等。
- Leaf:无子节点;游戏自定义(Walk、条件测试、调用子树)。
数据上下文 (Data Context)
- 树实例带键值上下文;节点读写变量,使树成为整体。
- 子树 Leaf 可传递同一上下文,模块化。
实践要点
- 应缓存当前 Running 节点,避免每帧从根全树遍历。
- Selector 把「失败」变成自然决策路径,而不是致命停机。
- 可用栈操作节点迭代候选(门/窗列表)。