星際爭霸AI研究相關工具資料整理

作為老牌的RTS遊戲,星際爭霸系列已經博得了眾多玩家的喜愛,同時也吸引了人工智慧相關研究人員的興趣,尤其是在谷歌DeepMind宣布將星際爭霸作為圍棋之後的研究項目以來,星際爭霸的AI研究掀起了一波熱潮。

為了方便研究者與開發人員的研究與開發,在此我將星際爭霸相關的工具資料和文獻進行整理與簡要的評價,由於篇幅較長,分為工具資料篇與文獻篇,本篇為工具資料篇。

一、星際爭霸一相關開發工具

1、BWAPI

BWAPI全稱為Brood War API,是某位高手黑客hack了星際爭霸:母巢之戰底層數據之後整合的API。雖然Hack了底層數據,但是API中只暴露了玩家可以觀測到的內容,而戰爭迷霧之後的信息並不會顯示,也就最大程度的保證了公平性。現在星際爭霸絕大部分的AI開發會依賴於該API,下面介紹的星際爭霸一的工具均依賴於該API。

現在在github上有眾多語言版本的BWAPI介面封裝,方便使用不同編程語言的人開發,官方支持的語言為C++,Java兩種。

官方網址:

The Brood War APIbwapi.github.io

github地址:

bwapi/bwapigithub.com圖標

2、CommandCenter

由阿爾伯塔的著名RTS研究人員David Churchill基於著名的UAlbertaBot開發的星際AI框架,可以同時應用於星際一與星際二兩個遊戲,該框架集成了底層的簡單操作,可以大幅提升開發效率。

github地址:

davechurchill/commandcentergithub.com圖標

3、TorchCraft

由FaceBook研發人員開發,實現了Torch機器學習框架與星際爭霸之間的通信。由於Torch是著名的深度學習框架,使用TorchCraft可以更方便地在星際爭霸平台上進行深度學習與強化學習的研究。

github地址:

TorchCraft/TorchCraftgithub.com圖標

論文地址:

a Library for Machine Learning Research on Real-Time Strategy Gamesarxiv.org

4、BWEM

基於BWAPI的地圖分析工具,提供對星際爭霸一地圖的分析,可以獲取例如平坦區域,路口,基地位置等信息。一個尤其有用的功能是,從路口分析信息中,開發AI的人員可以直接獲取堵口建築的建造位置,而不必自行分析計算。

SourceForge地址:

http://sourceforge.net/projects/BWEMsourceforge.net

BWEM

BWEMsourceforge.net

官網地址:

BWEM library HomepageBWEM.sourceforge.net圖標

二、星際爭霸一相關比賽

現在星際爭霸一相關的比賽主要包括SSCAIT、CIG和AIIDE。David Churchill在AIIDE 2017發表的一篇論文對此三者有很好的總結與評述:

http://agents.fel.cvut.cz/~certicky/files/publications/aiide17-certicky-churchill.pdfagents.fel.cvut.cz

下面將分別簡要對以上三個比賽進行介紹:

1、SSCAIT:

全稱是Student StarCraft AI Tournament,這個比賽主要面對的是主修人工智慧與計算機科學的學生,可以在SSCAIT的官方網站上提交bot,網站會自動進行對戰並直播:

官方網站:

http://www.sscaitournament.com/www.sscaitournament.com

2、CIG

全稱是: Computational Intelligence in Games,是每年8月份左右舉行的遊戲AI重要會議IEEE CIG會議的比賽的一部分(CIG比賽還包括Dota2,爐石,憤怒的小鳥等等,甚至包括pokemon的比賽)。

2018年IEEE CIG會議中星際爭霸比賽的部分如下:

IEEE CIG StarCraft AI Competition - Sejong Universitycilab.sejong.ac.kr圖標

3、AIIDE

全稱是Artificial Intelligence and Interactive Digital Entertainment,是受到AAAI支持的一個研究遊戲AI的會議,大約每年10月份舉辦,AIIDE與IEEE CIG是遊戲AI研究的兩個重要會議。

2017年AIIDE的星際爭霸比賽如下:

StarCraft AI Competitionwww.cs.mun.ca圖標

更多信息可以參考在StarcraftAI的wiki,鏈接地址:

http://www.starcraftai.com/wiki/Main_Pagewww.starcraftai.com

三、星際爭霸二相關工具

在2017年年中deepmind宣布開發星際二AI失敗以及開放pysc2機器學習平台之後,星際二的AI研究出現了一個小的浪潮,但是其從根本上與星際一之間沒有大的差別,並且星際二運行時對電腦配置要求高,並且不能隨意加速,導致在訓練AI,測試bot時與星際一的效率有較大的差別。因此最近的很多星際相關的研究文章均是以星際一為平台。

1、s2client-proto & s2client-api

s2client-proto是暴雪官方開放的星際二通信介面,當前所有的星際二相關工具均依賴於該通信介面。s2client-api是暴雪官方對介面包裝的c++庫,方便開發者進行AI開發。

s2client-proto地址:

Blizzard/s2client-protogithub.com圖標

s2client-api地址:

Blizzard/s2client-apigithub.com圖標

2、CommandCenter

這貨又來了,在升級之後,該框架同時支持星際一與星際二。

davechurchill/commandcentergithub.com圖標

3、pysc2

谷歌開發的著名的星際二機器學期平台,其為星際的一個python介面,將星際中的狀態信息轉換成向量的形式(主要以簡化圖像的形式)提供給調用者,可以非常方便地應用於強化學習以及機器學習演算法。

我使用了一段時間的pysc2,發現pysc2表示狀態的圖像數據是有很大局限性的,pysc2以不同feature layer的圖像表示不同的信息,例如單位信息表示為一個feature layer上的特定數字標號的區域,這種形式導致一則不容易表示重疊的單位,二則是因為數據離散化導致深度學習演算法應用困難(例如二維圖像矩陣中,數字1的單元表示此處槍兵,數字2的單元表示此處雷神,一旦單位種類變多,則演算法學習困難度會極大提升)

但是pysc2針對一些簡單的星際二小遊戲,例如微操場景或者收集礦石碎片場景,工作的還是比較好的。

pysc2的鏈接:

deepmind/pysc2github.com圖標

4、python-sc2

這是個人開發的基於python的bot開發框架,可以快速開發出一個可堪使用的bot來,介面簡單,易於上手。但是由於這是個人開發,因此難免有bug。

鏈接:

Dentosal/python-sc2github.com圖標

四、星際爭霸2比賽平台

現存主要的比賽平台是Starcraft 2 AI Ladder,但是由於開發星際二bot的人數不多,提交到這個平台的bot數量很少,也沒有平時的直播,該平台也不能進行自動對戰。

鏈接:

Starcraft 2 AI Laddersc2ai.net圖標

更多信息可以參考在Starcraft2 AI的wiki,鏈接地址

Starcraft 2 AIwiki.sc2ai.net

以上基本上就是星際AI研發的工具與比賽平台,若有錯漏,希望大家及時儘快提出~


推薦閱讀:

人工智慧方面頂級會議(轉)
python機器學習的準備工作
全球最聰明的大腦怎麼看AI?他們預測了這13大發展趨勢
斯坦福CS231n項目實戰(二):線性支持向量機SVM
人工智慧背後的數據科學

TAG:人工智慧 | 機器學習 |