译者 | 李梦
编辑 | Vincent
AI前线出品| ID:ai-front

AI 前线导语:“在 RTS 游戏中进行 AI 研究有着悠久的历史。在过去的十多年里,研究人员一直致力于构建能打败最强人类玩家的机器人,但是要走的路还很长。在 2016 年的暴雪嘉年华,DeepMind 和暴雪宣布合作,将为星际争霸 2 的 AI 研究开放 API。

本文旨在讨论 RTS 游戏的一些发展进程,以及 AI 研究在其中的贡献。要想详细了解 RTS 游戏相关研究,还请查看 Ontañon、Robertson 和 Watson 等人的文章”。(详见文末)

过去的十年里,研究人员已经从在 RTS 游戏中独立研究不同的 AI 技术过渡到了在更复杂的游戏中通过合作和竞争将不同的技术相互匹配。为了这项工作顺利进行,需要以下条件:

  • 研究人员构建和评估机器人的开放 API
  • 可以让研究人员对比不同技术的竞赛
  • 用于训练学习算法的录制回放
  • 人类选手对机器人的性能进行评估

在 2009 年发布的母巢之战 API 中以上大部分的条件都得到了满足,但由于平台的封闭特性使研究人员很难将 AI 系统的训练过程自动化。随着星际争霸 2 环境的公开,研究人员将有机会开发一种能够在 RTS 游戏中表现出专家级性能的系统。下面一些是我认为的在朝着这一目标的发展历程中的重大事件。如果有疏漏还请在评论里留言。

1998

星际争霸 1 的发布

星际争霸原作是在 1998 年 3 月发布的,资料片母巢之战也于同年 11 月发布。它迅速风靡全球,并在韩国引发了职业游戏的热潮。

Freecraft

在星际争霸之前,1995 年发布了魔兽争霸 2。魔兽争霸 2 的克隆版 Freecraft 也在 1998 年首次发布,它后来更名为 Wargus。这个克隆版构建在 Stratagus 游戏引擎上。Freecraft 是 RTS AI 研究的一个重要项目,因为大部分的初始工作都以 Wargus 作为实验平台。

2001

学术界对游戏 AI 的兴趣

游戏 AI 的一篇重要文章是 John Laird 和 Michael van 在 2001 年发表于《AI Magazine》的文章 Human-Level AI’s Killer Application Interactive Computer Games。这篇文章意义重大,因为它是 AAAI 的出版物中第一批认识到实时游戏可以作为 AI 研究的良好环境。它还改变了学术研究人员试图将现有方法应用于游戏的心态,转而考虑为游戏构建全新的和专门的方法。

2002

魔兽争霸 3 发布

魔兽争霸 3 的一大特色是高度可扩展的地图编辑器,它被用来创建独特的内容,比如最初版本的 DOTA。地图编辑器还拥有一些脚本功能,可以用来编写自定义 AI。然而,以这种方式编写的 AI 仅局限于单一地图,脚本语言也仅向作者提供了一个命令子集。研究人员可以在这个框架内实现他们的 AI 技术,但不可能用不同的机器人互相测试。

2003

RTS 游戏被推荐为 AI 测试平台

2003 年,Michael Buro 和 Timothy Furtak 发表了一篇文章称 RTS 游戏提出了许多构建人类水平的 AI 时需要解决的新颖问题。他们还提议开发一个开源的 RTS 游戏引擎提供给 AI 研究社区使用。

星际争霸中的状态估计

2004

ORTS 发布

接下来一年,Michael Buro 就发布了第一个版本的开源 RTS 引擎——ORTS。这个游戏在图形和非图形模式下都可以运行,这让机器人可以在成千上万的游戏过程中快速训练。而使用 ORTS 的一个主要挑战是,虽然它为人类玩家提供了一个交互界面,但是没有专家级的人类玩家对机器人进行对抗评估。

ORTS 游戏引擎

第一次 Wargus 研究

Freecraft 更名为 Wargus,它使用 Stratagus 游戏引擎。Wargus 的主要优势之一是它的开源,这为研究人员打开了一个平台,让他们可以使用任何技术进行探索。Wargus 面临的挑战是缺乏可以用来分析的录制回放,它没有活跃的玩家基础,而且在测试机器人的互相对抗受到网络代码的限制。在使用 Wargus 作为 AI 测试平台的文章中,Marc Ponsen 是最早的发表者之一。

TIELT 的提出

在 2004 年提出的另一个 AI 项目是 TIELT 系统,它是一个 AI 框架,为多个游戏主题提供统一的 API。该系统的目标之一是让研究人员可以为一款游戏开发 AI 并将学到的知识转移到新的游戏中。例如,在 Wargus 中学到的领域知识可能适用于其他 RTS 游戏。我在这里讨论 TIELT 正是因为 DeepMind 和暴雪的合作成果之一就是一个 API 和潜在的样本数据集。对于这个 API 来说,重要的是不要为 AI 的操作做出假设。TIELT 面临的挑战在于它没有提供直接进入游戏状态的权限,这也就限制了可以利用它的 AI 技术的数量。这个系统许多目标现在都已经在 Facebook 的 ELF 平台实现了。

TIELT 架构


2005

Wargus 中的增强学习

Wargus 迅速成为研究人员开发 RTS AI 的环境。2005 年,研究人员开始探索强化学习技术,这正是 AlphaGo 使用的策略之一。最终由于研究人员无法对彼此的工作进行对抗评估导致 Wargus 的工作停滞不前,他们太过依赖一小部分硬编码脚本的性能。

2006

第一次 ORTS 竞赛

在 2005 年公布了第一次 ORTS AI 竞赛,该活动在举办于斯坦福的 AIIDE 2006 大会上举行。第一次比赛有 4 个参赛项目,比赛规模逐年增加,直到 2009 年结束。

2007

IICup 启动

International Cyber Cup 是星际争霸的第三方服务器平台。这个服务器对 AI 研究非常重要,因为你可以在这个服务器上运行机器人,不过它不是暴雪官方服务器。这个服务器的另一个优点是为玩家提供了一个字母评分,玩家可以用来轻松地交流技术。例如,我在 2010 年认真玩的时候最高拿到了 D+。

2008

第一次星际争霸 AI 研究

我所知道的第一篇关于星际争霸 AI 构建的文章是在 2008 年发表的。Hsieh 和 Sun 通过挖掘数千的游戏录制构建了一个模型来预测玩家会生产什么建筑和单位。

星际争霸建造指令预测

2009

母巢之战 API 发布

在 2009 年,我发现了一个叫做 BWAPI(母巢之战 API)的 Goole 代码项目,它提供了星际争霸的编程接口。该库使用了一个第三方 DDL 工具将 API 注入到星际争霸的运行环境并提供一系列调用游戏内部函数的挂钩。自此之后,该项目的贡献者规模不断增长并且被移植到了多种语言。它现在托管在 GitHub 上并且有一个 Java 版本。

2010

星际争霸 2 发布

在 2010 年,星际争霸 2 自由之翼发布,母巢之战的竞赛也继续活跃了几年。2013 年又发布了虫族之心资料片,2015 年发布了虚空之遗。

第一届星际争霸竞赛

第一届星际争霸 AI 竞赛在 AIIDE 2010 举办。其主要赛事由伯克利 Overmind 团队获胜。竞赛中还出现了人对抗机器的表演赛,人类选手轻易地击败了 AI 对手。

伯克利 Overmind 团队

2011

第二届 AIIDE 星际争霸竞赛

艾伯塔大学的 Dave Churchill 主办了第二届以及后续的 AIIDE 星际争霸竞赛。他编写了一个锦标赛框架,可以自动运行锦标赛,并修改了一些规则以促进合作,比如要求必须开源提交。

学生星际争霸 AI 锦标赛

第二届星际争霸锦标赛开始后,学生的提交成为重点。锦标赛不再与每年的大会联系在一起,而是每年举办好几次。

https://sscaitournament.com/

2013

星际争霸母巢之战机器人天梯

Krasi0 为星际机器人开发了一个全天候运行的天梯系统。这为研究人员提供了一个评估不同 AI 方法的环境。

2014

星际争霸 2 自动化玩家

Matt Webcorner 演示了一个星际争霸 2 机器人,它可以通过拦截 DirectX 命令来推断游戏状态。这种方法的主要限制之一是该机器人只能访问当前显示在屏幕上的游戏状态。

2016

AlphGo 击败李世石

2016 年 3 月,DeepMind 的 AlphaGo 系统击败了围棋世界冠军李世石。这次胜利之后,许多人认为星际争霸将是 DeepMind 的下一个挑战目标。

Facebook 加入

2016 年 Facebook 的 AI 研究人员开始使用星际争霸作为强化学习测试平台。他们发表了一篇关于星际争霸中的微观管理的文章。他们的机器人参加了 AIIDE2017 竞赛,但是它的学习模式表现不如重点关注脚本的机器人。

暴雪嘉年华公告

在 2016 暴雪嘉年华,DeepMind 宣布他们正与暴雪合作开发一个 AI 的开放平台。现在 Google 与 Facebook 竞相开发专业级星际争霸游戏的机器人,竞争也变得日趋激烈。

2017

星际争霸 2 API 发布

暴雪在 8 月 9 日发布了用于编写机器人的星际争霸 2API,同时揭晓了一个编写机器人的工作室。

查看原文

https://towardsdatascience.com/a-history-of-rts-ai-research-72339bcaa3ee

参考资料

[1]:

https://hal.archives-ouvertes.fr/hal-00871001/document

[2]:www.cs.auckland.ac.nz/research/ga…

过去十年,我们用了哪些即时战略游戏训练AI?相关推荐

  1. 即时战略游戏的AI是怎样实现的?

    导读:作为实际开发过AI的人,拿一份五年前的代码,以最难的体育竞技类游戏为例,来科普一下,什么叫做游戏团队策略,什么叫做分层状态机?具体该如何落地到代码?如果你能实现体育竞技的AI,那即时战略只是小事 ...

  2. 暴雪经典即时战略游戏十周年回顾

    随便打开一本游戏杂志,被玩家讨论最多的游戏,开发者基本都是他:能做到一个网络游戏还没开始测试,就能占据玩家心目中第一位置的,也是他:一个游戏公司自从确立自己名称之后至今还没有开发过失败游戏的,同样是他 ...

  3. Unity实战 RTS3D即时战略游戏开发(十二) 战斗AI的控制

    大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发.这节课我们接着来讲AI的相关部分:战斗AI. 游戏中要进行战斗,就需要让AI会攻击,首先在一定范围内如果有足够的单位则进行攻击,在A ...

  4. 【转】网络即时战略游戏软件开发 结构体系分析

    文档下载地址:http://download.csdn.net/detail/wanggan768q/4388056   网络即时战略游戏软件开发 结构体系分析 前言 本人对网络游戏的技术问题一直比较 ...

  5. 网络即时战略游戏结构体系分析

    前言 本人对网络游戏的技术问题一直比较感兴趣,我认为网络游戏的开发在不远的将来是一个非常庞大的产业.这段时间有空,特地玩了几天网络游戏"破碎银行系",并分析了一下其中体系结构,有些 ...

  6. 网络即时战略游戏软件开发 结构体系分析

    文档下载地址:http://download.csdn.net/detail/wanggan768q/4388056   网络即时战略游戏软件开发 结构体系分析 前言 本人对网络游戏的技术问题一直比较 ...

  7. JRE极限精简探求手册 1 ——精简一个Swing的即时战略游戏

    本例中以GreenJVM直接压缩精简后绿色版游戏下载地址:http://download.csdn.net/source/612943 本回主在描述精简一个Java应用的实际步骤,选取了ApoDefe ...

  8. JRE极限精简探求手册[1]——精简一个Swing的即时战略游戏

    该作者信息可以在[url]http://home.arcor.de/newbielein/[/url]获得,这是一个德文网页,作者也提供了其它一些小型Java游戏的展示,比如: 有兴趣的可以下载作为参 ...

  9. 从零开始制作即时战略游戏(0)

    "看这个题目,就觉得很傻屌."--某同学 问题1:为什么要从零开始制作即时战略游戏?难道SC/SC2,steam上一大堆还不够玩的? 回答:我就想在iphone/ipad上玩. 问 ...

最新文章

  1. 怎么用express搭建一个服务器
  2. Nature子刊:吃得越少,活得越久
  3. MyBatis基本运行环境
  4. thinkphp3.2.3 自定义路由实践
  5. 十万个为什么儿童版_把中国科技传播至阿语地区,少儿社《十万个为什么》阿拉伯文版亮相童书展...
  6. mac 启动php70 fpm,mac 启动php-fpm
  7. ORA-01552 :非系统表空间 'xxxx'不能使用系统回退段
  8. mac maven安装位置_Maven的安装以及仓库的作用
  9. Git branch 用法
  10. 清空上传控件HtmlInputFile的方法
  11. mcu AD采样值和物理值
  12. CU的递归划分详细介绍
  13. node对接微信支付 sdk tenpay
  14. 将centos7打造成桌面系统centos
  15. EJB初级篇--何为EJB
  16. js正则表达式匹配汉字
  17. XML解析器列表(超全!)
  18. Java -- JodaTime第三方库操作时间
  19. 自动驾驶数据服务进入2.0时代
  20. Python绘图实例19:中国国旗绘制

热门文章

  1. ElasticSearch的IK中文分词器
  2. Java小程序祝国庆快乐
  3. 阿里云盘-网页版登录地址
  4. java月份前面去掉0,JAVA日期格式输出月度前面不想被自动补0
  5. 【报告分享】2020年第3季度中国城市交通报告-百度地图(附下载)
  6. 如何在Excel 2007中制作柱状图--win10专业版
  7. 纳尼!7d聚拉提和热玛吉哪个效果好,30岁阿姨说7d聚拉提的功效和原理,这一篇全齐活了
  8. kafka安装TIPS
  9. iPhone出黄色了/ 马斯克嘲笑推特前员工/ 日本火箭空中自毁…今日更多新鲜事在此...
  10. 解决了cropper裁切图片toDataURL()跨域报错的问题,记录一下。