1、引子

近年来,游戏AI已从一种“伪智能”迭代成了真正的人工智能。3年前AlphaGo的成功只是证明了AI技术在游戏领域取得了巨大的发展,但另一方面AI技术对整个游戏行业的帮助仍然不足,还有很大的挖掘空间,一个重要的方向——帮助玩家提高游戏体验,例如:AI玩家与人类玩家新的游戏模式、更仿真的NPC等等;另一个重要的方向——帮助游戏制作提高效率,例如:减少规则和行为树的编码难度、游戏测试、关卡生成等。

在这篇文章中我们重点介绍AI是如何提高游戏测试的效果和效率。

2、游戏测试中的挑战

传统的游戏开发技术已经足够成熟,但仍然无法应对今天游戏行业的高速迭代带来的挑战。

当需要测试的场景包含较多策略内容时,传统的测试方式就显得有些力不从心。常规自动化测试手段几乎只能用来保证游戏能够正常运行,而无法对游戏的可玩性进行可靠、高效的测试。

有些团队最初会使用一些基于规则的测试用例或机器人辅助测试工作,然而简单的规则通常无法充分测试游戏场景,甚至无法通关;复杂的规则又会带来巨大的维护成本。随着开发期间游戏内容的不断调整,最终不得不依赖效率相对较低的人工方式完成测试工作。

不仅如此,规则较为复杂的游戏,例如卡牌类,战棋类游戏,将会产生巨量的策略组合,凭人力极难有效覆盖所有场景。

游戏上线前的Beta测试是游戏正式上线前的重要环节之一,这项工作完全依赖参与的玩家完成。受限于参与测试玩家的水准和种种主观因素,不仅反馈周期长,测试基准和结果基本上只能通过经验筛选判断。

3、如何在测试中应用AI技术

近年来迅猛发展的AI技术,为解决测试工作中的困境带来了新的可能性。使用深度神经网络、强化学习等技术创造出的AI智能体能够像高水准的玩家一样应对复杂游戏策略,协助QA充分的完成复杂场景的测试。

通过用户数据,AI也能够模拟出不同水平玩家的真实行为,很大程度上能够替代人类玩家进行大规模测试,充分覆盖测试场景,缩短反馈调整周期。

不仅如此,由于神经网络的泛化性,AI只需要很少的调整就能应对游戏升级带来的改变,极大减少维护成本。并且AI具备可复制,可加速,测试结果稳定等特性,这些都是传统测试方法不可能做到的。

4、成功案例

自动化测试的优点在于速度快、规模大,引入AI技术的自动测试也不例外。在下面的案例中,测试工作都可以在分布式环境并行执行。游戏本身都是运行在容器中,AI智能体通过程序接口控制游戏的操作,从而模拟用户的行为。

在分布式环境测试游戏时,游戏运行在容器池中

AI技术在经历了学术派的游戏模拟器之后,新的行业应用往往是直接与游戏通讯,从而测试游戏的设计问题、数值问题、发现bug等等。

案例1:Cygames的卡牌组合测试

Shadowverse是一款由日本Cygames发行的卡牌游戏,从2016年发行至今一直热度不减,一个重要的原因是这个游戏每三个月就会加入一个新的卡牌包,让玩家一直有新鲜的游戏体验。

需要经常新增卡牌来保持游戏热度

如何测试新卡牌是一个难题。对于卡牌游戏来说,二手QQ卖号一张新卡牌被设计出来之后,它被采纳的前提是能融入旧卡牌构成的系统,即和其他卡牌配合时没有bug、不会破坏数值系统的平衡。而卡牌游戏有极其复杂的玩法,例如2个玩家,一局游戏需要5轮操作,一共10步,每步可选10张卡牌,那么就一共有100亿种玩法可能。更何况真实的游戏远一步就有多种操作,组合更加复杂。因此,传统的QA测试方法耗时耗力,严重影响游戏开发。

研究部门Cygames Research提出用神经网络技术解决测试卡牌组合的问题。他们收集了大量的游戏日志,这些日志记录了玩家们是怎么玩这个游戏的。然后把这些日志转化为可以用于训练神经网络的数据,训练出一个可以玩这个游戏的AI。AI的水平和训练数据相似,再经过复制得到很多AI。

神经网络可以复制,达到加速测试的目的

接下来,这些AI们就可以自动化地在加入了新卡牌的新游戏中无限地每时每刻地进行游戏对局,去发现bug和强大到不平衡的某种玩法,开发者再根据这些反馈修改或重新设计。这种方法极大地提高了效率,节省了大量的开发成本。

案例2:蒙特卡洛科技的游戏难度测试、数值微调测试

蒙特卡洛科技的自动测试框架是针对国内某著名游戏公司的一款三消游戏。三消游戏是一类广受欢迎的休闲游戏,除了精美的画面,关卡的难度变化极大地影响了游戏是否成功:过低的难度会被认为毫无挑战,过高则很容易挫伤玩家的积极性。然而,不幸的是难度这一指标线的较为主观,通常对难度的评价只能依赖经验丰富的策划人员,或是玩家的反馈。

针对测试游戏难度的问题,蒙特卡洛科技提出的解决方案是用AI技术测试过关步数。通过统计过关所需要的操作次数会获得一个步数的分布图,游戏限制的步数越少,难度就越难,过关的人数就越少。

三消游戏自动测试框架中,使用过关步数评估游戏难度

AI技术做自动测试的意义在于缩短测试周期。由于游戏本身的随机性很强,策划和QA的人工测试为了遇到各种运气场景,就需要更大量的测试。据计算,人工在100个关卡上的充分测试需要超过5人月,因此在传统的开发周期中测试往往被弱化。而AI技术可以在集群中计算,将这一过程缩短至数小时。

这个项目另一个有趣的拓展是辅助数值体系设计。由于三消游戏不断加入新的游戏元素,是数值体系设计的一部分。自动测试平台加速了对关卡的难度评估,也就缩短了数值体系设计的周期。

游戏策划提交正在修改的游戏之后,系统把先前在线上版本中训练好的AI智能体复制到集群中。由于新的游戏版本有差异,智能体在测试过程中需要用强化学习技术适应一段时间,AI技术的这种适应新版本的能力称为泛化能力。

适应后的AI智能体的游戏水平与线上玩家的水平仍是相似的,因此在新版本上获得的测试报告可以近似认为是线上玩家的测试反馈。数值策划根据报告修改数值,形成一个完整的测试闭环。

数值优化加入自动测试环节

对于游戏制作而言,数值策划微调数值体系是个很普遍的工作,除了经验和模型之外主要依赖测试。除了玩家反馈的感受之外,存在一些客观指标可以使用自动测试辅助设计,例如PVP胜率、通关时间、与氪金的比例等都是可能的自动测试指标。

除了三消游戏之外,如何加快数值调整的过程,蒙特卡洛公司称目前正在积极探索之中。今时今日,机器学习领域层出不穷的成果勾勒出的线条似乎让我们看到了未来游戏和游戏开发行业的的雏形。长久以来几乎没有太大变化的游戏AI体系,在人工智能大潮的冲击下有了无限的可能性。蒙特卡洛更期待期待能够在与游戏行业的持续合作中继续探索,寻找人工智能时代游戏领域的入口。

4、总结和展望

游戏行业有许多产品正在走向精品化,用户也越来越挑剔;游戏的制作过程、测试过程也正在走向细致化的道路。而在测试过程中引入的AI技术,正是一种把传统QA测试中的不可能变为可能,并且极大提高生产效率的手段。

除此之外,新的AI技术也在渗透到传统基于行为树的游戏AI中,使NPC、队友、对手更加智能。长久以来几乎没有太大变化的游戏AI体系,在人工智能大潮的冲击下有了无限的可能性。AI在游戏中的使命不再仅限于保证游戏体验,在模拟人类、增强游戏可玩性、提高游戏设计效率方向上有了更多的要求。相信除了IP因素之外,游戏内容的智能化也将是人工智能时代游戏领域的新热点。

作者简介

朱天驰,曾任百度基础架构部和云架构部高级工程师,现任蒙特卡洛科技(北京)有限公司首席极客,游戏AI从业者。关注机器学习和人工智能技术,并致力于数据和AI驱动的游戏行业的应用。

利用AI技术自动测试游戏相关推荐

  1. 浅谈利用NLG技术来进行游戏自动化(生成随机剧情随机对话)的可行性

    目录 背景 NLG(自然语言生成) 文本到文本生成 数据到文本生成 图像到文本生成 NLG模型的对比 NLG在游戏自动化的可能应用 根据UI图片来生成描述文本 根据背景或开头来生成剧情 根据背景或开头 ...

  2. 利用AI技术释放网络应用创新

    方案一览 利用AI技术释放网络应用创新 结合英特尔® 至强® 可扩展处理器添加的新指令和高性能软件框架,实现了网络工作负载的实时AI能力 方案概要 英特尔在AI领域推动芯片和软件技术的进步,降低了网络 ...

  3. 案例分享 | 某券商利用AI技术进行告警关联分析(上)

    本内容来自公众号"布博士"------(擎创科技资深产品专家) 背景: 作为大型券商企业之一,某券商对深入数字化转型,以及对应用.网络.主机.操作系统.中间件.用户使用体验等的全面 ...

  4. On the Effectiveness of Visible Watermarks 利用AI技术去除图像水印

    我的个人微信公众号: Microstrong 微信公众号ID: MicrostrongAI 微信公众号介绍: Microstrong(小强)同学主要研究机器学习.深度学习.计算机视觉.智能对话系统相关 ...

  5. 【风险评估】利用AI技术实现智能安全风险评估与预警

    作者:禅与计算机程序设计艺术 风险评估 利用AI技术实现智能安全风险评估与预警 随着信息技术的飞速发展,网络安全日益严峻.为了保障企业的信息安全,风险评估工作显得至关重要.传统的风险评估方法主要依赖于 ...

  6. Nature 机器智能综述:AI如何自动生成游戏

    近年来,很多AI技术的突破都离不开游戏的影响,不论是古老的围棋还是即时战略类的星际争霸都体现着这样的交融.同时,游戏和AI的跨界合作,还在通过算法,生成新的游戏规则上有所展现,从而让机器学习的算法,具 ...

  7. AI时代的赚钱思路:23岁女网红如何利用AI技术年入4亿?

    一.AI技术为网红赚钱创造新途径 23岁美国网红Caryn Marjorie(卡琳·玛乔丽)正同时交往1000多个男朋友. 作为一个在Snapchat上坐拥180万粉丝的美女,她利用人工智能(AI)技 ...

  8. 利用VSTS工具自动测试

    一.选择开发工具 由于小组成员平时写代码都是用C语言或C++,所以我们选择visual stdio 2017作为小组的开发工具. 在产品中选择适用于学生.开放源代码和个体开发人员的免费.全功能型 ID ...

  9. 码code | 利用AI技术,你的小程序也能图文识别

    近日,明星旧照修复图在网络上引发热议,在打拐方面也有凭童年照找到被拐儿童的技术突破,这些看似天方夜谭的操作均由AI实现.如今AI技术发展迅猛,市场接受度也较好,开发者可以将其视作提升自身小程序的一个契 ...

最新文章

  1. 目前的计算机还没有实现真正的智能
  2. python 作用with_即使__init__方法有效,Python中的With语句仍返...
  3. Python-数据结构(二)
  4. android 蓝牙设置平板电脑,java – BlueCove,笔记本电脑和带蓝牙的Android平板电脑
  5. Java枚举:您拥有优雅,优雅和力量,这就是我所爱!
  6. 数据库_day03_对数据库的基本操作
  7. sql 触发器未触发_SQL触发器–综合指南
  8. Pytorch实现Transformer字符级机器翻译
  9. js高级学习笔记(b站尚硅谷)-6-IIFE
  10. window.print设置目标打印机_愿得一人心,白首不相离, 极印手机照片打印机入手体验...
  11. Lena——计算机视觉中的女神被人忽视的部分
  12. volatility内存取证
  13. 游戏外挂,其实是一门网络技术
  14. Linux文件编辑常用命令
  15. Flutter 2020/2/18 来到app登录界面
  16. AndrOid系统亭子运行,细讲Android系统下的Preference
  17. 菜鸟笔记--函数基础
  18. WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。
  19. html5图片并排显示图片,HTML5 - 并排显示项目
  20. 朴素贝叶斯(西瓜数据集分类,社区恶意留言分类,垃圾邮件分类,新浪新闻分类),AODE分类器 代码实现

热门文章

  1. e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过
  2. cocos2d python文档_【Cocos2D-X 学习笔记】Cocos2D-x 3.0+VS开发环境搭建[使用Python]
  3. PyTorch基础-softmax函数mnist数据集识别-03
  4. ThinkPHP5.0中报错could not find driver的解决方式
  5. iOS项目之同时点击多个按钮解决方案
  6. 关于一些对location认识的误区(转)
  7. HDU4421 Bit Magic 【2-sat】
  8. RDLC报表系列(二) 行分组
  9. C#操作数据库,DataSet,DataGridView,更新数据库 [一] - ADO.NET入门之中
  10. vim为何打开文件乱码,而且之后setenc还是乱码?附带实用vimrc一份