人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

作者:Tommy Thompson

AI &游戏 资深研究专家

YouTube @TableFlipGames

超神经 HyperAI 导读

人类终于在 DOTA2 上赢 AI 了呢。

今天,DOTA2 全球顶级赛事 Ti8(The International DOTA2 Championships)淘汰赛进入到第三日,除了惋惜中国战队 VG 遗憾出局之外。之后举行的 OpenAIFive 大战 Pain 战队则成了一大亮点,不同于上次 OpenAI 大败 Dendi,这一次 OpenAIFive 首场以败北告终,人类战队似乎又看到了一点希望。

但其实,在OpenAI进行训练的时候,通常是用暴雪爸爸出品的「星际争霸」,这一直是很多玩家心中的经典之作,地位并不亚于「魔兽世界」。

作为一款即时策略游戏,依靠多兵种协作、宏观策略规划等游戏机制,在同一场游戏中能产生无数中可能,对训练 AI 在不确定性场景中的决策能力和算法效率很有帮助。如今,这款游戏已经成为 Google、微软等知名科技公司的 AI 试验场。

即时策略游戏:最适合训练 AI 的游戏

即时策略游戏(Real Time Strategy Games,简称 RTS)是策略游戏的一种,跟回合制游戏不同,这种游戏可以即时进行,玩家在游戏中通常扮演决策者,需要进行调兵遣将、制定策略等宏观操作。最常见的即时游戏除了的「星际争霸」,还有「魔兽争霸」、「红色警戒」等。

这类游戏一般设有迷雾机制,即所有玩家的视野有限,只能看见自身周边的场景。玩家需要通过探索世界搜集资源,用来建设基地和打造科技树(比如通过各种材料合成武器等),只有成功摧毁敌方工事,并消灭敌人,或者抵御住所有进攻才能获胜。

人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

在游戏过程中,如何合理分配资源,制定攻防计划,对地图理解程度如何等,都将成为影响对战结果的关键。

这就要求玩家在进行游戏时,除了不断对未知世界进行探索,还要时刻观察对战状态,制定攻防战略,加上这类游戏搜索空间巨大,一场游戏中可能存在无数种可能。因此,RTS 游戏很适合用来训练 AI 在不确定性场景中的决策能力,检验 AI 的算法效率。

训练 AI ,从征服「星际争霸」开始

而在所有的 RTS 游戏中,「星际争霸」无疑是最佳选择。

这款游戏知名度高,玩家众多,可以提供大量训练 AI 所需要的人类玩家数据。而且,这款游戏非常复杂,能有效检验 AI 模型的算法效率。于是,从很早开始,就不断有研发人员希望通过「星际争霸」来训练 AI 模型。

「星际争霸」作为一款在不完全信息下的游戏,128 x 128 的地图范围可以创造出巨大的搜索空间。目前围棋的搜索空间大概在 10170,「星际争霸」的搜索空间能达到 101685。而且还允许创造最多 400 个兵种单位,各类兵种拥有不同的属性,可以在游戏中创造出无数中可能,因此,AI 需要运行更多算法进行应对。

人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

星际争霸 2017 重制版

此外,游戏中不同阵营的玩家随时都会相遇,需要 AI 在毫秒内做出反应。这需要 AI 具备记忆和即时信息分析能力,能够综合所有随机遭遇,或侦察到的情况,不断调整游戏策略。另外,游戏作为虚拟场景,训练中的试错成本非常低。这些因素让「星际争霸」成为 AI 训练的理想场所。

AI 是怎么学会的?

ORTS:

专为 AI 研究搭建的 RTS 对战平台

ORTS 全称为 Open Real Time Strategy,是一个开放 RTS API 的即时策略游戏平台。2003 年,由加拿大阿尔伯塔大学的计算机科学教授 Michael Buro(迈克尔·布罗)专门开发,用于在 RTS 游戏上训练 AI 模型。

这款搭载 OpenGL API 的 3D RTS 游戏平台,可以模仿市面上大部分即时策略游戏,还能处理 3D 图像。ORTS 的通信协议和源代码全部对外开放,用户可以免费访问大量地图、模型、军队数据等,远程构建 AI 控制器,用于训练 AI 模型。

人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

开放即时战略游戏(ORTS)平台,可以在 GitHub 上查看该项

获取链接为:https://github.com/benoit-dumas/OpenRTS

ORTS 为研发人员在即时策略游戏中创建 AI 控制器创造了条件,但它仅能复制现有 RTS 游戏的运行机制,仍不能直接接入原生游戏。由于很少有人类玩家参与,因此 ORTS 大部分时间只有 AI 玩家。

终于,故事在 2009 年出现了转机,ORTS 跟暴雪达成协议,在 ORTS 举办的最后一届 RTS AI 竞赛上,发布了的 API——BWAPI(「星际争霸:母巢之战」官方 API),这也是「星际争霸」系列首个对外 AI API。

BWAPI:

可直接在「星际争霸」中创建 AI 角色

BWAPI 是一个开源的 C++ 框架,意味着所有研发人员都可以在「星际争霸」中训练自己的 AI 模型。BWAPI 可以为 AI 模型提供人类玩家的游戏数据,以及当前游戏状态、可用兵种类型、科技树情况等信息。

在对战中,为防止 AI 玩家作弊,系统规定只有当敌方玩家没有被迷雾遮挡,且处于 AI 模型视野之内,才能获取对方的位置、属性等信息。

不过,由于在同一个给定框架中,AI 可以进行比人类玩家更多的操作。因此,在游戏过程中可能会出现一些奇怪的行为,比如在墙壁上行走的陆地兵,以及四处滑动的建筑物。

虽然 BWAPI 在实际应用过程中还存在缺陷,但不可否认它成功实现在「星际争霸」中训练 AI 模型的设想,推动了 AI 的发展。也为后来 AIIDE(人工智能和互动数字娱乐会议)举办「星际争霸」大赛奠定了基础。

AIIDE:

让更多人参与到「星际争霸」AI 竞赛

2010 年,AIIDE 作为当时世界上最大的游戏 AI 研究会议之一,举办了首届仅由 AI 参与的「星际争霸 AI 锦标赛」。比赛总共分为 4 场,每场比赛都有不同的侧重点,用来展现 AI 模型在不同实战场景中的表现。

  • 第一场和第二场侧重于在复杂地形上的兵种单位管理;

  • 第三场则采用视野全开的无迷雾区模式,但禁止使用高级兵种;

  • 第四场为常规对抗,有迷雾也可以使用高级兵种;

这届竞赛取得巨大成功,总共有 26 个 AI 团队参赛,其中 17 个团队完成全部比赛。首届比赛冠军由虫族 AI 玩家 Overmind 获得,Overmind 是由加州大学研究团队开发。

值得一提的是,Overmind 的开发者,现 Google DeepMind 研究科学家 Oriol Vinyals 曾是西班牙「星际争霸」冠军。Overmind 虽然在 AIIDE 比赛中获胜,但却很难击败人类玩家 Oriol Vinyals。

2011 年,随着参赛者越来越多,为保证比赛公平性,AIIDE 要求 AI 玩家必须公开源代码,所有比赛都将在基于 C/S(客户/服务器模式)架构的服务器上进行。

人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

在这一年举办的第二届「星际争霸 AI 竞赛」上,来自英国的 SkyNet(天网),采用了注重早期防御和周期性冲锋的策略斩获冠军,这位 AI 玩家是由英国工程师 Andrew Smith 一个人研发,证明 AI 算法在策略制定上的可能性。

再到 2012 年,AIIDE 竞赛已经可以实现永久存储比赛录像,这意味着 AI 可以通过观看之前的比赛来学习。如今,AIIDE 仍在继续举办「星际争霸」AI 竞赛,希望借此鼓励更多人参与研发「星际争霸」AI 模型,以推动 AI 发展。

在 2011 年 AIIDE 举办第二届比赛时,另一场专门针对大学生等业余 AI 玩家的「星际争霸」AI 大赛也悄然展开。

SSCAIT:

专为学生及业余玩家设立

SSCAIT(「星际争霸」学生 AI 大赛)由斯洛伐克哲学博士 Michal Certicky 在 2011 年成立,主要为在校大学生、研究生以及社会上所有对「星际争霸」AI 竞赛感兴趣的玩家而立。

通过 BWAPI,几乎所有人都能开发属于自己的星际 AI 控制器。

SSCAIT 比 AIIDE 更加开放,赛制也发生了变化,并且可以在 Twitch 观看练习赛和正赛的直播。比赛采用 1 对 1 近身肉搏战,当一方的建筑物被全部摧毁,或者程序崩溃,迟迟无法做出决策时,就会被判出局。

即便 AI 在「星际争霸」竞赛中不断进步,在很多其他游戏上的表现也要优于人类,但在「星际争霸」人机对战上,截至目前,人类的水准依然可以完胜 AI 。

人机对战,人类还是略胜一筹

AIIDE 曾举办过一场 AI 与人类玩家的比赛,由 2015 年「星际争霸」AI 大赛前三甲对阵俄罗斯「星际争霸」职业选手 Djem5,但没有一次取胜。

2017 年,韩国首尔的世宗大学也举办了一场人机对抗赛,四位 AI 玩家对阵韩国「星际争霸」职业选手,同时也是世界上最强的职业玩家之一——Song Byung Gu(宋炳具)。

这四位 AI 选手分别是来自世宗大学的 MJ Bot、ZZZKBot 和 tscmoo 以及 Facebook AI 实验室的 CherryPi,四位 AI 选手均在 27 分钟内(最快的四分半)被击败。

因此,在创造出 Alpha Go 后,Google AI 实验室 DeepMind 团队盯上「星际争霸》」,希望能再次战胜人类。

Google DeepMind 推出「星际争霸 2」官方 API

2017 年 8 月,DeepMind 正式宣布跟暴雪公司合作,联合推出「星际争霸 Ⅱ」官方 AI API——SC2LE(译作:星际争霸 2 AI 研究环境)。

这是一个专为开发人员研究 AI 准备的工具集,不过仅适用于「星际争霸 Ⅱ」。在保留很多 BWAPI 特性的同时,加入了一些新功能:

  • 可以使用 Python 语言在游戏中搭建 AI 模型;

  • 可观看比赛回放;

  • 游戏进程可以加速(对于训练 AI 非常有用);

  • 可以构建自定义地图;

  • 加入了 DeepMind 开发的 7 款小游戏,供 AI 模型进行功能测试;

  • 可以为 AI 模型提供更多的人类玩家游戏数据。

人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

SC2LE 捕获的游戏特征

SC2LE 被分成两个不同的集合,一个类似于 BWAPI ,可以访问给定框架下的特定信息。另一个则专为机器学习等 AI 算法而准备,可以对游戏中所获取的信息进行分析,让算法可以更容易访问这些数据。

SC2LE 虽然可以让更多人参与到 AI 游戏模型创建中,但目前 AI 仍难以在「星际争霸」等即时策略游戏中战胜人类。不过,随着 Google、微软、Facebook 等国际知名科技公司的加入,这一切也许会发生反转。

在今年 6 月份,由 Elon Musk 等诸多硅谷大亨共同创建的 AI 非营利组织 OpenAI 就已经在多人即时对战游戏「DOTA 2」中击败业务人类玩家,并在 8 月份击败半职业玩家。

「DOTA」是基于「魔兽世界 Ⅲ」的游戏引擎开发而来,跟「星际争霸」一样,「魔兽世界」也是一款由暴雪开发的 RTS 游戏。虽然「DOTA 2」已经脱离了该引擎,但在部分游戏机制上仍有所保留。

虽然「魔兽」比「DOTA 2」的游戏机制更加复杂,地图范围也更大,但 AI 在「DOTA 2」中获胜,证明 AI 在即时策略游戏中又更进了一步。未来,随着更多大型科技公司的加入,AI 或许会创造出新的游戏机制,让现有的竞技类游戏变着人与 AI 之间的战斗。

人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

赶紧来一局,复习一下今天的知识点吧