机器学习正在改变几乎每个行业,从农业中的作物规划到医疗保健中的癌症诊断。这些主题通常会得到更广泛的讨论,因为它们已经产生了切实的,对人类有益的影响。对于游戏行业而言,不幸的是,游戏开发中的机器学习仍处于起步阶段,而且还没有以同样的方式成为头条新闻。在本文中,我探讨了机器学习将如何革新游戏开发。

要了解游戏产业的规模,根据Newzoo的《全球游戏市场报告》,到2018年底,视频游戏产业的全球市场价值将达到1390亿美元,已经远远超过电影和音乐产业的总和。

游戏行业收入比较

结合移动游戏,平台游戏和PC游戏,视频游戏在全球已达到23亿游戏玩家。2018年,全球超过四分之一的人口玩了电子游戏。这使游戏成为有史以来影响最广泛的娱乐方式之一。

游戏中的头部内容可以为游戏开发公司赚取数十亿美元。例如,侠盗猎车手V是有史以来最赚钱的娱乐产品,收入达到60亿美元,在总收入方面超过所有电影,电视节目和音乐。侠盗猎车手(Grand Theft Auto)的成功以及其他热门游戏(包括《愤怒的小鸟》(Angry Birds)或《糖果粉碎》(Candy Crush)等其他热门游戏的成功,很大程度上取决于游戏可以如何建立世界,吸引玩家并提供数十小时或数百小时的独特可玩内容。

游戏开发中的机器学习

对于那些尚不清楚机器学习是什么的人。机器学习是系统无需明确编程即可从经验中学习和改进的能力。机器学习也被普遍称为AI,是构成“人工智能”的技术的子集。

过去五年来,机器学习迅猛发展的原因是GPU处理速度的重大提高以及机器学习和深度学习算法可获取的巨大数据量。

因此,机器学习可能会对游戏的开发方式产生巨大影响。为了寻求更现实的世界,引人入胜的挑战和独特的内容,视频游戏开发商店越来越多地将机器学习作为游戏开发中的有用武器。机器学习算法可以动态地响应玩家的动作。尽管现代视频游戏中的所有内容都必须手动编写脚本,但是具有机器学习引擎的视频游戏可以根据玩家的行为和决定做出反应并改变世界,非玩家角色(NPC)或对象的实时行为。使通过机器学习开发的游戏能够更动态,更富想象力地对玩家做出反应和响应。

机器学习将使游戏变得更加动态

游戏人工智能

为什么游戏开发者希望在游戏开发中使用人工智能?机器学习卖手机游戏可以通过多种方式解决游戏开发中的两个基本问题:

1.与人类玩家(组队或对抗)一起玩游戏。

2.帮助玩家动态构建游戏。

我们将在下面的每个类别中探讨潜在的解决方案,但是通常,机器学习算法可以减轻人类游戏开发人员当前需要执行的许多工作。如果我们可以为非玩家角色(NPC)开发可靠的算法,则它们的控制和独特环境的构建都可以实现自动化。

机器学习在游戏中绝对有希望,但是我们还差得很远。Epic Games首席执行官蒂姆·斯威尼(Tim Sweeney)表示:“[视频游戏]AI仍处于黑暗时代。

但是,一旦机器学习成熟到可以在游戏中可靠使用的水平,它就可以从许多方面从根本上改变游戏体验:

1、非玩家角色(NPC)是算法

目前,您在视频游戏中的对手是预先设定的NPC(非玩家角色),但是基于机器学习的NPC可以让您与难以预测的敌人对抗。这些敌人也可以调整其难度等级。当您学习玩游戏时,您的敌人会变得更聪明,并根据您在游戏中的动作以独特的方式做出反应。

公司已经在研究基于机器学习的NPC的早期应用。SEED by EA通过模仿顶级玩家来训练NPC。它的NPC学习动态动作和行为,并使用人类玩家的动作作为训练数据,这意味着该算法的训练速度比单独的强化训练快四倍。

可教学的NPC对于游戏开发而言是一项不小的改进。当前,游戏工作室花费大量工时编写NPC脚本。不对NPC进行硬编码可能会大大缩短游戏的开发周期。从几周到几小时。

2、复杂系统建模

机器学习算法的优势在于其对复杂系统建模的能力。视频游戏开发人员一直在努力使游戏更加逼真和逼真。当然,对现实世界进行建模非常困难,但是机器学习算法可以帮助预测玩家动作的下游影响,甚至可以对玩家无法控制的事物(例如天气)进行建模。

FIFA的最终团队模式是当前正在生产的复杂建模的一个示例。当您选择全明星球员的球队时,FIFA会根据您的球队中的性格相处与否来计算球队的化学得分。在比赛中,如果您输了或犯了小错误,团队士气可能会下降。当人群欢呼而您的状态良好时,它也会激增。士气的变化会影响玩家的游戏能力。当士气低落时,会出现更多的错误,而当您的团队表现良好时,技能击球和幸运的破门会更加频繁。

3、使游戏更漂亮

使游戏更逼真的另一个要素是使游戏看起来更漂亮。游戏开发人员也在这方面使用机器学习。在视频游戏中,远处的情况通常看起来不错,但是当您靠近物体时,物体的渲染效果很差,并且变得像素化。

Microsoft正在与Nvidia合作解决此问题。他们正在使用机器学习来动态增强图像和渲染效果。在现实生活中,当您远离物体时,细节并不清楚,但是当您接近时,您会注意到更精细的细节。动态呈现更精细的细节是计算机视觉算法可以帮助解决的挑战。

4、更逼真的互动

建立现实的虚拟世界的另一个主要挑战是玩家如何与友善的NPC互动。在许多游戏中,您需要与脚本角色交谈才能完成目标。但是,这些对话的范围是有限的,通常遵循屏幕提示。

使用自然语言处理可以使您大声说出游戏中的角色并获得真实的响应,就像与Siri,Alexa或Google Assistant交谈一样。此外,结合了VR触觉或玩家影像的游戏可以允许计算机视觉算法检测肢体语言和意图,从而进一步增强与NPC交互的体验。

5、即时的世界创造(Universe Creation on the Fly)

机器学习在游戏开发中最有前途的应用之一是即时创建世界。迄今为止,一些最受欢迎的视频游戏是开放式地图游戏,可让您探索广阔的风景。这些游戏需要数千小时的开发人员和艺术家时间来渲染。但是,机器学习算法可以帮助寻路和创建世界。例如无人天空之类的游戏,其中包含无限数量的新世界供您探索,所有新世界在您探索时都会产生。

6、更具吸引力的手机游戏

手机游戏占全行业游戏收入的50%。手机或平板电脑上的游戏在出现停机时间时很容易就能拿起并玩,而无需专用控制台。过去,手机游戏的范围受到限制,因为您的手机没有控制台或PC的处理能力和图形。但是,随着增加了专业处理能力的最新智能手机中的AI芯片,这些限制开始改变。上面讨论的机器学习的许多好处将可用于移动游戏,并且硬件在不断改进,从而使移动游戏更加逼真,互动和身临其境。

机器学习将永远改变游戏

游戏开发中机器学习的未来

游戏中机器学习应用仍然面临着重大挑战。一个主要的挑战是缺乏可供学习的数据。这些算法将对复杂的系统和动作进行建模,而对于这些复杂的交互作用,我们还没有很好的历史数据。另外,为游戏行业开发的机器学习算法需要万无一失。他们无法破坏游戏或玩家体验。这意味着算法必须正确,但从玩家的角度来看,它们也必须快速无缝。任何延迟或中断游戏的因素都会破坏玩家在游戏创造的世界中的沉浸体验。

也就是说,大多数主要的游戏开发工作室都有团队研究,完善和将AI应用于他们的游戏。这是许多公司正在努力解决的挑战,因为它提供了令人兴奋的机会,将视频游戏扩展到新的视野,为玩家提供了更加逼真的体验和更多可玩的内容。

机器学习将在游戏开发中的6种应用相关推荐

  1. AI技术在游戏开发中的五种有效尝试

    AI,即人工智能(Artificial Intelligence) ,当下处于风口浪尖的AI莫过于谷歌推出的AlphaGO(阿发狗).其实作为玩家在游戏中最为常见的对手,几乎每一个游戏里面都有AI的存 ...

  2. 一些语法在游戏开发中的应用

    一些语法在游戏开发中的应用 一.减少不必要的全局变量 二.动态二维数组 三.整数转换为字符串输出 四.播放音乐模板 一.减少不必要的全局变量 游戏开发中有些变量只需要在少数函数中传递,修改数值.如果不 ...

  3. J2ME游戏开发中时钟的简单实现

    在java.util包中有一个TimerTask类,你可以扩展这个类并且实现他的run()方法,在run()方法中编写我们的逻辑代码.如果我们想制作一个游戏时钟,那么非常简单我们编写一个GameClo ...

  4. Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(

    2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...

  5. Android游戏开发中绘制游戏触摸轨迹的曲线图

    本篇文章主要来讲解怎样绘制游戏触摸轨迹的曲线图. 我们在onTouchEvent方法中,可以获取到触摸屏幕时手指触摸点的x.y坐标,如何用这些点形成一条无规则轨迹并把这条无规则轨迹曲线显示在屏幕上就是 ...

  6. [C++基金会]位计算 游戏开发中的应用

    定义的位操作:通俗点说,,位计算是计算机操作二进制整数. 无论整数可以用二的方式来表示进度,不同类型的其长度的整数位的是不一样的.INT8要么char靠8个月2 位表示,INT16或者short是由1 ...

  7. 游戏开发中的数据表示

    声明:本文内容源自腾讯游戏学院程序公开课_服务端 一.数据表示的基础 什么是数据表示? 数据是信息的载体. 数据表示是一组操作,可以描述.显示.操作信息. 数据表示的要素 IDL - 接口描述语言 I ...

  8. 手把手教你架构3d游戏引擎pdf_游戏开发中的算法

    游戏技术这条路,可深可浅.你可以满足于完成GamePlay玩法层面的东西,你也可以满足于架构和框架设计层面的东西,你也可以醉心于了解某一游戏引擎带来的掌控感.但是,我们不该止步于此,止步与目前所见或所 ...

  9. [命令模式]在游戏开发中的应用

    设计模式中的每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动. 一个设计模式,它的服务对象是高层模块,在设计模式中称为客 ...

最新文章

  1. Mysql分页order by数据错乱重复
  2. exp()用法和点乘的原因
  3. C 线程池(不稳定的方案)
  4. 小学生python入门-小学生都开始学的Python编程到底是什么?
  5. MYSQL 联表查询 ORDER 效率低?
  6. (58)模拟线程切换——添加挂起、恢复线程功能
  7. VB.NET启动外部程序
  8. 爬虫笔记(十二)——浏览器伪装技术
  9. [Javascript]XMLHttpRequest对象实现下载进度条
  10. Javascript数据类型共有六种
  11. 统计数据库中各个表和空间使用情况
  12. ASP.NET 备忘
  13. Chapter 6. MATLAB数值计算基础
  14. 软件定义网络入门学习笔记3-学习第一个ryu app-simple_switch_13.py
  15. 太厉害了,阿里大牛把Java服务端做成一张超全的知识微缩地图
  16. 网页调用QQ客服的API
  17. UVM:filed_automation
  18. python列表索引超出范围 等于啥_Python列表错误,列表索引超出范围
  19. Striped64 深入源码解析
  20. 性能指标:队列深度、IOPS与时延

热门文章

  1. rk3399硬件设计指南_CMMI2实施过程系列-系统设计
  2. 存储过程排版工具_我的绘图工具箱
  3. python实验三答案_20194123 实验三《Python程序设计》实验报告
  4. 树形结构:二叉排列树,二叉搜索树
  5. 【ABP框架系列学习】模块系统(4)
  6. 高德地图-轨迹回放(二)
  7. python日记----2017.8.1
  8. 定义任务打印gradle下载的jar包位置
  9. 九度 1462:两船载物问题(01背包)
  10. 通过实现继承TabActivity并且实现TabContentFactory的方法创建选项卡的一点心得