最近研究了一下项目的战斗部分代码,我们的战斗部分,
先是用有限状态机控制 整场战斗的准备,进行,结束等各种状态;
再者主要用了2种设计架构来控制 单位的行为,1是行为树控制单位的行为,一个是数据驱动类技能。
这里先讲讲自己学习到的行为树。
在设计游戏AI的时候,我们的目标就是找到一个简单,可扩展的编辑逻辑的方案,从而加速游戏开发的迭代速度。这里以士兵为例子,假设士兵有空闲、战斗、逃跑三种状态,FSM(状态机)是最先映入脑海的方案,那么士兵的状态机图示可以如下展示。但是随着开发进行,状态一多,状态机维护起来就没那么轻松了,状态机之间的转换线有如脱缰野马,驾驭不住。所以前人大佬们设计出了行为树的抽象来解决这个难题。

什么是行为树
行为树,英文是Behavior Tree,简称BT,是一棵用于控制 AI 决策行为的、包含了层级节点的树结构。
当我们要决策当前这个士兵要做什么样的行为的时候,我们就会自顶向下的,通过一些条件来搜索这颗树,最终确定需要做的行为(叶节点),并且执行它&#x