最近在思考游戏AI,看到一些文章在鼓吹状态机(fsm)已通过时,行为树才是如今和未来。目前个人水平,对这个结论没法作评判。可是从读到的文章自己,没有看到有力的证据。python
诚然,在复杂状态下,fsm的维护难度是倍增的,但行为树也面临一样问题(不要看那些半吊子文章中画的清晰的属性结构,真的复杂场景哪里有这么好看的树)。fsm的分层能缓解一部分复杂度问题,我相信行为树也是经过相似子树的方式处理,因此就是个半斤八两。spa
另外,看到说行为树的判别因子有{前置条件 , 当前状态, 输入},较之fsm的{当前状态, 输入} 上下文更加完整。对于这个说法,只能说是实现的问题,和行为树/fsm一点关系都没有。
游戏
-- 补充说一下,行为树的前置条件,在fsm中,能够表示为当前某个属性的状况(好比,血量满/太少),能够获得一样的语义:当 xxx 时,会选择yyy。
get
若是把fsm和图,行为树和树(废话。。)比较一下,能够有印象:既然树是图的简化形式,行为树也像是fsm的简化版。从直观上看,fsm彷佛效率还略高一点,而行为树细分了一些节点类型,概念上会更清晰一点。以上就做为本文大概的结论吧,欢迎讨论(pen)。
it
-----------------------------------------效率
python官方收集的一些FSM工程,有的颇有意思思考