【开发记录】1.AI从状态机改为行为树

修改于2018/11/221670 浏览综合
从上一次内测到现在又过去好几个月了。很多玩家在问,为什么还没有更新,什么时候可以玩。我确实是一个比较不太爱发帖或者说没有习惯发帖的开发者(主要原因是懒-_-)。所以过了这么长时间,杳无音信,可能弄得大家以为变形坦克停止开发了。所以以后坦克但凡有更新的东西,我就在论坛上记录下,额(⊙o⊙)…,不管大家看不看得懂。
差不多上周五开始,我开始考虑制作《变2》中火焰坦克的关卡,在设计之初,我考虑了很多《变2》中的关卡该怎么设计?和以前的版本一样?只是解密不同?地图风格不一样?这肯定是不行的,所以我开始考虑能否有什么新的拓展。首先从AI上面,以前就有玩家抱怨敌方坦克的AI太简单了,就是看到人停下来开炮,看不到人就移动。你逃走了他也不会追上来。所以我打算更新AI。
以前的版本都是用状态机写的。状态机有很多优点,开发起来比较直观,每一个行为都分为一个状态。缺点也有很多,这方面的内容在网上找找有一大把,我就不累述了。主要对这个项目而言,调整AI的自由度不高,修改调整AI的成本特别大,很多东西没法重复利用。所以我就打算开发行为树框架。
其实自己开发一套行为树框架,一般情况下是挺耗费时间的。一般开发行为树,目的都是为了可视化地去设计AI,但是个人精力有限,自己开发一套可视化界面是不太现实的。所以我就借着Unity的层级面板,针对层级面板,自己开发一套行为树框架。所有行为树的节点都写成组件,然后挂到GameObject上就行了。一旦把AI设计好,我就能把AI做成Prefab重复调用。
到目前为止,行为树差不多完成,但是还需要些优化和调整。毕竟算是框架,后面所有做的AI的工作都在这个基础之上。所以一定要细心调整好,毕竟可能还有bug,或者还有更好的架构设计。而且将来,只要在项目中开发好图形界面,玩家自己都可以开发AI。
TapTap
这就是新版的行为树节点,英文看不懂?抱歉,我还想都打成中文来着,但发现我现在用的版本不支持输入中文……
现在的敌人看到你,这时候你躲到墙后,敌方坦克会跑到刚在那个点去找你,如果找不到,就回原先的位置。
TapTap
TapTap
TapTap
实际上状态机改成行为树,AI的表现上没有太大的变化,在比较简单的关卡,敌人还是一样。但是在这方面我已经花了大力气去做了。所以大家可能觉得好几天过去,游戏啥都没变化。但实际上,AI的内核已经变了。就好像从原来的win7升级到win10一样。恐怕只有程序员才能了解我。

所以,《变2》在持续不停的开发中。大家尽请期待!
34
2
21