头图

SLG 作为深度策略游戏品类的代表,一直是展现人类智慧之光的最佳舞台之一。欣赏顶尖玩家间的对决是一场大脑的狂欢,奇谋频出、神机莫测般的对局让人不禁摩拳擦掌,跃跃欲试。但当我们打开游戏时,往往是高玩难觅,人机相陪,朋友闲隙不常有,而人机却全是数值怪。

想打一场酣畅淋漓,气贯长虹的对局怎么这么难?!

可不可以让人机也像人一样聪明狡猾,巧计随发?

SLG 的破局陷阱

为什么大多数 SLG 中的人机,都这么笨?!

在绝大多数 SLG 游戏中,决策一般由两个层级组成:城市、国家。

  • 城市主要涉及微操,如资源采集、募兵。
  • 国家主要负责宏观决策,如外交关系、军事行动。

城市与国家之间的决策需要密切关联,才能最大限度地发挥一个国家的实力。由于 SLG 中丰富的元素,在不同的态势下,一个国家的最优决策链亦大不相同,如开局在蛮荒之野 vs 膏腴之地,边远之陲 vs 四战之地。在不同的开局条件下,一个国家的决策从顶层设计到微操实现都有着极大的区别,并且随着时间的变化,亦需要不断调整一个国家的战略方向,“入则无法家拂士,出则无敌国外患者 ,国恒亡”。

这为基于规则的行为树带来了极大的挑战,从现实的角度来说,书写如此庞大的行为树是不现实的,也容易导致“财政赤字”。在绝大多数 SLG 游戏中,有一个可以应付绝大多数场景的万金油规则便足够了,“什么?玩家觉得我们的 AI 太弱了?加数值!给 AI 开局 50000 骑兵!”

这便带来了 SLG 中普遍的痛点:

破局陷阱

玩家的主要体验被集中在了前期破局中,而由于 AI 的高数值与策略单一,被很多玩家戏称为“做题”——必须按照攻略一步一步走,不能有任何分差;而玩家一旦“破局”成功,游戏将彻底进入垃圾时间——毕竟 AI 只是会打优势局的数值怪。

导致 SLG 游戏陷入破局陷阱的原因有很多,但其中的根本便是:

基于规则的行为树无法覆盖一局完整的游戏周期,如果不给予行为树极高的数值,由于行为树的策略单一且强度不足,玩家几乎在整局游戏中都不会体验到有效的对抗,从而导致游戏的垃圾时间占比非常高。使用高数值的方法更像一种妥协:既然我们无法给予 AI 聪明的大脑,那只能给予它强壮的身体了。

这会带来什么问题?

游戏在中后期彻底进入垃圾时间。

大多数玩 SLG 的玩家,都有一些运筹帷幄的情怀:我前期辛辛苦苦种田发育,好不容易熬成一方霸主,倾一国之力来和人机决一死战,希望能打一场青史留名的大会战!而不是无论我摆出怎样的阵型,设下了几路伏兵,他却只会从中央突破。

当我使出浑身解数,拿出看家本领的时候,希望对方能给予相应的"尊重"。而这份"尊重",基于规则的行为树是无法给予的。

基于深度强化学习的 SLG AI

SLG 游戏中人机对策略的深度和广度都很缺乏,而这恰恰是可以被深度强化学习训练的 AI 所填补的。

对于 SLG 类游戏 AI,一套通用的技术方案如下:

AI Brain(以下简称为 AI)以国王的角度负责一个国家的决策,具体到执行时会分化出不同的执政官,如大将军,外交官,总督等;每一位执政官负责游戏内一个领域的决策,大将军负责军事行动,外交官负责国家关系,总督负责城市管理等。

所有执政官使用同一个神经网络模型,朝着共同的目标通力合作,如外交官想要发起宣战,总督会令各个城市开始生产军事资源,并将军事资源集中运输到边境城市,大将军会让军队向两国边境集结,一旦外交官宣战,立刻开始军事行动。

在具体的强化学习建模上,我们以三国为游戏背景的大多数 SLG 游戏为例。

神经网络框架

状态特征方案

对存在特殊玩法或资源的游戏内容,需要进行针对性的补充。

由于 SLG 普遍以策略的深度和广度见长,因而其动作空间方案明显区别于其他品类游戏;具体来讲,我们会将游戏中需要决策的部分按照职责划分成数个方向,随后分配给相应的执政官来执行。

动作空间方案

  • 大将军:负责所有的军事决策。

  • 总督:负责城市发展建设。

  • 外交官:负责国家外交关系。

  • 贸易长:负责商业贸易。

SLG 相比于其他品类的游戏,在技术方案中一个明显的区别点在于其需要决策数量不定的单位,如城市、军队,并且与 RTS 不同,SLG 中的单位难以统一批量决策,因而需要在回合内对所有单位进行遍历决策,这对训练所需的样本数量提出了较高的要求。

在执政官结构方案中,虽然所有的执政官均共用同一个神经网络模型,但每一位执政官均使用独立的马尔可夫链。使用统一的神经网络模型和奖励函数确保了执政官之间目标的一致性和合作性,同时增加了特征提取效率;而独立的马尔可夫链则为每一位执政官分配了与其适应的状态转移矩阵,极大地降低了未来奖励期望值的方差。

奖励函数

由于 SLG 游戏中普遍以城市作为游戏的核心单元,因此我们选择了基于势能的城市奖励。特别地,对于可以新建或者毁灭城市的游戏玩法,可以修改为消灭国家或领土面积。

Sparse Reward

在绝大多数的 SLG 游戏中,攻陷一座敌人的城市并不是一件”动动手指即可”的容易事,往往需要前期大量的准备工作,这便意味着在训练的前期阶段,AI 是很难探索到攻占城市的,这导致了强化学习中经典的稀疏奖励问题(Sparse Reward),针对该问题,我们使用了两种解决方法。

  • Random Initial State in Markov Decision Process

稀疏奖励问题的本质是当前 state 与存在有效奖励的 state 在马尔科夫链中的距离过大,由于智能体在训练前期阶段是随机策略,因而很难探索到有效奖励。据此,我们使用的方法是,让智能体从有效奖励 state 附近开始探索,具体来说:

如让智能体开局便拥有一支十万人的军队,给予军队所需的资源,并将这支军队部署在敌人城市附近,智能体仅需简单的探索即可进入“成功占领城市”的状态;进一步,可将智能体与有效奖励 state 的距离逐步增大,比如让智能体开局便拥有一支十万人的军队,给予军队所需的资源,但将这支军队部署在远离敌人城市的位置;直至智能体完全掌握从零组建军队至攻占敌人城市的完整决策链。

  • Inspirer

导致稀疏奖励的另一个主要原因是:智能体在训练前期是随机策略。那么我们可以从此着手,让智能体在训练前期使用或者借鉴专家策略;前者,是模仿学习,后者,我们称之为启发者(Inspirer)。

由于游戏可能还没有上线,抑或缺乏高玩数据的原因,模仿学习的应用存在着一定的限制。

在 Inspirer 方法中,我们增加了一个预训练的模型,该模型的动作空间与当前模型相同,在训练时,每条轨迹有 ρ 的概率令其中的 action 均为预训练的模型产生;ρ 会随着两个模型 KL 散度的增大而减小。预训练模型的获得方式有很多种,比如由训练较长时间获得,亦或加入部分引导奖励获得。

加入预训练模型的目的是希望为模型的前期探索增加有效样本,当当前模型与预训练模型策略差异增大时(KL 散度增大),代表模型得到了新策略,此时通过减少预训练模型生成的样本比例来避免预训练模型对当前模型的策略产生干扰;ρ 的设置亦不应过大,否则会对 critic 的拟合带来较大偏差。

性格迥异的君主

在历史向的 SLG 游戏中,君主的人设是非常重要的组成部分,个性鲜明的君主会让玩家的历史代入感瞬间迸发,亦为游戏体验增加了更多的新鲜感。

具体地,我们会为强化学习模型设置多个与人设相关的目标,在训练阶段的每场游戏中,为每位君主赋予不同的目标权重,并将这些目标权重加入神经网络模型的输入中,由此我们的模型便可以学会不同的目标权重与相应策略的映射关系。

在训练完成后,针对有固定人设的君主,我们可以为他配置相应的目标权重,比如侵略似火的成吉思汗、休养生息的汉文帝、不思进取的南唐后主等,针对非历史向游戏,我们可以为每个君主赋予性格迥异的人设,从而极大提升游戏的丰富程度。

AI 决策案例

下面以某款三国 SLG 游戏为背景,介绍 AI 机器人在游戏中的决策案例。

游戏背景

游戏整体以上图所示进行强化学习建模,图中整体以中国地形为基础,其中每个方格中的图案代表的信息如下,不同颜色的部队及城市代表其属于不同的国家,箭头代表部队进攻的方向,每个国家的目标为占领所有城市,统一中国。

1)在当前局势中,孙权的实力最为强盛,AI 预测获胜倾向最高(1.5),刘备与曹操首次结盟,共同抵抗孙权。

2)在经过长达 188 回合的拉锯战后,孙权被压制在西北与蜀地,刘备尝试入川但损失惨重,于是趁曹操的主力部队仍在中原与孙权对峙时撕毁盟约,奇袭曹操后方,曹操此时在长江以南仅留有驻防合肥的三支缺额休整部队。

3)曹操遭刘备背刺,后方岌岌可危,在留下少量部队与孙权对峙后,立刻集结中原军团驰援南线;孙权见曹刘决裂,趁机向曹操抛出橄榄枝邀请结盟,却遭曹操严词拒绝(3.2>>0.5)

4)趁刘备曹操在江南混战,孙权休养生息再度崛起,大有重出潼关之势;曹操摒弃前嫌,向刘备申请结盟,曹刘在解盟不久后再度结盟。

大敌当前,仍需同舟共济。

5)战争进行了百余回合,孙权一度攻占河北,但终因两线作战,双拳难敌四手;刘备乘胜盘踞河北,正欲与孙权在西北决战;曹操在三峡逡巡不前,迟迟不肯入蜀开辟抗孙第二战场,在刘备抽调了中原的所有主力后,曹操果断撕毁盟约,偷袭刘备后方。

6)刘备虽知曹操偷袭,但西北决战已经打响,抽身乏术,被迫坐视曹操侵占整个北方;西北决战,刘备惨胜,曹操趁机大军压境,刘备欲守潼关但曹操仿历史三国旧事由浦阪津渡河,关中已无险可守,此诚危急存亡之秋。孙权刘备虽然刚结为盟友但远水难救近火,刘备破釜沉舟,率领最后的九只精锐部队东出潼关,以曹操在黄河南岸的三只新军为突破口冲出重围。

7)刘备突围后暂栖江南,曹操一统北方,大举伐吴,孙权退无可退死守阳平关,同时向刘备告急;刘备集结最后的力量,倾国北伐。

8)蜀道难,难于上青天。曹操久攻阳平关不下,遭孙刘合围于陈仓道,全军覆没。刘备撕毁盟约,携灭国之威一举攻破阳平关,孙权覆灭在即。

9)滚滚长江东逝水,浪花淘尽英雄。

上面的案例中,主要展示了 AI 在军事指挥及外交联盟方面的能力,两面能力互相配合,相得益彰,从而在一局游戏内打出精彩的反转。 

结语

作为 SLG 骨灰级玩家,我们深深为其中的高数值低智能人机所折磨,无数次的鼠标悬停在开始游戏,又无数次的质问自己,“你想的这些新招数,人机却只会那些老套路,有什么意思呢?”

如果问我们最想给 SLG 带来什么,我们希望给每一位热爱深度策略的 SLG 玩家酣畅淋漓的对决,让玩家的每次“包围黄百韬”,都会获得“先打中野”般的回应。

作为一站式企业服务提供商,网易智企基于网易游戏的 AI 技术与实战经验,融合了最先进的 AIGC 技术,沉淀转化出多个品类的游戏 AI 机器人解决方案。包括 MMORPG、MOBA、SPG、FPS/TPS、ACT、SLG、RTS、棋牌卡牌等,切实帮助游戏行业伙伴们以最低的成本接入最先进的 AI 服务,紧跟最新 AI 技术发展并享受其带来的红利。

希望在这场 AI 带来的 SLG 游戏革命中,我们可以携手同行!


网易数智
619 声望140 粉丝

欢迎关注网易云信 GitHub: