文章目录
- (一) 如何评测“绝悟”的智能程度?
- (二)“绝悟”个体操作能力分析
- 2.1 草丛埋伏
- 2.2 越塔强杀
- 2.3 技能避伤
- 2.4 技能combo
- (三)“绝悟”团队意识能力分析
- 3.1 团队支援
- 3.2 团队控龙
- 3.3 反野意识
- (四)“绝悟”的一些“愚蠢行为”
- 4.1 恋泉行为
- 4.2 莽夫行为
- 4.3 滞留行为
- 4.4 自信回头
2019年12月20号,腾讯AI Lab发布了一篇paper,称他们利用深度强化学习技术训练了出了一个超强AI“绝悟”,该AI能轻松击败顶尖水平的职业选手。在论文发出不久后,我写了一篇我个人对论文思想的理解:利用Deep Reinforcement Learning训练王者荣耀超强AI,虽然论文中贴出了该 AI 与职业选手们的交战数据,但无一败场的战绩实在是令我激动的同时也产生了一些疑惑,到底“绝悟”能进行哪些操作能够把职业玩家打的毫无脾气。时隔半年,王者团队终于开放了绝悟的接口,在2020年5月1日-2020年5月2日让所有玩家在线上都能和“绝悟”过过招,于是我集结了我的小伙伴,在5月1日00:00的时候开始了自虐性的挑战,下面我根据保存的回放来带大家看看“绝悟”的实力吧。
“绝悟”一共有5个关卡,其难度从低到高,一晚上我们玩了3把,还剩下2关未挑战,不过看名字也大概知道难度不小了。我们小队的实力并不算强,平均只有钻石星耀的水平,所以在接下来我贴出的对战视频中我会重点分析敌方AI的玩法策略,请大家不要在意我们蹩脚的操作,毕竟珍贵的数据是AI算法模型,而不是我们的平民操作…。以下是我们未挑战的两个关卡,分别是 KPL 春季冠军阵容和秋季冠军阵容,昨晚打完第 3 关已经是深夜了所以我们没有继续玩下去,所以在这篇博客中贴的对战数据均是来自前 3 关,“绝悟” 会有一些看起来很 “愚蠢” 的行为,我在之后会详细分析,但我不确定这些 “愚蠢” 的行为是否在后 2 个关卡仍然存在,等我们挑战完了最后 2 关后我会更新这个博客中的内容。
(一) 如何评测“绝悟”的智能程度?
游戏 AI 这个概念其实并不新鲜,但在早年间人们增加 AI 强度都是通过一些 “作弊” 的手法,例如让 AI 有着更快的经济发育速度,或是观测视野比人类玩家更宽广,甚至缩减 AI 单位的技能CD,这些不公平的设定让那些输给 AI 的玩家都十分的不服气,这根本不能叫做 “智能”。所谓智能,AI 应该拥有和人类完全等同的信息输入,即利用人类能获得信息进行行为决策,这才叫智能。“绝悟AI” 在设计之初就被定义为一个 “智能AI”,AI 模型所能看到信息的和人类一样,包括当前游戏画面和一些敌我双方人头数等游戏状态信息(具体参见我在引言中贴出的博客链接),这样,“公平智能”的问题就得以解决。
那么,我们如何来评价“绝悟”的“智能程度”呢?玩 MOBA 游戏的人都知道,玩好这类游戏都需要以下 2 个必备素质:个体操作 + 团队意识。个体操作是指对英雄的行为控制,包括技能combo、走位、技能避伤、草丛埋伏等;团队意识是指在如何和队友进行配合,共同取得有利于己方队伍的战场条件,包括反野、偷野、支援、团战等。接下来我会对 “绝悟” 挨个进行上述能力的分析,其中每一小节贴出的视频均来自我们小队的战斗回放。
(二)“绝悟”个体操作能力分析
对于个体操作来说上“绝悟”算是比较强的了,我在之前的论文分析那篇博客中有提到过,AI Lab 在进行模型训练的时候是为每一个英雄训练了一个独立的模型,连职业选手也难以获胜,下面我们就结合实际视频来看看 “绝悟” 都有哪些令人惊叹的个体操作吧。
2.1 草丛埋伏
说到“蹲草丛”想必大家并不陌生,作为一个控制类的英雄一定要学会埋伏,等到敌人进入到攻击范围内后一套带走。但是想总结出一套“埋伏”的规则其实是很难的,人类很难写出一个完整的“蹲草丛”规则告诉 AI 应该在什么情况下在草丛里等待,等待多久,到什么时候放弃等待,什么时候发起进攻等等。因此,选择在何时进行埋伏,埋伏多久全都是由 “绝悟” 自己通过思考得出的,极大程度的还原了人类玩家在玩王者时的思路。下图是敌方虞姬埋伏我方伽罗的画面,在兵线交锋的边路敌方虞姬并没有着急清线而是躲在一旁的草从中,等到我方伽罗走到其技能范围内后开出1 技能并随即接大,这样一套下来差点带走我方伽罗,可以说在这种“埋伏意识”上,“绝悟”已经符合了一个基本人类玩家的水平了。
除了边路埋伏,“绝悟”还会在野区偷偷藏起来等待猎物上钩。比如下图这个敌方孙策在敌方红区埋伏狩猎的画面,当时我方在上路处于很大优势,边路兵线也已经带到了敌方高地了。在通常情况下,处于优势的一方在途经敌方红区时会顺手拿掉敌方的红 buff,“绝悟” 恰好对我们的心里做好了预判,提前埋伏在草丛中等待铠来偷红。但这一次我们的铠并没有选择优先拿红,而是想优先推掉高地,计谋未能得逞的孙策立马改变策略,从草丛中现身和队友鬼谷子一起进行兵线拦截。
在草丛埋伏行为里,选择突进的时机是十分重要的,即操控者需要知道什么时候应该在草丛中发动突进攻击。在下图中,敌方后裔一个人在边路对线,此时我方大小姐和瑶都在线上,如果贸然发起进攻,后裔很难1v2还能全身而退。因此后裔选择等待从野区赶来的李白,等到李白入场眩晕大小姐后才选择从草丛现身配合其一起进行围剿。“绝悟”的这次等待队友支援的行为是不是特别像我们人类玩家在玩游戏时候的行为呢?
2.2 越塔强杀
越塔强杀是指在无视敌方防御塔直接选择击杀敌方残血的目标单位,这个举动是一个极具风险的行为,也被人们称为一种很“秀”的操作。越塔强杀需要操作者有十足的把握,对自己英雄的技能combo和场上的局势分析十分准确。在我们和“绝悟”的交战中,“绝悟” 操控敌方婉儿对我方云中君发起过一次越塔进攻,下图画面中婉儿在判断此时自身血量充足且大招已就绪后选择强飞收掉我方残血云中君,最后利用大招再从野区撤退。万幸的是我方云中君即时开大剁掉了伤害,紧接着我方妲己及时赶到控住并带走了敌人。虽然这是一次失败的收割,但“绝悟”能在如此短时间内果断做出一次大胆的“越塔”决策实属不易,如果不是妲己及时赶到,上官还是有很大可能性是活着走掉的。
2.3 技能避伤
技能避伤是指利用自身技能效果来规避敌方伤害,灵活使用技能避伤属于比较高端的一个操作了,这需要玩家熟知自身技能效果,留好技能cd,在适当的时机释放技能以规避伤害。下面是敌方李白在受到我方米莱迪大的锁定后,利用自身 2 技能避伤的画面片段,这也是我个人非常惊讶的一点,因为 AI 不仅要学会自身技能是可以规避伤害的,同时还要能够记住敌方英雄技能造成伤害的时间。举例来讲,下图米莱迪的大招并非瞬间造成高额伤害,而是在一段时间后延时爆炸,“绝悟” 不仅需要提前计算好米莱迪大招爆炸的时间还要在一瞬间内释放2 技能实现伤害躲避,由于不同技能的延时时间不同,这就要求 “绝悟” 需要具备很高程度的学习能力。
2.4 技能combo
技能 combo 是指技能释放连招,选择适合的技能释放顺序能够让英雄打出高额的瞬发伤害。“绝悟” 的技能释放顺序是通过不断的“自我学习” 学习出来的,这在 AI Lab 的论文中也有提到。其实在整局比赛中技能 combo 表现的非常频繁,combo 也是个体操控中最基本的操控技术,这里贴一个敌方孙策利用自身技能 combo 一套带走我方伽罗的片段:
(三)“绝悟”团队意识能力分析
在我们看完了“绝悟”的个体操控技术后,我们再来看看“绝悟”的团队意识怎么样吧。其实说实话,我对 “绝悟” 的个体操作能力并不感到意外,毕竟强化学习在单体操控上取得不小的成就已经不是头一次了,但对于团队配合的任务,“绝悟”的表现还是令我眼前一亮。对于多单位之间的协同配合问题一直以来在强化学习领域都是备受人们关注,各个单位之间应该采取什么样的个体决策,最终使得整个团队的收益最大化,这是一个非常复杂的问题。但 “绝悟” 能够很好的进行团队行为分析,包括支援边路队友,分工清龙,共同反野等在内的多个行为都令我感到十分惊叹,这证明强化学习在“多单位合作”任务上又取得了一次进步,下面就让我们来看看这些行为的案例。
3.1 团队支援
团队支援是指英雄对其他路的英雄给予适当的帮助,辅助完成击杀或是解救濒死队友。下图是敌方中路和辅助在完成中路清线后选择到下路帮忙击杀我方伽罗和夏侯惇的片段:
除了“辅助击杀”,“绝悟”还会在队友处于危险的时候选择“营救”。下图是我方追击敌方残血耀时,婉儿进行解救的画面片段。可以看出,敌方上官并没有开团的意向,只是在意识到了残血队友的危险处境后,选择在侧面释放技能进行封路和干扰来营救队友,也算的上是一次相当不错的“营救”决策了。
3.2 团队控龙
暴君和龙王是王者里比较强力的野怪了,在适当时机拿龙可以帮助团队快速获取场面优势,我一直以为王者的 AI 在控龙的方面能力应该不强,甚至一场下来控龙次数为 0 也不足为奇,毕竟要想做出控龙的决策需要整个团队的极好配合才能完成。令我没想到的是,“绝悟” 在控龙决策上竟然有不小的主动性,这里节选了 2 段敌方主动开龙的场面,注意观看第一个画面中上官婉儿的行为,她一直在充当一个“侦察哨兵”的角色,并不参与打龙,而是好像任务很明确般的在侧面守住入口,当我方伽罗靠近龙坑时立马冲向了伽罗想要将其击退,此时龙坑中的耀也发现了入侵伽罗,果断选择暂时放弃打野,留鬼谷子在原地拖住小龙,释放 2 技能越墙逼退伽罗,在成功逼退后才回到龙坑继续输出。这一次的控龙,整个团队可以说是配合的非常好了,尤其是在“及时任务分配”上,谁放哨,谁击退敌人,谁留在原地控龙,这些都是在一瞬间做出的任务分配,这一次的配合真的是令我非常意外。
除了控龙时各英雄之间的“任务分配”外,“绝悟” 还知道在什么时候应该“开龙”,这是敌方李白在清完中路超级兵线后直接选择开风暴龙王的画面,当时我方处于劣势,线也被压得很紧,“绝悟” 预测我方此时需要花大量时间清线,此时是他们最好的开龙机会,于是立即召集队友进攻风暴龙王,这个决策展露了“绝悟”拥有着相当了不起的局势评估能力。
3.3 反野意识
反野是指我方英雄入侵对方野区进行经济发育的行为,通常我们会选择在己方野区发育,在一些顺风局势的时候,我们也会入侵敌方野区,趁敌方英雄不注意的时候收掉敌方野区的野怪来增加己方的团队优势。“绝悟” 似乎也能明白这个道理,在我方处于劣势时选择入侵我们的野区,例如下图中敌方虞姬正在清掉我方野区的野怪,整个片段看下来好像一个目的明确的人类玩家做出的行为决策一样——先收掉中路的猪,再收掉边路的鸟,最后清掉线上的龙。
(四)“绝悟”的一些“愚蠢行为”
我在最开始也说了,尽管“绝悟”在很多方面都已经贴近人类玩家的操作甚至要优于人类玩家,但还是会存在一些看起来比较“呆萌”的行为,让人们一看就知道不是真实的人类在玩游戏,我也不确定是不是因为我们小队玩的不是最高难度的关卡才会出现这些行为,如果我们小队能够顺利挑战玩剩下的 2 个关卡我会回来更新这篇文章的,下面我们就来列举一些我发现的呆萌行为吧。
4.1 恋泉行为
“绝悟”会偶尔让某些英雄在家里呆着不出泉水一段时间,这个现象不是一次两次,在我看视频回放的时候发现了好几次,比如下面这种单人恋泉行为:
或是这种多人恋泉行为:
这个现象非常的有趣,我猜想大概是因为 “绝悟” 是一个全局决策模型,当前线英雄行为决策非常忙碌的时候,这些呆在“安全区域”的英雄就会暂时“失宠”吧。
4.2 莽夫行为
在和“觉悟”的对决中,有一段着实是令我感到非常欢乐,就是下面这个敌方牛头企图单杀打龙最终被打龙反杀的片段,一个辅助在输出不在的情况下竟然敢独自开龙,并且在血限极低的情况下也不选择撤离,就是要和打龙硬刚。这个应该是我所有回放里最愚蠢的一次行为了,但通过仔细观察可以发现,当时敌方后裔本来是朝着牛头的位置奔去了,哪知走到一半扭头刷红去了,完全无视了自己的辅助在龙坑持续被拍,这应该算的上是“绝悟”的一次决策失误吧。有趣的是,在牛头被打死之前,我们小队有人在全体聊天频道打出了 “你们这样很影响我充钱的心情啊”,随机牛头就被龙拍死了,也不知道 “绝悟” 是不聪明呢还是太聪明了。
4.3 滞留行为
作为一个成熟的 AI 系统,“绝悟”还是会和大多 AI 一样偶尔迷茫一下,比如下面这个鬼谷子就卡在墙边不知何去何从,在那一瞬间,“绝悟” 不知道该为这个英雄选择怎么样的行为,于是只能让它在原地不断徘徊,直到我方伽罗对他发起攻击后才开始慌忙撤退,我之所以把这个行为归类为一次失误,是因为他身边草丛里并没有任何队友,如果有队友在的话可以理解为鬼谷子是想进行一次“勾引”,但事实并非如此,应该就是一次单纯的迷惘决策吧。
4.4 自信回头
相信自信回头在人类操作中是非常常见的一个迷惑行为了,在血量极低的情况下认为我能行我能秀,结果被反杀的毫无还手之力。“绝悟” 在进行自我学习的时候也非常完美的继承了人类玩家的这一特点,下面就是一个最好的例子,敌方丝血耀在逃亡过程中经过一番深思熟虑后决定要回头反杀这两个满血的弟弟,一波果断的开大回闪之后被我方夏侯拿掉了人头。
总体来说,这次和“绝悟”的交手确实令我大开眼界,机器在玩游戏的时候不会带有任何的感情因素,该开团就开团,不像我们在玩的时候会上头,不分三七二十一冲上去就是开团,“冷静” 和 “理智” 是人类永远无法战胜机器的两点。另外,“绝悟” 在对战过程中还加入了一些人类互动的因素,例如在我方被团灭的时候绝悟会在公屏上说 “好安静啊” 来嘲讽我们,这也算是天美团队一个比较俏皮的设计元素。也不知道随着 AI 技术的发展,以后的 AI 系统是否能够赋予计算机人类一样的思维。其实 “绝悟” 通过自我学习后,在王者上的好多行为决策已经和人类非常相似了,如果一旦让机器完全继承了人类玩家的思维,那么凭借着超快的计算能力,未来 AI 想要击败人类玩家或许就轻而易举了吧。距离 “挑战绝悟” 活动还有3天,今晚我们小队会继续尝试挑战剩下的两个超难关卡,祝我们好运!
(文中视频高清地址:https://v.youku.com/v_show/id_XNDY1NjY2NTc4NA==.html,因csdn上传gif大小限制,文中所有画面都比较模糊,如对完整视频内容比较感兴趣的可以点击链接观看)