行为树还是 Utility AI?
两者都可能是正确答案。决定因素是你的敌人需要同时权衡多少件事。
行为树的优势
行为树是可读的。设计师看一眼就能说出「这个敌人先检查距离,然后攻击」。调试也简单,你能看到它卡在哪个节点。
它非常适合顺序性与条件性的行为:开门、进入、环顾、拉响警报。在这类场景里,树结构会自然而然地长成正确的形状。
Utility AI 胜出的场合
如果敌人需要同时权衡十件事 —— 剩多少血、有没有弹药、队友在不在附近、玩家强不强 —— 树很快就会变得无法阅读。
Utility AI 要求每个行为为当前状态给出一个分数,然后选最高的那个。新增一个行为意味着写一个评分函数,而不是重构一棵树。
实践中两者并用
在最近的项目里,高层决策由 Utility AI 做出(「现在进攻」「现在后撤」「现在找掩体」),而这个决策具体怎么执行则交给一棵小的行为树。
这种拆分吸收了两种方案的长处:决策保持灵活,执行保持可读。
被忽略的第三块
无论你选哪种架构,可信度都由感知系统决定。敌人什么时候看见你、什么时候听到你、什么时候忘掉你?
拥有完美信息的 AI,无论背后是什么树结构,都会让人觉得不公平。我大部分时间花在感知上,而不是行为上。