简单介绍构建游戏AI所需要的一些工具:状态机,层次状态机,行为树的区别以及联系
Finite State Machines(有限状态机)
1. 基本节点是状态。他包含了一系列运行在该状态的行为以及离开这个状态的条件。1. 基本的概念和状态机一样。
2. 可以将一些状态节点的归结成一个超级状态(Super-States),共享一些状态跳转逻辑(Generalized Transitions)。相对于状态机,它主要提供了可重用得跳转条件。5. 状态模块化很差,你很难在不修改代码的情况下完成新逻辑
Behaviour Tree(行为树)
一个流行的AI技术,涵盖了层次状态机,事件调度,事件计划,行为等一系列技术
1.高度模块化状态,去掉状态中的跳转逻辑,使得状态变成一个“行为”。
2."行为"和"行为"之间的跳转是通过父节点(Composite)的类型来决定的(例如sequence或者selector) 。比如并行处理两个行为,在状态机里面无法同时处理两个状态。
3.通过增加控制节点的类型,可以达到复用行为的目的。
4. 可视化编辑
参考资料:
http://aigamedev.com/open/article/fsm-reusable/
http://aigamedev.com/open/article/hfsm-gist/
http://aigamedev.com/open/article/bt-overview/