星际争霸2十周年成就图文(星际争霸2AI环境与库大阅兵)(1)

上一期介绍了星际争霸2 AI环境的基础安装,本期我们对星际争霸2 AI环境与第三方库与平台进行个整体大阅兵,生态丰富活跃。

星际争霸2安装

不打战役,只为联网对战、进行AI训练,不需要安装安装整个近30G的安装包,安装到“最佳体验”(Optimal)时就可以暂停安装,此时只占下载安装了8G空间;或者在之前的“可运行”(playable)就暂时,此时只下载安装5G空间,但画质贴图没那么高清。

星际争霸2十周年成就图文(星际争霸2AI环境与库大阅兵)(2)

Blizzard/s2client-proto

https://github.com/Blizzard/s2client-proto

暴雪官方开发的的StarCraft II API是提供对StarCraft II完全外部控制的接口。

通过该API连接星际争霸客户端,可以实现如下功能:

该API在Windows和Mac客户端中可用。 同时也提供Linux Headless(无头模式,即没有游戏贴图GUI,只有简单的像素)客户端的API。

该API提供Python与C 语言的接口。

deepmind/pysc2

https://github.com/deepmind/pysc2

PySC2是星际争霸2的机器学习环境(SC2LE)。

PySC2是由DeepMind开发的星际争霸2机器学习环境(SC2LE)的Python组件。 它公开了暴雪娱乐公司的StarCraft II机器学习API作为Python RL(强化学习)环境。 这是DeepMind与暴雪之间的合作,旨在将《星际争霸2》开发成丰富的RL研究环境。 PySC2为RL代理提供了与StarCraft 2进行交互的界面,以获取观察结果并发送动作。

先来看一段训练后的AI如何可以正常采矿(右侧)。

星际争霸2十周年成就图文(星际争霸2AI环境与库大阅兵)(3)

机器的操作

星际争霸2十周年成就图文(星际争霸2AI环境与库大阅兵)(4)

机器看到的视图

BurnySc2/python-sc2

https://github.com/BurnySc2/python-sc2

适用于Python 3的StarCraft II机器人API客户端库。

该库提供用Python 3编写适用于StarCraft II的AI Bots,是一个易于使用的库。其最终目标是简单易用,同时仍保留所有功能。 其提倡,一个真正简单的rush机器人应该不超过二十行代码,而不是两百行代码。 同时,该库旨在提供高级和低级抽象。

示例bot代码:

import sc2 from sc2 import run_game, maps, Race, Difficulty from sc2.player import Bot, Computer ​ class WorkerRushBot(sc2.BotAI):    async def on_step(self, iteration: int):        if iteration == 0:            for worker in self.workers:                self.do(worker.attack(self.enemy_start_locations[0])) ​ run_game(maps.get("Abyssal Reef LE"), [    Bot(Race.Zerg, WorkerRushBot()),    Computer(Race.Protoss, Difficulty.Medium) ], realtime=True)

Cryptyc/Sc2LadderServer

https://github.com/Cryptyc/Sc2LadderServer

适用于SC2 API的开源C 编写的天梯服务器。

sc2ai.net

http://sc2ai.net/

星际争霸2的AI天梯。可以上传自己的AI bot进行比赛。

其wiki给出了如何进行训练、上传、代码库的说明 http://wiki.sc2ai.net/Main_Page。

星际争霸2十周年成就图文(星际争霸2AI环境与库大阅兵)(5)

ai-arena.net

https://ai-arena.net/

星际争霸2 AI 竞技场,另一个AI天梯。

星际争霸2十周年成就图文(星际争霸2AI环境与库大阅兵)(6)

星际争霸1的 AI 比赛与环境

星际争霸1的 AI 环境,提供C 接口,https://github.com/bwapi/bwapi。

星际争霸1的 AI 比赛排名网站:https://sscaitournament.com/

,