踢碎破局陷阱,来一场酣畅淋漓的 SLG!

news2024/10/6 10:35:31

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 游戏革命中,我们可以携手同行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.4. Java集合框架(List、Set、Map等)

Java集合框架是Java提供的一套用于存储和操作数据的接口和类。它包括以下几个主要部分: 接口:集合框架定义了一系列接口,如Collection、List、Set、Map等。实现类:集合框架提供了一些实现这些接口的类,如ArrayList、L…

【HISI IC萌新虚拟项目】cpu_if模块方案文档

该文档仅为参考,如果在进行本系列虚拟项目的学习与实践,请自行完成本部分内容。 由于文档格式在之前博客中已展现,因此本文只针对关键点写一下方案。 cpu_if模块概述 cpu_if模块主要是寄存器单元以及寄存器访问通路的处理,可以看下整体结构图: 因此我们可以概括cpu_if模…

看完这篇 教你玩转渗透测试靶机vulnhub—DarkHole

Vulnhub靶机DarkHole渗透测试详解 Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集:②:逻辑漏洞:③:文件上传GetShell:④…

用可编程逻辑器件FPGA LCMXO2-4000HC-6MG132I 实现智能汽车解决方案设计

LCMXO2-4000HC-6MG132I lattice莱迪斯深力科 MachXO2 可编程逻辑器件 (PLD) 由六个超低功耗、即时启动、非易失性 PLD 组成,可提供 256 至 6864 个查找表 (LUT) 的密度。 MachXO2 系列 PLD 提供多种特性,例如嵌入式块 RAM (EBR)、分布式 RAM 和用户闪存 …

PhoneHelper

不一样的手机管理工具 一款基于 Golang 语言开发的手机管理软件——PhoneHelper。 PhoneHelper 是一款支持无线(安卓11及以上支持扫码连接)和有线的adb方式连接设备并且管理设备的软件,同时已适配 Windows、Linux、MacOS 平台,在不…

在Linux设备上让程序在任意目录都能执行

目录 0. 前言1. 编写代码2. 创建软链接3. 其他Linux文章 0. 前言 在Ubuntu上使用espidf中往往需要先设置环境变量,再执行export.sh,对环境装的乱七八糟的我造成了很大的不便我希望无论我在哪个目录,都能快速执行某个命令 我先是使用了编写b…

2023年高级系统架构设计师 如何备考?

高级架构有一定的难度,但是值得挑战一下 新版《系统架构设计师考试大纲》出版了! 可以去官网看看 系统架构设计师是软考的高级科目之一,系统架构设计师一年只有一次考试机会,是在下半年11月份考试 考试科目分为:综合…

Spring5 学习笔记

前置知识: 掌握Java基础知识(特别是反射)掌握Java注解掌握XML掌握Maven Spring5学习笔记 1、Spring概述1.1、简介1.2、优点1.3、组成1.4、拓展 2、IOC理论推导2.1、分析实现2.2、IOC本质 3、HelloSpring3.1、导入jar包3.2、编写代码3.3、思考…

KUC720AE01 3BHB003431R0001 基于浏览器的简单配置

实时自动化是工业通信领域的最高权威,拥有广泛的网关,可将最多产的工业协议连接到您的MicroLogix、KUC720AE01 3BHB003431R0001、CompactLogix、PLC-5和SLC 5/05 PLC,因此用户可以获得一个简单易用的连接解决方案来集成他们的各种设备。像所有…

黄金期货CFD会亏损吗?有哪些黄金期货CFD常见问题

差价合约(Contract For Difference,CFD)是一种热门的衍生性金融商品,CFD 可以在不实际持有资产的情况下,透过保证金方式来针对股市指数、外汇、贵金属、原物料等商品进行多、空任一方向之交易。投资者在选择黄金交易时,会遇到哪些…

数据结构(二)—— 链表(2)

文章目录 1 143 重排链表1.1 找到原链表的中点(「876. 链表的中间结点」)。2.2 将原链表的右半端反转(「206. 反转链表」)3.3 交叉合并两个链表(与「21. 合并两个有序链表」思路不同)3.4 补充 21 合并两个有…

JavaScript高级一、作用域解构箭头函数

零、文章目录 JavaScript高级一、作用域&解构&箭头函数 1、作用域 (1)局部作用域 局部作用域分为函数作用域和块作用域。 **函数作用域:**在函数内部声明的变量所在作用域。 函数内部声明的变量,在函数外部无法被访问…

项目冲突3大管理原则及管理模式

1、系统思考原则 此原则即从全局出发,追求全局最优。系统思考原则的关键在于能够从全局出发,发现冲突的“杠杆点”,即可引起结构上重要而持久改善的点。一旦找到最佳的杠杆点,我们便能以小而专注的行动,创造最大的效果…

笔试强训4

作者:爱塔居 专栏:笔试强训 作者简介:大三学生,希望和大家一起进步 目录 day4 day5 day4 1. 下列与队列结构有关联的是() A 函数的递归调用 B 数组元素的引用 C 多重循环的执行D 先到先服务的作业调度 对列…

数据表示(二进制、进制转换、补码计算)

目录 1.进制2.进制转换2.1 R进制转十进制2.2 十进制转R进制2.3 m进制转n进制方法1:十进制中转方法2:直接转化 3.进制计算3.1 机器数3.2 编码方式(原码、反码、补码、移码)3.3 表示范围定点整数定点小数 3.4 定点表示法 4.浮点数4.…

小破站有许多“高质量”东西,怀揣着“学习”的目的,我用Python将它们通通采集下来

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 事情是这样的,昨晚室友拉着我去他的电脑,说带我欣赏一点高雅的作品~ 于是这一坐下,便是一晚上… 作为一个乐于分享的博主,本来我是决定直接分享的, 但是转念一想&a…

MySQL锁详解

五.锁 5.1 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源CPU、 RAM、I/O的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲…

「实在RPA·零售数字员工」助力零售运营化”零“为整

零售行业是指以面向消费者销售商品和服务的行业,它涵盖了各种类型的商店、百货公司、超市、购物中心、电商平台等,是全球最大的行业之一,在经济增长中有着举足轻重的作用。随着科技的发展,消费者需求的变化以及运营成本的增长&…

软件测试用例的设计以及分类

文章目录 测试用例设计1.测试用例2.设计测试用例的方法1) 等价类2) 边界值3) 判定表法4) 正交法5) 场景设计法6) 错误猜测法 3. 测试分类1) 按测试对象划分2) 按是否查看代码划分黑盒测试白盒测试灰盒测试为什么不直接使用灰盒测试常见的测试方法有哪些?哪些方法用的…

终于拿下腾讯25K的offer,面试官问我的面试题+回答,他都听懵了...

前言 自动化测试面试题总结: 1、你会封装自动化测试框架吗? 这个问得最多,很多公司直接写在招聘要求中。 自动化框架主要的核心框架就是分层PO模式:分别为:基础封装层BasePage,PO页面对象层,T…