氪老师的《机擂》AI课堂(二)

精华2019/04/021102 浏览综合
大家好,这次是AI课堂的第二讲,我们来讲讲更实战一些的东西。
在讲正事以前,先说点有关游戏设计的东西。有很多玩家说这个游戏很难,因为随不到好的装备,所以打不过敌人,对新手很不友好什么的。
首先,这个游戏在随机搜索敌人的时候,永远是在玩家实力线往上一定范围内随机搜索,也就是说除非你所有武器都有了,否则敌人是永远装备比你好的。
其次,我们遇到装备比我们更好的敌人时,有两种办法,一种是获得克制对方的装备,利用属性克制来击败对方。用这种方法时,我们并不需要设计很复杂的AI。
如果我们没有克制对方的装备,那么就只能通过编写复杂的AI来战胜对方。
那么什么是“复杂的AI“呢?
这一次给大家举一个很实战性质的例子
我们假设,对方有很强的近战武器(比如光束剑),而且速度比我快,很容易就能追上我。而且只要近身打我两下我就挂了。这个敌人的AI很简单,就是直线向我方接近。
我只有最基础的机枪(右手)和路障(左手)(都是新手关送的)以及一个时间检测的头部零件(很容易直接买到)。可能在很多玩家看来,对方有三级武器,而我们只有最基础的武器,肯定是打不过的了。
TapTap
那么我们来设计一下战术,首先,对方的光束剑虽然攻击很高,但是有个缺点是不能打坏路障,我们的路障可以有效的阻止对方10秒。(10秒后路障自己就消失了)
其次,我们的主力输出武器机枪,由于子弹会散开,所以离的太远就无法发挥威力,很可能子弹打光了对方还没死。
那么我们希望机器人按照10秒一个循环(因为路障是10秒消失)的方式来运作:
- 开局后退,并同时放下路障,将对方卡主。
- 路障放下后1秒机枪启动,之所以是后退1秒就启动,是防止距离太远机枪无法发挥威力。
- 当计数器到9秒时(算一点提前量),路障消失,此时机枪挺火(因为不挺火动不了),同时路障再次放下,开始后退,进入循环。
第一AI组:
TapTap
解说:第一AI组是放一些我们希望在战斗一开始就进行的活动,包括开始移动,确定移动方向,开启路障,开启本机计时器等。
第二AI组:
TapTap
解说:第二AI组是实现后退一秒就停下开火的功能,因为机枪启动时无法移动,因此我们省去了放置“停止移动”的部件。之所以要关闭第一AI组,是为了不浪费左手的路障数量和冷却。如果第一AI组不关闭的话,左手的路障就会一直处于开启状态。
第三AI组:
TapTap
解说:第三AI组是为了处理当10秒到达,路障爆炸后的处理,首先让左手的路障启动,放下路障,同时让右手的机枪关闭,这样就可以继续后退了。同时让本机计时器重置,这样在计时回到0秒并继续计时到达1秒时就会继续执行第二AI组,完成循环。
这样一来,我们就通过三个AI和很简单的组件,完成了一个一边后退阻止敌人,一边用机枪输出的机器人AI。有兴趣的同学可以在测试模式中尝试一下这套AI。
希望这一篇能帮助到各位卡关的玩家。
11
5
1