首页 > 代码库 > 状态机和行为树

状态机和行为树

    最近在思考游戏AI,看到一些文章在鼓吹状态机(fsm)已经过时,行为树才是现在和将来。目前我的水平,对这个结论无法做评判。但是从读到的文章本身,没有看到有力的证据。

    诚然,在复杂状态下,fsm的维护难度是倍增的,但行为树也面临同样问题(不要看那些半吊子文章中画的清晰的属性结构,真的复杂场景哪里有这么好看的树)。fsm的分层能缓解一部分复杂度问题,我相信行为树也是通过类似子树的方式处理,所以就是个半斤八两。

    另外,看到说行为树的判别因子有{前置条件 , 当前状态, 输入},较之fsm的{当前状态, 输入} 上下文更加完整。对于这个说法,只能说是实现的问题,和行为树/fsm一点关系都没有。

    如果把fsm和图,行为树和树(废话。。)比较一下,可以有印象:既然树是图的简化形式,行为树也像是fsm的简化版。从直观上看,fsm似乎效率还略高一点,而行为树细分了一些节点类型,概念上会更清晰一点。以上就作为本文大概的结论吧,欢迎讨论(pen)。