首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >工欲善其事必先利其器 : 游戏 AI 环境对比

工欲善其事必先利其器 : 游戏 AI 环境对比

原创
作者头像
AlgorithmDog
修改于 2025-02-28 02:41:07
修改于 2025-02-28 02:41:07
1.3K0
举报

前言

DeepMind 发表 DQN 算法在 Atari 游戏上超过人类之后,游戏 AI 研究迅速成为了研究热点。游戏 AI 研究火热的一个侧面是游戏 AI 环境推陈出新,层出不穷。OpenAI Gym/Universe、ELF 和 SC2LE 等高水准的游戏 AI 环境相继问世。

1. 游戏 AI 环境简介

游戏 AI 环境包括游戏和适应 AI 调用的 API 接口。现在的游戏 AI 环境可以分为两类:单一游戏 AI 环境和集成游戏 AI 环境。单一游戏 AI 环境是指针对一个游戏构建的游戏 AI 环境。因为针对星际争霸的实在太有名了,我将之单独作为一类。其中 TorchCraft 是 FaceBook 基于星际争霸 I 的做的,后来阿里在上面加了 Python 接口推出了 TorchCraft-py。SC2LE 则是 DeepMind 和暴雪合作,基于星际争霸 II 推出的。另外 Malmo 是基于 MineCraft,ViDoom 是第一人称射击类,Maze 是一个简单的即时策略游戏 (RTS),TorCS 是赛车模拟游戏。集成游戏 AI 环境则是指游戏 AI 环境拥有多款游戏,比较有名的集成游戏 AI 环境有 OpenAI Gym/Universe 和 ELF。

除了这种划分标准,我们还有一种划分标准——游戏目的。1)大部分游戏 AI 环境是对现有游戏进行改造;这些现有游戏是专业游戏团队建立的,游戏目的是人们的娱乐。2)但是也有少部分研究者认为,现有游戏并不适合做 AI 训练,因此自己设计和实现游戏从而建立游戏 AI 环境;Maze 和 ELF 就是这种思路的代表;游戏目的是研究。

2. OpenAI Gym/Universe

OpenAI Gym 是 OpenAI 发布的对比测试深度强化学习的框架,其框架是标准强化学习的框架,如下所示。

OpenAI Gym 的用法简单明了。

代码语言:txt
AI代码解释
复制
  

后来 OpenAI 又发布了一套工具,方便开发人员将世界上的游戏移植到 OpenAI Gym 上,并使用这套工具移植超过 1 千款游戏。这便是 Universe。OpenAI 的官博宣称:Universe 是一个能在世界上所有的游戏、网站和其他应用中,衡量和训练 AI 通用智能的软件平台。这样宣称是基于有了这套工具,就有了将世界上所有游戏移植到 OpenAI Gym 的潜力。。。

OpenAI Gym/Universe 有一些问题。其中一个就是现有算法能够在大部分 OpenAI Gym/Universe 游戏超过人类。换而言之,OpenAI Gym/Universe 大部分游戏在学术上处于 Solved 状态。这让 OpenAI Gym/Universe 的学术价值没有那么大了。不过,OpenAI Gym/Universe 游戏依然能够为新算法提供测试场景。毕竟新算法在 Solved 的问题上比旧算法高效很多,也很有学术价值。但游戏 AI 研究的两大重镇:DeepMind 和 FaceBook 都自己搞一套,没在 OpenAI Gym/Universe 做实验。

3. ELF

ELF 是 FaceBook 推出的游戏 AI 环境,包括围棋和 ALF(一个 Atari 游戏集)。除此之外,ELF 还实现了一个 RTS 游戏引擎,在这个引擎的基础上实现了一个夺旗游戏、一个塔防游戏和一个 mini-RTS。围棋和 ALF 是点缀,ELF 的重心是 RTS 游戏引擎上的 mini-RTS。

ELF 用 C++ 将许多并行的游戏线程和每个线程的历史数据封装进去,每次 Python 循环时都可以得到一批次的游戏状态。这样做有两个好处:Python 操作简便,不需要考虑分布式多线程的问题;同时 C ++ 实现的游戏引擎效率高。

在 ELF 的 mini-RTS 中,作者内置了一款基于规则的 AI, 同时实现了基于 A3C 强化学习的算法基线。从下面的对比图,我们可以看出 A3C 的效果要比基于规则的 AI。

ELF 作者关心重点是 ELF 的效率,强调高速的游戏 AI 环境对提升游戏 AI 研究的迭代有重要意义。从下面对比图来看,ELF 的效率非常高,速度比其他游戏 AI 环境高了不少。ELF 为了研究去设计和实现游戏,可以控制游戏复杂,并且做很多框架和实现上的优化,从而实现极高的运行效率。

4. SC2LE

2017 年 8 月 10 号,DeepMind 联合暴雪发布了星际争霸 II 游戏 AI 环境 SC2LE, 其框架如下所示。

这是标准的游戏 AI 环境的框架。对于一个复杂的游戏 AI 环境框架来说,三个问题需要得到解决:怎么抽象状态,怎么处理奖励和怎么抽象动作。对于怎么处理状态,SC2LE 使用三个部分的信息,分别是小地图、全地图和非空间信息。所谓非空间信息包括资源拥有量、科技树和建造队列等信息。

SC2LE 有两种奖励函数。一种是依照最终结果(1/胜,0/平,-1/负);另一种是基于暴雪给的 Bllizzard 分(资源采集量、科技树升级、单位、建筑的加权和),通过API可以实时获取。显而易见,第一种奖励和我们的目标一致,但太稀疏了;第二种则反之。

因为星际争霸的动作实在太多太杂,怎么抽象动作是 SC2LE 的一个重点。SC2LE 将星际争霸的动作空间整理成近 300 个动作函数,每个函数有相应的参数,参数一共有 13 种类型。比如在下图中,圈选一部分单位的函数为 select_rect, 两个整数参数表示选择矩阵的两个坐标点。

游戏 AI 打星际争霸是非常难的任务,因此除了完整 1v1 游戏之外,SC2LE 还很贴心地提供了 7 种迷你游戏,包括指定位置移动、两个机枪兵收集水晶矿碎片、击败小狗、击败小狗和爆虫、收集资源、造机枪兵。虽然这种贴心到最后除了进一步证明了现有算法的渣,并没有什么卵用。。。

为了验证 SC2LE 的效果并提供基线,SC2LE 提供了三个基于深度强化学习的基线方法。其中两个方法的网络结构分别是 Atari-net 和 FullyConv,第三个方法是 FullyConv 加 LSTM。

我们可以看到三种方法都被人打成狗了。。

代码语言:txt
AI代码解释
复制
  

完整游戏打不过人,那试一试迷你游戏模式。从下图可以看出,稍微复杂一点的迷你游戏上,这三种方法被人远远地超越了。图中 DeepMind Human Player 是 DeepMind 的一位员工,而 StarCraft Grand Master 是一名专业选手。

从上面的结果来看,现有算法对于 RTS 无解,RTS 游戏是学术上 Un-Solved 的问题。在这里,我们可以看出 “为了研究设计和实现游戏” 做法的缺陷了:ELF 论文里面有实现基于规则和基于 A3C 的游戏 AI, 并报告了实验对比;但我们还是会困惑现有算法到底达到什么水平,和人类相比怎么样; ELF 中的 mini-RTS 本身比较简单同时没有大量人类玩的经验和技巧,因此无法给我们解答这些困惑。但 SC2LE 不一样,星际争霸 II 是被广泛接受,并有大量人类体验的实际游戏。在星际争霸上,算法和人类对弈,人们对算法的水平立马就有一个直观的感知。

5. 总结

游戏 AI 环境推陈出新,层出不穷,得利于如火如荼的游戏 AI 研究。现在游戏 AI 环境极大丰富,就看游戏 AI 算法是在短期突破,还是长久守望了。

最后有一点私货:目前我在和小伙伴们开发非完美信息游戏 AI 环境:RoomAI ( https://github.com/roomai/RoomAI )。RoomAI 的目标是提供一些非完美信息游戏环境和一些基线模型算法,方便 AI 开发人员快速地构建、测试和对比自己的非完美信息游戏 AI 算法。目前 RoomAI 已经支持德州、梭哈和七鬼,基本流程如下所示:玩家 AI 获得游戏环境给出的信息,当前玩家 AI 选择合适的动作,游戏环境根据该动作推进游戏逻辑;重复上述过程,直到分出胜负。

RoomAI 的用法也是简单明了,下面是一个随机玩家的示例。

代码语言:txt
AI代码解释
复制
from roomai.kuhn import *;
import roomai.common
import random
#### Define your player Bot ####
class KuhnPokerExamplePlayer(roomai.common.AbstractPlayer):
    def receive_info(self, info):
        if info.person_state.available_actions is not None:
            self.actions = info.person_state.available_actions  
         
    def take_action(self):
        idx = int(random.random() * len(self.actions))
        return self.available_actions.values()[idx]
        
    def reset(self):
        pass

if __name__ == "__main__":
    #### init ####
    env     = KuhnPokerEnv()
    players = [KuhnPokerExamplePlayer() for i in range(2)]

    #### playing ####
    scores = KuhnPokerEnv.compete(env, players) 
    print (scores)      

如果对 RoomAI ( https://github.com/roomai/RoomAI )项目有兴趣,欢迎同学们关注并 Star。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【重磅】DeepMind进军星际争霸2,谷歌Facebook打响通用AI战争
【新智元导读】7日,Facebook刚刚宣布开源史上最大的《星际争霸》游戏数据集STARDATA。今天(10日)DeepMind在官方博客上宣布开源星际争霸2 研究训练平台SC2LE。AI 巨头挑战星际争霸的角逐愈演愈烈。乌镇围棋峰会上,DeepMind CEO 哈萨比斯曾说,星际争霸将成为AI进步的下一个大考验。 国内AI 资深专家袁泉此前曾深入研究过星际争霸中的若干AI问题,和UCL共同发表了多智能体协作网络BiCNet,第一次展现了AI在星际微观战斗中的五类智能协作方式。新智元对此做过专门报道。此次D
新智元
2018/03/22
1.1K0
【重磅】DeepMind进军星际争霸2,谷歌Facebook打响通用AI战争
人工智能开始玩《星际争霸2》 我们对它的研究环境进行了测试
本文原作者洪水宋,杜克,原文载于作者的知乎专栏 - 智能单元。 8月10号,DeepMind联合暴雪发布了星际争霸2人工智能研究环境SC2LE,从而使人工智能的研究进入到一个全新的阶段。这次,研究人工智能的小伙伴们可以边玩游戏边做研究了。 为了让更多的朋友了解SC2LE研究环境,我们在第一时间对其进行安装测试,并对DeepMind发布的pysc2代码进行分析,初步了解基于pysc2的RL开发方法。下面我们将一一进行介绍。 测试使用设备 Macbook Pro 13寸(MacOS Sierra) Alie
AI研习社
2018/03/19
1.2K0
人工智能开始玩《星际争霸2》  我们对它的研究环境进行了测试
DeepMind联手暴雪:星际II的玩家们,准备好对抗AI了吗(附论文)
大数据文摘作品,转载要求见文末 作者:宁云州、魏子敏、Aileen 星际II的玩家们,你们准备好迎接被AI支配的恐惧了吗?! 用阿尔法狗征服了围棋界的DeepMind正把目光投向游戏界:今日凌晨,DeepMind官网发布消息,已正式与暴雪娱乐合作,共同开发可以在星际争霸II中与人类玩家对抗的AI,并且发布了SC2LE,一个旨在加速即时战略游戏当中AI应用的工具集。 早在去年,Deepmind已经立下Flag要教会AI玩儿星际争霸II,也已经有包括facebook、阿里巴巴等不少科技公司或者研究机构开拓过“星
大数据文摘
2018/05/25
5450
人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的
今天,DOTA2 全球顶级赛事 Ti8(The International DOTA2 Championships)淘汰赛进入到第三日,除了惋惜中国战队 VG 遗憾出局之外。之后举行的 OpenAIFive 大战Pain 战队则成了一大亮点,不同于上次 OpenAI 大败 Dendi,这一次 OpenAIFive 首场以败北告终,人类战队似乎又看到了一点希望。
HyperAI超神经
2019/11/29
7390
开发 | 星际争霸2人工智能研究环境 SC2LE 初体验
1 前言 昨天,也就是2017年8月10号,DeepMind联合暴雪发布了星际争霸2人工智能研究环境SC2LE,从而使人工智能的研究进入到一个全新的阶段。这次,研究人工智能的小伙伴们可以边玩游戏边做研
AI科技评论
2018/03/13
1.5K0
开发 | 星际争霸2人工智能研究环境 SC2LE 初体验
教AI打星际2也不难,试试暴雪和DeepMind的工具包 | 附论文+代码
安妮 编译整理 量子位 出品 | 公众号 QbitAI 去年年底,DeepMind宣布想教会AI智能体玩《星际争霸2》(后简称星际2),计划创造出能击败人类玩家的智能体。 9个多月后这事又有了进展。今
量子位
2018/03/27
1K0
教AI打星际2也不难,试试暴雪和DeepMind的工具包 | 附论文+代码
终极人机大战要来了?AI打星际2即将直播,DeepMind暴雪发出神秘预告
刚刚,DeepMind和暴雪联合宣布,北京时间周五凌晨2点,公开展示AI打《星际争霸II》(下称星际2)的新进展!
量子位
2019/04/24
4550
终极人机大战要来了?AI打星际2即将直播,DeepMind暴雪发出神秘预告
学界 | 中科院开源星际争霸2宏观运营研究数据集MSC
选自arXiv 机器之心编译 参与:李泽南、蒋思源 DeepMind 与暴雪共同发起的星际争霸 2 人工智能研究看起来遭遇了很大挑战。目前的人工智能还难以在完整对战中击败简单级别的游戏内建电脑玩家。不过,两家公司 8 月份共同推出的人工智能研究环境 SC2LE 为后续研究提供了可利用的平台。中国科学院自动化研究所的研究人员最近针对宏观运营任务提出了全新数据集 MSC,试图推动研究社区继续前进。值得一提的是,中科院自动化所的团队 10 月 8 日刚刚在星际争霸 AI 竞赛 AIIDE 2017 上取得第四名
机器之心
2018/05/08
8460
学界 | 中科院开源星际争霸2宏观运营研究数据集MSC
单机《星际争霸2》AI,不用GPU集群,支持多种训练环境
上周结束的 AI Challenger 星际争霸竞赛,让 AI 挑战星际争霸这个议题又稍稍火了一把。虽然这届冠军使用的仍然是硬编码方法,但从其他解决方案中不难看出,AI 算法的占比在不断提升。
新智元
2018/12/21
1.1K0
单机《星际争霸2》AI,不用GPU集群,支持多种训练环境
AI简史 | 星际英雄传说
阿纳海姆会议中心的暴雪嘉年华上,尚未正式发布的RTS游戏大作《星际争霸II》举行了试玩活动。
量子位
2018/07/24
5530
AI简史 | 星际英雄传说
动态 | DeepMind和暴雪联手发布开发工具和replay数据集,让更多AI研究者玩上星际2
AI 科技评论按:去年年底的时候,大家都知道了 DeepMind 的人工智能要开始玩星际了,今天DeepMind 也正式发布了论文和相关博文介绍了自己在这方面的成果,他们与暴雪联手发布了一系列工具,方便更多的研究者参与到(让人工智能)玩星际2中来。AI 科技评论编译如下。 DeepMind 一直抱有这样的一个科学目标:构建能学会解决复杂问题的系统,以此来不断推进人工智能的发展前沿。为此,DeepMind 开发了各种各样的智能体,然后在自己搭建的 DeepMind Lab 平台上用各种各样的环境测试它们。 有
AI科技评论
2018/03/13
7780
动态 | DeepMind和暴雪联手发布开发工具和replay数据集,让更多AI研究者玩上星际2
星际争霸界也出了位“带路党”,当年的冠军正帮谷歌AI击败人类
李杉 若朴 发自 凹非寺 量子位 出品 | 公众号 QbitAI 1990年代,十几岁的Oriol Vinyals(维纽斯)成了西班牙《星际争霸》全国冠军。 他之所以玩这款科幻策略游戏,是因为比其他打打杀杀的游戏更需要动脑子。维纽斯说:“没上大学之前,这款游戏就让我在生活中怀有更强的战略思维。” 他的战略思维的确获得了回报:在巴塞罗那学习了电信工程和数学之后,维纽斯去过微软研究院实习,获得了加州大学伯克利的计算机博士学位,接着加入谷歌大脑团队,开始从事人工智能开发工作,然后又转入谷歌旗
量子位
2018/03/23
7450
漫谈游戏的深度学习算法,从FPS和RTS角度分析
人工智能那么火热,作为游戏行业的技术人员可定也不会放过,今天,我们就一起来聊聊,在游戏中人工智能是如何实现深度学习技术的。  我们关注基于深度学习的游戏 AI 中广泛存在的问题以及使用的环境,如 Atari/ALE、《毁灭战士》(Doom)、《我的世界》(Minecraft)、《星际争霸》(StarCraft)和赛车游戏。另外,我们综述了现有的研究,指出亟待解决的重要挑战。我们对能够玩好电子游戏(非棋类游戏,如围棋等)的方法很感兴趣。本文分析了多种游戏,指出这些游戏给人类和机器玩家带来的挑战。必须说明,本文
机器人网
2018/04/25
1.9K0
漫谈游戏的深度学习算法,从FPS和RTS角度分析
从FPS到RTS,一文概述游戏人工智能中的深度学习算法
选自arXiv 机器之心编译 参与:路雪、李泽南、李亚洲 本文综述了用于打电子游戏的深度学习算法,分析了不同类型的电子游戏对深度学习系统的要求,同时也列举了一些开放性挑战。 论文链接:https://
机器之心
2018/05/08
1.6K0
从FPS到RTS,一文概述游戏人工智能中的深度学习算法
DeepMind星际争霸2 AI首秀即将上演,旭东老仙奶一口?
在 AlphaGo征服围棋之后,《星际争霸》一直被人工智能研究者视为下一个目标,因为它相比国际象棋与围棋更接近「复杂的现实世界」,DeepMind 科学家 Oriol Vinyals 曾表示:「能玩《星际争霸》的人工智能必须能够有效利用记忆,能够进行长期战略规划,同时还得根据不断出现的新情况做出反应调整。以这种标准开发的机器学习系统,最终完全可以应用到现实世界中的任务中去」。
机器之心
2019/04/29
5420
DeepMind星际争霸2 AI首秀即将上演,旭东老仙奶一口?
要玩转这个星际争霸II开源AI,你只需要i5+GTX1050
Reaver 是一个模块化的深度强化学习框架,可提供比大多数开源解决方案更快的单机并行化能力,支持星际争霸 2、OpenAI Gym、Atari、MuJoCo 等常见环境,其网络被定义为简单的 Keras 模型,易于配置和共享设置。在示例中,Reaver 在不到 10 秒钟内通过了 CartPole-v0 游戏,在 4 核 CPU 笔记本上每秒采样率为 5000 左右。
机器之心
2018/12/18
5210
Facebook田渊栋开源游戏平台ELF,简化版《星际争霸》完美测试人工智能
选自Facebook 作者:田渊栋 机器之心编译 参与:李泽南、李亚洲 在人工智能有能力进入现实世界之前,游戏是一种完美的测试环境。此前,谷歌 DeepMind 曾经宣布正在和暴雪共同研究能打《星际争霸》的人工智能,OpenAI 开源了人工智能测试环境 Universe。最近,Facebook 也宣布了自己的人工智能游戏测试平台 ELF。田渊栋等人在其介绍论文中表示,新的测试平台可以支持三种游戏形式:RTS、夺旗游戏和塔防,同时也开放物理引擎。该平台现已开源。 游戏是人工智能研究的完美实验环境。在游戏环境中
机器之心
2018/05/09
8320
Facebook田渊栋开源游戏平台ELF,简化版《星际争霸》完美测试人工智能
DeepMind发布《星际争霸 II》深度学习环境 | 2分钟读论文
来源 / Two Minute Papers 翻译 / 李傲 校对 / 叶俊贤 整理 / 雷锋字幕组 StarCraft II: A New Challenge for Reinforcement L
AI研习社
2018/03/19
1.2K0
DeepMind发布《星际争霸 II》深度学习环境 | 2分钟读论文
教 AI 打牌打游戏,不止是为了战胜人类
场景描述:昨日,DeepMind 宣布其研发的 AI——AlphaStar 将会登录欧服,匿名在天梯上与人类玩家进行《星际争霸 2》比拼。今天,Facebook 与 CMU 合作开发的 AI 赌神 Pluribus ,在六人局的德州扑克比赛中击败人类顶级玩家的消息又刷屏。AI 在游戏比赛中的表现越来越突出,但我们不断训练 AI 在游戏中去战胜人类,最终的目的与意义是什么?
kbsc13
2019/08/16
9140
星际2新智能体开源:单机并行能力强,适应环境广,个人可训练
今天,《星际争霸2》(后称星际2)深度强化学习(DRL)智能体Reaver开源了,引来大量Reddit用户围观。
量子位
2018/12/19
6150
星际2新智能体开源:单机并行能力强,适应环境广,个人可训练
推荐阅读
【重磅】DeepMind进军星际争霸2,谷歌Facebook打响通用AI战争
1.1K0
人工智能开始玩《星际争霸2》 我们对它的研究环境进行了测试
1.2K0
DeepMind联手暴雪:星际II的玩家们,准备好对抗AI了吗(附论文)
5450
人类玩 DOTA2 能赢,是因为 AI 是暴雪爸爸教的
7390
开发 | 星际争霸2人工智能研究环境 SC2LE 初体验
1.5K0
教AI打星际2也不难,试试暴雪和DeepMind的工具包 | 附论文+代码
1K0
终极人机大战要来了?AI打星际2即将直播,DeepMind暴雪发出神秘预告
4550
学界 | 中科院开源星际争霸2宏观运营研究数据集MSC
8460
单机《星际争霸2》AI,不用GPU集群,支持多种训练环境
1.1K0
AI简史 | 星际英雄传说
5530
动态 | DeepMind和暴雪联手发布开发工具和replay数据集,让更多AI研究者玩上星际2
7780
星际争霸界也出了位“带路党”,当年的冠军正帮谷歌AI击败人类
7450
漫谈游戏的深度学习算法,从FPS和RTS角度分析
1.9K0
从FPS到RTS,一文概述游戏人工智能中的深度学习算法
1.6K0
DeepMind星际争霸2 AI首秀即将上演,旭东老仙奶一口?
5420
要玩转这个星际争霸II开源AI,你只需要i5+GTX1050
5210
Facebook田渊栋开源游戏平台ELF,简化版《星际争霸》完美测试人工智能
8320
DeepMind发布《星际争霸 II》深度学习环境 | 2分钟读论文
1.2K0
教 AI 打牌打游戏,不止是为了战胜人类
9140
星际2新智能体开源:单机并行能力强,适应环境广,个人可训练
6150
相关推荐
【重磅】DeepMind进军星际争霸2,谷歌Facebook打响通用AI战争
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档