HyperAIHyperAI

Command Palette

Search for a command to run...

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

Featured Image
人类玩 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 是暴雪爸爸教的
人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

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

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

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

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

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

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

人类玩 DOTA2 能赢,是因为 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 是暴雪爸爸教的
人类玩 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 是暴雪爸爸教的
人类玩 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 是暴雪爸爸教的
人类玩 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 是暴雪爸爸教的
人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的

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