游戏AI智能体模仿学习技术方案(附方案详情),沉浸式玩家体验秘诀,看《梦三国2》游戏AI智能体!

近几年,全世界都见证了大模型和 AIGC 技术的爆发式增长,游戏行业也在全面拥抱 AI 。从游戏研发到游戏发行、运营的各个环节,AI 技术在游戏行业的落地应用逐步走向大众的视野,亦为游戏体验带来革命性颠覆。

《梦三国2》大家应该都不会陌生,它是杭州电魂网络科技股份有限公司自主研发并推出的一款融合了实时战略(RTS)元素的角色扮演游戏(RPG),该游戏自 2015 年 3 月 26 日起正式投入运营。早在 2021 年,《梦三国2》凭借其卓越的游戏品质和广泛的玩家基础,入选为第 19 届亚洲运动会的电子竞技比赛项目,标志着其在电子竞技领域的重要地位和影响力。

接下来,我们谈谈为什么要在《梦三国2》加入 AI 智能体?

在游戏领域中,AI 智能体扮演着至关重要的角色,它们不仅仅是技术的展现,更是提升游戏玩家体验的关键因素。

对于新手玩家而言,相对于传统的行为树机器人,AI 智能体以其卓越的技巧和协作能力,能够更有效地帮助玩家快速提升游戏水平。无论是作为并肩作战的强力伙伴还是充满挑战的对手,它都能为玩家带来前所未有的游戏体验,极大地增加了游戏的多元性和挑战性。

在保证游戏公平竞技方面,AI 智能体同样发挥着不可或缺的作用。它们能够填补玩家数量的不足,确保每场比赛的公平性,同时根据玩家的实力水平匹配相应难度的 AI,增强了游戏的竞争性和公正性。此外,AI 智能体还能优化冷门时段的匹配体验,通过智能填充,缩短玩家在玩家数量较少时段的匹配时间,为玩家提供更加流畅和愉快的游戏体验。

在日常生活中,玩儿游戏时,相信在座的游戏人都希望自己可以把把赢,如果遇到“逆风局”,五连败会造成很差的游戏体验,对于经历连败的玩家,AI 智能体的引入同样具有积极意义。它们不仅能够提升连败玩家的游戏体验,还能有效提升用户留存率,确保每位玩家都能在游戏中找到属于自己的乐趣和成就感。

可见,AI 智能体的价值在于它们不仅提升了游戏的技术层面,更在玩家体验和游戏社区的建设上发挥了重要作用。而模仿学习技术对 AI 智能体有着关键作用,通过模仿学习技术,AI 智能体可以学习从人类行为中获取知识和技能,并将其应用到不同的情境中。

模仿学习技术通过精准捕捉并解析真人玩家的游戏操作,赋予 AI 模型高度的拟人化特性。这一过程主要依赖于对线上高水平玩家比赛录像的深入分析,从中提取关键的游戏状态和相应的动作决策。在这里,"状态"描绘了玩家所处的游戏环境和当前游戏状态的描述,而"动作"则记录了玩家在该状态下的具体操作。通过游戏的标准化接口,我们能够捕获这些数据,进而训练出能够模拟人类玩家行为的 AI,提升游戏的互动性和真实感。

前段时间,美国 GDC 大会的机器学习峰会上,网易数智游戏行业部 CTO 陶建容的精彩分享《为“街球全明星”训练高拟人和高强度的篮球 AI 智能体》中,也为游戏开发者展示了 AI 智能体从设计、训练到实际部署的完整过程,并向全球游戏开发者展示了如何将游戏 AI 技术成功应用于实际场景

今天,小智带大家从游戏 AI 算法专家李浩的视角,跟大家以《梦三国2》AI 智能体模仿学习技术方案角度切入,从数据集构建流程、状态动作定义、游戏场景定义、意图定义、数据分析、模型训练、模型部署、效果评估这 8 大方面来向大家详细介绍《梦三国2》AI 智能体模仿学习技术方案,一起谈谈 AI 技术是怎么为游戏行业创新和变革赋能,换言之,来看看游戏公司们如何为陪玩 AI 注入“灵魂”。

本文篇幅较长,小智将分为2篇进行分享,感兴趣的伙伴可以点赞、收藏+关注,敬请期待后续内容~

01

数据集构建流程

这一部分,小智将向大家介绍,包含录像到训练数据的处理全流程。

1.录像下载及信息存储

游戏方将录像定期推送到 FTP 上,我们会定期从 FTP 中拉取录像,并存入对象存储中,并在数据库中记录录像信息。

2.录像信息解析过滤

在进行模仿学习时,为了保证模型的效果,需要筛选特定角色的、高段位的、表现较好的录像使用,所以通过游戏方提供的录像过滤工具,可以获取每场录像的筛选映射信息,我们可通过该映射信息进行录像筛选,具体筛选信息字段示例如下:

matchid

score/rank

hero_id

KDA

game_result

比赛唯一id

能力分/段位

角色id

比赛表现

比赛结果

3.录像解析 proto 数据

在过滤得到所需录像之后,我们通过录像解析工具,将一局比赛解析处理成多个 proto 数据,每个 proto 数据表示一帧游戏数据,proto 中包含了我们训练所需的所有数据。之后我们把 proto 数据同样存放到对象存储中,并在mysql 中记录下这场比赛对应的 proto 及录像信息。

如下图为 proto 的示例,其中包含了游戏某一帧状态和录像动作两部分主要信息,状态又分为比赛通用信息和各个玩家的状态信息两部分,通过 proto 数据,我们就可以构建状态-动作数据样本。

4. proto 数据处理为训练数据集

有了 proto 数据之后,我们开发 python 脚本用于处理并将一场比赛的 proto 数据转换为一个 parquet 文件,然后通过 redis 我们实现了多机多进程分布式处理,可批量将大规模的 proto,短时间内处理完成。

之所以使用 parquet 作为训练数据格式,因为 pqt 文件可压缩节省空间,在得到 pqt 文件之后将其直接上传到 hdfs,通过关联 Hive 表,可进行相关数据统计和分析,pqt 文件可只用于后续训练(训练框架是基于ray开发)。

02

状态动作定义

状态包含:全局特征、玩家特征、Unit 特征、其他特征、全局 map 以及局部 map 共 6 类特征。

其中前 4 类特征很好理解,都是通过 proto 获取到对应的数据,进行计算处理之后,构建成对应的向量特征。

对于全局 map 对应的是小地图信息,局部 map 对应的是玩家游戏中局部视野的信息,全局/局部 map 特征由多个二维矩阵构成,在《梦三国2》中,各 map 共使用地形、全量建筑物、我方建筑物、全部英雄、我方英雄、全部小兵、我方小兵、野怪共八个二维矩阵。每个二维矩阵中数值表示该位置有没有相关信息,如全局 map 中我方英雄的二维矩阵表示小地图中我方英雄所在的位置映射信息。

Global map 将小地图转换为544x544的矩阵,然后 sum-pool 成 32*32 的矩阵(如定义映射位置存在多个,为具体单位的累加和),Local map 是在 544x544 的小地图上直接针对主英雄所在的位置截取出 36*36 的矩阵。

我们采用分层的动作结构,其中第一层为主动作,包括移动、停止、普攻、tp、技能 1~4、道具 1~9 共 17 个主动作。

移动距离和移动方向作为移动的具体参数,其中:移动方向离散为 16 维度,移动距离离散为[50, 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2500, 3000]11个距离,统计玩家的移动距离得到。

技能/道具距离和方向作为技能和道具(非指向性)具体参数,其中:方向离散为 16 维度,距离离散为[50, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000] 11 个距离,统计玩家的放技能、道具距离得到。

对于距离和方向定义使用如下扇形方式定义,其中以原点出发的射线代表方向,以原点为中心的半径不同的圆为距离,射线和圆的交点就作为具体移动、释放技能的位置:

指向目标用于普攻、技能和道具(指向性)的目标参数,不足的 padding 处理,括号里面代表的数量:自身(1)、友方英雄(4)、敌方英雄(5)、我方建筑(18)、敌方建筑(18)、我方小兵(20)、敌方小兵(20)、野怪(40)、召唤物(5)、Boss(2)、信使(6)、孔明灯(10)等。

tp 目标用于使用回城令:友方的外塔、高地塔和基地共 10 个目标,宏观和微观意图只是作为辅助任务,不作为 AI 动作的任何参数。

完整文章内容,请先关注小智,下期分享~

游戏 AI 智能体解决方案已经完整落地在网易游戏中,大规模预训练模型, 深度强化学习,深度模仿学习等技术开发的智能竞技机器人,带来更加真实的游戏体验,助力提升游戏品质。立即查看详情✉V:LTT936,立马详细咨询~:

游戏AI竞技机器人 - 网易智企大规模预训练模型, 深度强化学习,深度模仿学习等技术开发的智能竞技机器人,为游戏玩家带来更加真实的游戏体验,助力提升游戏品质icon-default.png?t=N7T8https://grow.163.com/solution/combat-robot?from=csdn_yxzy_0418

—— END——

今天先聊到这里,看到这里的游戏人,期待下次为大家分享更多游戏行业洞察!

我来自网易~ 是你最得力的游戏行业战略家,也是最硬核的游戏技术布道师,一起让技术发光~ 欢迎各位游戏人一起探讨交流~

tips:《游戏 AI 实践指南》免费领取方式——评论区留言【指南】或 ✉V:LTT936,立即get√

  • 30
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值