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

news2024/11/15 4:46:09

接上篇内容,小智发现内容非常受游戏开发者们的欢迎,今天给大家带来方案(二)内容,没看过第一篇的伙伴可以戳以下链接查看~~码住!

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

进入正文部分:

近几年,全世界都见证了大模型和 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 智能体解决方案已经完整落地在网易游戏中,大规模预训练模型, 深度强化学习,深度模仿学习等技术开发的智能竞技机器人,带来更加真实的游戏体验,助力提升游戏品质。立即查看详情或✉V:LTT936,立马详细咨询~:


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

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

(👇全文长约 8000 字,阅读大约需要 15 分钟)

01 02部分内容详见👇

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

03

游戏场景定义

游戏场景(scene)实现了对数据集进行具体场景的归类,通过标记主英雄的重要动作节点赋予操作的目的性。具体而言,按照动作优先级排序,可以将游戏场景分为以下五大类:

1、推塔/守塔

我方英雄和己方小兵处于敌方防御塔一定范围内即定义为推塔;我方英雄位于我方防御塔内且该范围内同时存在敌方小兵/英雄时为守塔;我方英雄位于我方基地 3200 范围内且该范围内同时存在敌方小兵/英雄时为守基地;我方英雄和己方小兵处于敌方基地 3200 范围内即定义为推基地。

2、对抗

只要敌我英雄距离过近,我们就认为发生对抗。对抗按照参与人数进一步划分为solo、gank /被 gank、小型团战和大型团战;如果我方至少参战两位英雄,且敌方只有一位英雄,这时定义 gank,被 gank 同理;如果双方均至少参与两位英雄且有一方不足四人,我们认为是发生了一场小型团战;如果交战双方均参与四人及以上,我们认为是发生了大型团战;如果是一对一,定义为 solo。

3、清线发育

如果我方英雄绕过防御塔提前清掉兵线,那么划分为断线,其他情况下清线则为正常发育。

4、野区发育

主英雄在攻击野怪被划分为打野发育。

如果攻击目标为我方野怪,划分为打自家野;如果攻击目标为敌方野怪,划分为反野;如果攻击目标为中立 Boss,划分为打 Boss。

5、寻路

以上所有事件如果均未发生,那么统一标为寻路环节。

为了进一步对数据集进行更细致的划分,根据下一个游戏场景的变动,将寻路拆分为以下游戏场景:

去推塔/去守塔;

去 solo /去 gank /去小型团战/去大型团战;

去清线/去断线;

去打野/去反野/去打 Boss;

去泡泉水/泡泉水(泉水恢复/泉水购物);

去野外购物/去插眼/去排眼/去控符/死亡等。

04

意图定义

前面我们定义了详细的场景,首先对于一局比赛,找到符合场景的帧,如上图中 T1 泡泉水、T3 清线等(图中的 T1、T2 不代表连续帧,仅用于示例),那么有个这些有场景定义的帧之后,就可以对一局进行场景划分,对于两个场景帧中的剩余帧,定义为"去"下一个场景,如 T2 帧没有找到符合的场景,由于 T3 为清线,那么 T2 定义为去清线。经过上述操作后,每帧都会赋予一个场景的定义。

在每一帧都有场景定义之后我们再来构建 scene intent,分为 global scene、global intent、local scene 和 local intent,其中 scene 表示的意图(干什么)信息,intent 表示的是位置(在哪里干)信息。

local scene, 假设当前帧为非寻路场景,即不包含“去xxx”,那么该帧local scene 为当前场景一致,比如当前帧为泡泉水,那么 local scene 也为泡泉水。如当前帧为寻路场景,那么该帧 local scene 为最近的下一个非寻路场景,如当前场景为 T2 去清线,那么 local scene 为清线。

local intent,假设当前帧为非寻路场景,即不包含“去xxx”,那么该帧 local intent 为当前场景结束所对应的位置,把小地图映射为 544x544 的二维矩阵,然后把该位置映射到二维矩阵上,然后把 544x544 的矩阵 pool 成 16x16 的矩阵,位置在 16x16 矩阵中的 index 作为 local intent,比如当前帧为泡泉水,那么 local intent 也为T1泡泉水结束对应位置。如当前帧为寻路场景,那么该帧 local intent 为最近的下一个非寻路场景开始的位置,如当前场景为 T2 去清线,那么 local intent 为 T3 清线开始对应的位置。

global scene,定义为当前帧往后找,直到下一个非寻路场景作为当前帧的global scene,如上图中 T1 的场景为泡泉水,往后找,可能经过多个泡泉水帧,直到找到 T3 帧为清线场景,那么 T1 帧的 global scene 为清线。

global intent,假设当前帧为非寻路场景,即不包含“去xxx”,那么该帧 global intent 为下一个非寻路场景开始所对应的位置,同理映射到 16x16 的矩阵中,对应的 index 作为 global intent,比如当前帧为泡泉水,那么 global intent 也为 T3 清线开始位置。如当前帧为寻路场景,那么该帧global intent 为最近的下一个非寻路场景结束的位置,如当前场景为 T2 去清线,那么 global intent 为 T3 清线场景结束对应的位置。

current scene,代表玩家的当前帧状态下所处的场景。

以上的五个定义也会作为我们在训练模型时候的五个辅助任务,帮助我们的模型更好的学习和掌握真人玩家数据中的宏观策略。

在完成 scene intent 的定义之后,我们构建了一个 render,一方面可以校验我们的一些基础数据是否合理,也可以观察我们构建的辅助任务 scene intent 是否合理。

render 由四张子图构成,分别表示全局地图、主英雄视角(局部地图)、local intent 位置和 global intent 位置示意图。

第一个为 544*544 的全局地图,显示游戏内基本信息。蓝色阴影是游戏内地形;红蓝双方建筑处对应颜色的矩形表示塔;大圆形(有黑线描边)表示英雄,主英雄填充色为绿色,其他英雄填充对应阵容的颜色(红/蓝);小圆形(无黑线描边)表示小兵,填充对应阵容的颜色(红/蓝);橙色三角形表示野怪。

第二个是以主英雄为视角中心的小地图,维度是 36*36。在小地图里面不仅包含了全局地图在该区域显示的所有信息,还额外加入了其他与战斗有关的数据。在该区域内的英雄和小兵会按照百分比血量填充颜色表示当前帧的状态,主英雄在攻击时会有黑色箭头指向对应单位,其中紫色框表示第六部分中介绍的 current intent 位置。

第三个、第四个图同样为 544*544 的全局地图,其中紫色方框表示第六部分介绍的 local intent 和 global intent 的位置。同时在对应图片上还会显示current scene、local scene 和 global scene。

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

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

游戏AI竞技机器人 - 网易智企

—— END——

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

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

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

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

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

相关文章

AQS(AbstractQueuedSynchronizer)队列同步器源码解读

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. AOS、AQS、AQLS的区别 3. AQS的底层原理 3.1. 核心思想 3.2. 数…

PyQt介绍——动画使用详解之QPropertyAnimation

一、继承关系 PyQt5的动画框架是QAbstractAnimation,它是一个抽象类,不能直接使用,需要使用它的子类。它的类结构如下: QAbstractAnimation:抽象动画,是所有动画的基类,不能直接使用。 QVariant…

基于postCSS手写postcss-px-to-vewiport插件实现移动端适配

🌟前言 目前前端实现移动端适配方案千千万,眼花缭乱各有有缺,但目前来说postcss-px-to-vewiport是一种非常合适的实现方案,postcss-px-to-vewiport是一个基于postCss开发的插件,其原理就是将项目中的px单位转换为vw(视…

【极速前进】20240422:预训练RHO-1、合成数据CodecLM、网页到HTML数据集、MLLM消融实验MM1、Branch-Train-Mix

一、RHO-1:不是所有的token都是必须的 论文地址:https://arxiv.org/pdf/2404.07965.pdf 1. 不是所有token均相等:token损失值的训练动态。 ​ 使用来自OpenWebMath的15B token来持续预训练Tinyllama-1B,每1B token保存一个che…

配置nodejs的俩小脚本

介绍:共两个脚本。 脚本1,用来配置环境变量,生成环境变量所需的配置信息,然后自己添加到系统环境变量里去 特别注意:该脚本需要放到nodejs目录下面,如果不是,则无法生成环境变量配置文本内容 另…

【STL概念】

STL STL(Standard Template Library),即标准模板库从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件&#xff0…

找不到msvcp140dll,无法继续执行代码的详细解决方法

在我们日常使用计算机进行各类工作任务的过程中,时常会遭遇一些突发的技术问题。比如,有时在运行某个重要程序或应用软件时,系统会突然弹出一个令人困扰的错误提示:“电脑提示找不到msvcp140.dll文件,因此无法继续执行…

Linux CPU 占用率 100% 排查

其他层面要考虑到的地方 mysql,有执行时间特别长的sql、死锁redis雪崩等相关问题并发导出数据量大Java定时器服务业务复杂,比如像每天要更新电商的统计表,每天发送优惠券等业务需要提前计算才能保证业务使用时的流畅性,我这个原因…

【快速上手ESP32(基于ESP-IDFVSCode)】09-Flash存储

ESP32中的Flash 关于ESP32中的Flash,我们需要再回顾一下命名规则。 我用的是立创开发板设计的板子,芯片型号是ESP32S3R8N8,因此可以知道我这块板子有8MB的Flash,大家可以参照着命名规则看看自己有多大的Flash容量。 操作Flash …

学习STM32第十七天

备份域详解 一、简介 在参考手册的电源控制章节,提到了备份域,BKPR是在RTC外设中用到,包含20个备份数据寄存器(80字节),备份域包括4KB的备份SRAM,以32位、16位或8位模式寻址,在VBAT…

0.什么是C++(专栏前言)

目录 1.什么是C 2.C的发展史 3.C的重要性 应用: 4.如何学习C 5.关于本专栏 1.什么是C 20世纪80年代,计算机界提出oop(object oriented programming:面向对象)思想,支持面向对象的程序设计应运而生。 1982年,本…

去雾笔记-知识蒸馏

知识蒸馏(Knowledge distillation)是一种模型压缩技术,旨在将一个复杂的模型(通常称为“教师模型”)的知识转移给一个较简单的模型(通常称为“学生模型”),以降低模型的计算复杂度和…

针对窗口数量多导致窗口大小显示受限制的问题,使用滚动条控制窗口

建议:首先观察结果展示,判断是否可以满足你的需求。 目录 1. 问题分析 2. 解决方案 2.1 界面设计 2.2 生成代码 2.3 源码实现 3. 结果展示 1. 问题分析 项目需要显示的窗口数量颇多,主界面中,如果一次性显示全部窗口&#x…

财务管理困扰外贸公司?软件解决方案大揭秘!

本文将探讨外贸公司在财务管理中遇到的难题,提出可能性的解决方案,并概述理想的外贸财务管理软件应具备哪些必备功能。 一、外贸公司财务管理难题 1、交易币种多样化 如何准确记录不同货币的财务活动,是外贸公司必须面对的问题。外贸公司的…

密钥密码学(一)

原文:annas-archive.org/md5/b5abcf9a07e32fc6f42b907f001224a1 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 序言 从秘密解码环到政府政策声明,隐藏和发现信息的挑战长期以来一直吸引着智慧。密码学是一个引人入胜的主题,…

HMAC: Introduction, History, and Applications

title: HMAC:Introduction History and Applications date: 2024/4/22 18:46:28 updated: 2024/4/22 18:46:28 tags: HMAC哈希消息认证安全协议数据完整性身份验证密钥管理 第一章:介绍 1. 什么是Hash-based Message Authentication Code (HMAC)&#…

出海不出局 | 小游戏引爆高线市场,新竞争态势下的应用出海攻略

出海小游戏,出息了! 根据 Sensor Tower 近期发布的“2024 年 3 月中国手游收入 TOP30”榜单,出海小游戏在榜单中成了亮眼的存在。 其中,《菇勇者传说》3 月海外收入环比增长 63%,斩获出海手游收入增长冠军&#xff0c…

LMDeploy 量化部署 LLM-VLM 实践——作业

LMDeploy 量化部署 LLM-VLM 实践——作业 一、 基础作业1.1、配置 LMDeploy 运行环境1.2、以命令行方式与 InternLM2-Chat-1.8B 模型对话 二、进阶作业2.1、设置 KV Cache 最大占用比例为0.4,开启 W4A16 量化,以命令行方式与模型对话2.1.1、初始显存占用…

交通公路气象站:监测公路沿线气象

TH-GQX8交通公路气象站是一种专门用于监测公路沿线气象状况的设备系统。它通常由分布在公路沿线的若干个自动气象站联网组成,主要任务是实时监测和记录多种气象数据,为交通管理部门和驾驶员提供准确的路况信息。这些气象数据包括气温、湿度、风速、风向、…

【Linux】权限(shell运行原理、概念,Linux权限)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html 目录 shell命令以及运行原理 创建和删除用户 创建新普通用户 删除用户 Linux权…