作者:johnxuan,腾讯 TEG 应用研究员

FPS 游戏 AI 是腾讯 AI Lab 的一大重要研究方向,其拟人化 AI 也在 FPS 手游《穿越火线-枪战王者(CFM)》春节期间上线的全新剧情玩法「电竞传奇」中得到了应用。这些学习了 CFM 职业玩家行为方式的 NPC 引发了游戏圈的热议,甚至一些职业玩家也踏上战场与「自己」枪战了一把。

游戏已经成为了 AI 领域最重要的研究场景之一,国际象棋、围棋、Atari 游戏、《星际争霸》等 RTS 游戏和《王者荣耀》等 MOBA 游戏都被视为 AI 研究之路上的重要里程碑,而且这些里程碑的达成标准往往都是达到或超过人类水平。

但在《穿越火线》和《使命召唤》之类的 FPS 游戏(第一人称射击游戏)中, AI 研究却并不总以超越人类职业玩家水平为目标。毕竟以计算机程序的反应速度和精度,AI 在射击类游戏中达成枪枪爆头也实非难事。真正难的是让 AI 的行为表现与人类玩家不可区分。

AI 拟人化作为研究目标具有非常重要的意义。首先在游戏领域本身,更拟人化的 AI 可以显著提升玩家的游戏体验。对许多玩家来说,势均力敌的战斗之后的胜利才是最快乐满足的。为此 AI 既不能强如开挂,也不能呆若木鸡。试想一下,当你带着走位犀利的自信与一个 NPC(非玩家角色,俗称人机)遭遇而屡屡被一枪爆头时,你一定会产生一股想要摔手机或骂人的冲动。反过来,如果你正想表演一套犀利的操作时却发现 NPC 只是一动不动地站在那里或漫无目标地放空枪,那么就算你击败了它也不会有什么成就感。为了在强弱之间找到一个合理的平衡,需要对 AI 的开火率、命中率、击杀数/死亡数等指标之间进行调整,使之接近对应难度下玩家的水平。

同时在游戏领域之外,FPS 游戏拟人化 AI 也具有非常重要的研究价值。不同于总是通过俯视角进行的棋盘游戏和 MOBA 游戏等游戏类别,FPS 等第一人称游戏往往采用了三维立体的游戏场景,更类似于人类实际所处的真实世界。在这样的环境中训练出的拟人化 AI 更能反映人类在真实环境下的表现,从而可以帮助 AI 理解人类在真实环境中的行为,为以后的实际应用铺路。

FPS 游戏 AI 是腾讯 AI Lab 的一大重要研究方向,此前与清华大学 TSAIL 合作开发的 VizDoom AI 曾获得了该赛事历史上首个中国区冠军的好成绩。拟人化 AI 也在 FPS 手游《穿越火线-枪战王者(CFM)》春节期间上线的全新剧情玩法「电竞传奇」中得到了应用,这些学习了 CFM 职业玩家行为方式的 NPC 引发了游戏圈的热议,甚至一些职业玩家也踏上战场与「自己」枪战了一把。

观看视频:CF 职业玩家阿康对战 AI 阿康

腾讯 AI Lab 如何养成了这样的拟人化游戏 AI?下面我们就来一探究竟。

拟人化 NPC 养成之路

NPC 对游戏的重要性是不言而喻的,传统 NPC 的行为模式大都基于人工编写的规则,即在什么情况下给出怎样的反应都是预先设计好的。这样的 NPC AI 实现起来比较简单,但也让 NPC 的行为表现显得非常单调,玩家一旦摸索熟悉了它们的模式,就能通过「卡 bug」的方式轻松获胜,玩家甚至还能通过预测 NPC 的行为来「调戏」它们——这虽然也算得上游戏的乐趣之一,但这样的 NPC 终究行为单调,很容易让玩家生厌,无法持续获得良好的游戏体验。但同时,如果要通过人工编写规则的方式让 AI 具备拟人化的行为方式,将需要投入大量人力和时间成本才有可能实现,但这样的投入对于游戏行业而言是很不现实的。

近年来兴起的机器学习技术为游戏 AI 开发带来了新的思路:AI 可以通过学习人类玩家的数据来模拟人类玩家的操作,从而让 NPC 展现出更多样、更动态的行为模式。

方法选择

具体来说,腾讯 AI Lab 训练 CFM 游戏 AI 时采用了监督学习方法,即通过分析大量实际的游戏对局脱敏数据,分析人类玩家在不同的游戏场景输入下进行的操作(输出)。通过学习这些输入与输出之间的对应模式,AI 可以学会在不同的场景下以不同的概率采取不同的行为方式——有的行为模式更优,有的则是败笔,但它们综合起来却能让 NPC 表现得就像是另一个人类玩家一样。

由于腾讯 AI Lab 的目标不是打造竞技性 AI,而是拟人化 AI,所以没有必要使用游戏画面为图像的输入,直接接入游戏引擎会更加方便,因为游戏引擎可以提供地图、模式、玩家的操作、属性等关于游戏的全部信息。至于输出,很自然就对应于游戏界面上的各种操作(即动作空间),如下图所示:

动作空间

可以看到,CFM 游戏界面上存在多个可以同时进行的操作,包括左侧的移动和蹲伏操作,右侧的方向调整、开火、跳跃、扔雷等操作;因此,为了更优地同时完成各种任务,腾讯 AI Lab 采用了多任务学习方法。

输出有了,也确定了监督式多任务学习的方法,接下来就需要定义具体的特征,即输入数据中的各种变量。腾讯 AI Lab 将这些特征分成了两大类:属性特征和交互特征。游戏中的活动单元称为 unit(单位)。属性特征是指每个单位的状态,交互特征则用来描述单位之间的相互关系。特别地,单位与游戏中的环境之间的相互关系也归为交互特征。游戏中的掉落物,如敌人被击杀后掉到地上的武器,属于环境的一部分。

状态空间

最后也可能是最难的一步准备工作是确定拟人化的评估指标。不同于以胜负评定优劣的指标,拟人化并不存在单一的量化指标。为了让 AI 具备与人类玩家更相似的行为,腾讯 AI Lab 整合采用了多个维度的指标:

拟人化指标举例

模型学习

准备工作就绪之后,腾讯 AI Lab 首先在 1v1 对战模式验证了该思路的可行性。训练过程使用了几十万真实玩家对局数据(已脱敏),并采用了如下网络结构:

1v1模型结构

所得到的模型在行走、跳跃、开火方面的行为与人类相似,但是在同一环境下的表现总是一样,缺乏多样性。通过采用一种概率分布采样法,让 AI 在相同情况下也有不同的概率选择其它不同的操作,从而解决了这一问题。

1v1 对战模式取得了初步的成果后,战场被转移到 5v5 团战中。相比于 1v1,团战的环境更为复杂。主玩家有 4 个队友和 5 个敌人,涉及到攻击/躲避目标的选择,甚至还有和其它队友的协作。为此,腾讯 AI Lab 增加了队友、敌人特征(血量、位置等),玩家分别和队友、敌人的交互特征(与目标距离、视角角度等),期望模型可以学习到游戏数据中的真人操作。

模型的训练采用了上百万局训练数据(已脱敏),并使用了以下经过改进的网络结构:

5v5模型结构

可以看到,相比于 1v1 模型,5v5 模型增加了用于选择敌人的模块,该模块还添加了历史信息,使 NPC 能更加适当地应对当前的状况,比如重点关注当前视野内的敌人、在受到视野外敌人的攻击时会转身对敌。

模仿职业玩家的 NPC

在「电竞传奇」玩法中,你能看到一些 CFM 职业玩家的名字,比如国宝、蛮蛮、阿康,但当然你的对手自然不是真正的国宝、蛮蛮、阿康,而是学习了这些职业玩家玩法的 NPC。

不同于上面训练 1v1 和 5v5 模型使用了数十万乃至上百万局游戏脱敏数据,蛮蛮的替身 AI 只用到了几局数据。

首先,腾讯 AI Lab 分析了这几局数据中蛮蛮的行为特点,比如点位分布:

蛮蛮的点位分布,这是分属两边阵营时的情况

由于数据较少,腾讯 AI Lab 还从已有数据中选取了类似行为模式的数据而对其进行了扩充,使得扩充后的数据模式与蛮蛮的相似。然后再基于这些数据训练得到了「AI 蛮蛮」,下面是 AI 蛮蛮的实战表现:

观看视频:CFM 职业玩家蛮蛮对战 AI 蛮蛮

实战评价

在实战测评中,我们在体验服上组织核心玩家群体进行了“行为测试”,新 AI 在射击水平、走位、躲避等多样化的行为等纬度为玩家带来了惊喜,AI的综合行为表现击穿了玩家对于传统FPS机器人的刻板印象,带来的实际体验远超玩家预期。

2020 年春节,以新AI表现为基石,推出的全新的剧情玩法「电竞传奇」首日用户渗透率、首日留存创近两年新高。AI 国宝、AI 蛮蛮等话题也在 CF 手游社区成了热门讨论话题。

总结

CFM 的拟人化 NPC 虽然备受好评,但还远不够完美,不管是在训练方法还是指标选取上都有进一步的优化空间。另外,腾讯 AI Lab 也在探索能否在《使命召唤》等大型开放式地图中训练出拟人化 FPS 游戏 AI,这种 AI 不仅需要学会刚枪,还要学会观察地图地形、跑图、合理搭配装配、使用载具以及进行攻击或躲藏的策略等。也许未来带你猥琐发育、“狗”「吃鸡」的队友就是一个看起来与人类玩家别无二致的 AI。

今日直播预告《健康码背后,腾讯慧眼高可用架构设计》

腾讯“防疫健康码”于2月9日率先落地深圳后,一个月累计访问量破60亿。而民众申领健康码过程中的“人脸识别登录验证”,有着高准确率的要求。在如此大流量高准确率的要求下,腾讯慧眼高可用架构是如何设计的呢?架构如何分层?如何容灾兜底?如何提升引擎准确率?引擎中台在其中扮演着怎样的角色?

云+社区沙龙online将在4月23日晚上8点直播,为您揭晓答案!

点击图片进入直播间

百万局对战教AI做人,技术解读FPS游戏中AI如何拟人化相关推荐

  1. 游戏中AI自由寻路,追随玩家,绕开障碍物(基于unity实现)

    游戏中AI自由寻路,追随玩家,绕开障碍物(基于unity实现) 前言 主要实现功能 主要代码分析 游戏运行效果 动手操作 结语 前言 本博客中采用的寻路算法主要为A星算法,A星算法主要实现代码借鉴他人 ...

  2. 技术分享:游戏中的 2D 可见性

    2D的俯视图经常用于从给定点计算可视区域.例如,你可能想把某些东西隐藏在玩家看不见的地方,亦或你想知道点燃火炬后能看见什么地方. 拖动圆点转一圈,看看玩家都能看到些什么: 这个算法也能计算出给定光源所 ...

  3. 宝钢技术解读李彦宏AI公司三原则:百度AI让钢铁行业降本增效提质

    9月17日,百度创始人.董事长兼首席执行官李彦宏在2018世界人工智能大会上提出了三位一体的AI公司原则,引起了各行各业人士的热议.一名来自宝钢技术的人士就表示,AI企业是AI技术的早期采用者和AI领 ...

  4. 游戏中的人工智能AI设计

    因为在现在的项目中花了很大精力设计和制作怪物AI和技能,所以在这里也做个小总结. 什么叫做游戏中的AI        游戏中的AI可以简单的理解为计算机控制的智能角色,这些智能角色能够通过周遭环境或者 ...

  5. 基于AI视觉技术构建柔性生产数字化车间

    当前中国快速进入老龄化社会,人口红利逐渐消失,企业用工难招工难日益显著.面对当前困局,为继续推动中国从制造大国走向制造强国,需要加快建设数字化车间,用自动化设备替代繁重的人工劳动,实现生产的智能化和信 ...

  6. “ZAO”火爆背后的AI换脸技术有多可怕?隐私泄露?法律风险?

    30日晚间,一款名为"ZAO"的换脸社交软件在朋友圈刷屏,不少科技圈人士坦言"刷了一整夜",而ZAO的创始人正好为陌陌总裁.首席运营官王力. 陌陌还推出了哈你. ...

  7. 网易游戏人工智能实验室分享:游戏中应用的AI技术

    在2019网易游戏开发者峰会上,网易游戏人工智能实验室技术总监Weldon Zhang,分享了人工智能实验室在游戏AI上的探索和成果,对游戏中应用的AI技术进行了盘点. 总体来看,AI技术可以在游戏中 ...

  8. 深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南

    前言: 现如今,所有电子游戏都离不开AI的运用,对于游戏策划而言AI是什么,AI又是如何运作,可以说是面试时的加分项,本文在这里不探讨理论的AI(采用深度强化学习的智能AI,如腾讯AI Lab.网易伏 ...

  9. 游戏中的AI算法总结与改进

    一.人工智能的定义 人工智能(AI,Artificial Intelligent),指的是通过算法编程使计算机模仿人完成一些像人一样的任务,同时在执行任务时模仿人的思维和智慧,甚至通过大量学习训练积累 ...

最新文章

  1. grunt-connect-proxy解决开发时跨域问题
  2. day2编写购物商城(1)
  3. 北京卫生中级英语计算机考试成绩查询,2019年北京卫生专业技术资格成绩查询时间及入口...
  4. Thread Join 讲解
  5. [USACO07NOV]牛继电器Cow Relays
  6. 什么时候使用resulttype_ResultMap和ResultType在使用中的区别
  7. java使用内部类的好处及其初始化
  8. ecg 幅度_用ECG和PPG测血压靠谱吗?有什么比较好的算法?
  9. 零代码实现接口自动化测试-RF框架实践
  10. opencv-python 测试FPS
  11. 手把手教你用tensorflow2.3训练自己的分类数据集
  12. android 实现广告弹窗,Android实现自适应屏幕的弹窗广告
  13. 迪赛智慧数——折线图(渐变堆叠图):国内智能快递柜营收规模及增长率
  14. K近邻的MATLAB实现
  15. matlab读ascii的dat,[转载]MATLAB读取和调用各种数据(txt,dat,ma
  16. 如何获取ffmpeg返回的错误信息
  17. Linux 下 strace 命令用法总结
  18. (自用)java博客作业3 Java抽象类
  19. vs2013中带命令行参数的调试方法
  20. 不装了,我也是有爹的

热门文章

  1. 光伏发电对系统冲击大 “十三五”电力规划重点增强调峰能力
  2. mysql5.7.14多实例安装
  3. js中的prototype的理解
  4. Python-crawler-citeulike
  5. CCNA学习指南第二章
  6. CodeForces - 375D Tree and Queries(树上启发式合并)
  7. MyBatis配置错误
  8. ZOJ2112(区间动态求第K大)
  9. 逆向工程核心原理读书笔记-API钩取之IE浏览器连接控制
  10. TCP 和 UDP 绑定同一端口通信的解释