姓名:郭金? 學(xué)號:17101223407
轉(zhuǎn)載自:https://towardsdatascience.com/a-history-of-rts-ai-research-72339bcaa3ee
【嵌牛導(dǎo)讀】:在 RTS 游戲中進(jìn)行 AI 研究有著悠久的歷史。在過去的十多年里,研究人員一直致力于構(gòu)建能打敗最強(qiáng)人類玩家的機(jī)器人,但是要走的路還很長。在 2016 年的暴雪嘉年華,DeepMind 和暴雪宣布合作,將為星際爭霸 2 的 AI 研究開放 API。
本文旨在討論 RTS 游戲的一些發(fā)展進(jìn)程,以及 AI 研究在其中的貢獻(xiàn)。要想詳細(xì)了解 RTS 游戲相關(guān)研究,還請查看 Onta?on、Robertson 和 Watson 等人的文章。(詳見文末)
【嵌牛鼻子】:人工智能、AI、游戲開發(fā)
【嵌牛提問】:如何利用AI來進(jìn)行游戲開發(fā)?
【嵌牛正文】:
? ? ? 過去的十年里,研究人員已經(jīng)從在 RTS 游戲中獨(dú)立研究不同的 AI 技術(shù)過渡到了在更復(fù)雜的游戲中通過合作和競爭將不同的技術(shù)相互匹配。為了這項(xiàng)工作順利進(jìn)行,需要以下條件:
研究人員構(gòu)建和評估機(jī)器人的開放 API
可以讓研究人員對比不同技術(shù)的競賽
用于訓(xùn)練學(xué)習(xí)算法的錄制回放
人類選手對機(jī)器人的性能進(jìn)行評估
在 2009 年發(fā)布的母巢之戰(zhàn) API 中以上大部分的條件都得到了滿足,但由于平臺的封閉特性使研究人員很難將 AI 系統(tǒng)的訓(xùn)練過程自動化。隨著星際爭霸 2 環(huán)境的公開,研究人員將有機(jī)會開發(fā)一種能夠在 RTS 游戲中表現(xiàn)出專家級性能的系統(tǒng)。下面一些是我認(rèn)為的在朝著這一目標(biāo)的發(fā)展歷程中的重大事件。如果有疏漏還請?jiān)谠u論里留言。
1998
星際爭霸 1 的發(fā)布
星際爭霸原作是在 1998 年 3 月發(fā)布的,資料片母巢之戰(zhàn)也于同年 11 月發(fā)布。它迅速風(fēng)靡全球,并在韓國引發(fā)了職業(yè)游戲的熱潮。
Freecraft
在星際爭霸之前,1995 年發(fā)布了魔獸爭霸 2。魔獸爭霸 2 的克隆版 Freecraft 也在 1998 年首次發(fā)布,它后來更名為 Wargus。這個克隆版構(gòu)建在 Stratagus 游戲引擎上。Freecraft 是 RTS AI 研究的一個重要項(xiàng)目,因?yàn)榇蟛糠值某跏脊ぷ鞫家?Wargus 作為實(shí)驗(yàn)平臺。

2001
學(xué)術(shù)界對游戲 AI 的興趣
游戲 AI 的一篇重要文章是 John Laird 和 Michael van 在 2001 年發(fā)表于《AI Magazine》的文章 Human-Level AI’s Killer Application Interactive Computer Games。這篇文章意義重大,因?yàn)樗?AAAI 的出版物中第一批認(rèn)識到實(shí)時游戲可以作為 AI 研究的良好環(huán)境。它還改變了學(xué)術(shù)研究人員試圖將現(xiàn)有方法應(yīng)用于游戲的心態(tài),轉(zhuǎn)而考慮為游戲構(gòu)建全新的和專門的方法。
2002
魔獸爭霸 3 發(fā)布
魔獸爭霸 3 的一大特色是高度可擴(kuò)展的地圖編輯器,它被用來創(chuàng)建獨(dú)特的內(nèi)容,比如最初版本的 DOTA。地圖編輯器還擁有一些腳本功能,可以用來編寫自定義 AI。然而,以這種方式編寫的 AI 僅局限于單一地圖,腳本語言也僅向作者提供了一個命令子集。研究人員可以在這個框架內(nèi)實(shí)現(xiàn)他們的 AI 技術(shù),但不可能用不同的機(jī)器人互相測試。
2003
RTS 游戲被推薦為 AI 測試平臺
2003 年,Michael Buro 和 Timothy Furtak 發(fā)表了一篇文章稱 RTS 游戲提出了許多構(gòu)建人類水平的 AI 時需要解決的新穎問題。他們還提議開發(fā)一個開源的 RTS 游戲引擎提供給 AI 研究社區(qū)使用。

星際爭霸中的狀態(tài)估計(jì)
2004
ORTS 發(fā)布
接下來一年,Michael Buro 就發(fā)布了第一個版本的開源 RTS 引擎——ORTS。這個游戲在圖形和非圖形模式下都可以運(yùn)行,這讓機(jī)器人可以在成千上萬的游戲過程中快速訓(xùn)練。而使用 ORTS 的一個主要挑戰(zhàn)是,雖然它為人類玩家提供了一個交互界面,但是沒有專家級的人類玩家對機(jī)器人進(jìn)行對抗評估。

ORTS 游戲引擎
第一次 Wargus 研究
Freecraft 更名為 Wargus,它使用 Stratagus 游戲引擎。Wargus 的主要優(yōu)勢之一是它的開源,這為研究人員打開了一個平臺,讓他們可以使用任何技術(shù)進(jìn)行探索。Wargus 面臨的挑戰(zhàn)是缺乏可以用來分析的錄制回放,它沒有活躍的玩家基礎(chǔ),而且在測試機(jī)器人的互相對抗受到網(wǎng)絡(luò)代碼的限制。在使用 Wargus 作為 AI 測試平臺的文章中,Marc Ponsen 是最早的發(fā)表者之一。
TIELT 的提出
在 2004 年提出的另一個 AI 項(xiàng)目是 TIELT 系統(tǒng),它是一個 AI 框架,為多個游戲主題提供統(tǒng)一的 API。該系統(tǒng)的目標(biāo)之一是讓研究人員可以為一款游戲開發(fā) AI 并將學(xué)到的知識轉(zhuǎn)移到新的游戲中。例如,在 Wargus 中學(xué)到的領(lǐng)域知識可能適用于其他 RTS 游戲。我在這里討論 TIELT 正是因?yàn)?DeepMind 和暴雪的合作成果之一就是一個 API 和潛在的樣本數(shù)據(jù)集。對于這個 API 來說,重要的是不要為 AI 的操作做出假設(shè)。TIELT 面臨的挑戰(zhàn)在于它沒有提供直接進(jìn)入游戲狀態(tài)的權(quán)限,這也就限制了可以利用它的 AI 技術(shù)的數(shù)量。這個系統(tǒng)許多目標(biāo)現(xiàn)在都已經(jīng)在 Facebook 的 ELF 平臺實(shí)現(xiàn)了。

TIELT 架構(gòu)
2005
Wargus 中的增強(qiáng)學(xué)習(xí)
Wargus 迅速成為研究人員開發(fā) RTS AI 的環(huán)境。2005 年,研究人員開始探索強(qiáng)化學(xué)習(xí)技術(shù),這正是 AlphaGo 使用的策略之一。最終由于研究人員無法對彼此的工作進(jìn)行對抗評估導(dǎo)致 Wargus 的工作停滯不前,他們太過依賴一小部分硬編碼腳本的性能。
2006
第一次 ORTS 競賽
在 2005 年公布了第一次 ORTS AI 競賽,該活動在舉辦于斯坦福的 AIIDE 2006 大會上舉行。第一次比賽有 4 個參賽項(xiàng)目,比賽規(guī)模逐年增加,直到 2009 年結(jié)束。
2007
IICup 啟動
International Cyber Cup 是星際爭霸的第三方服務(wù)器平臺。這個服務(wù)器對 AI 研究非常重要,因?yàn)槟憧梢栽谶@個服務(wù)器上運(yùn)行機(jī)器人,不過它不是暴雪官方服務(wù)器。這個服務(wù)器的另一個優(yōu)點(diǎn)是為玩家提供了一個字母評分,玩家可以用來輕松地交流技術(shù)。例如,我在 2010 年認(rèn)真玩的時候最高拿到了 D+。
2008
第一次星際爭霸 AI 研究
我所知道的第一篇關(guān)于星際爭霸 AI 構(gòu)建的文章是在 2008 年發(fā)表的。Hsieh 和 Sun 通過挖掘數(shù)千的游戲錄制構(gòu)建了一個模型來預(yù)測玩家會生產(chǎn)什么建筑和單位。

星際爭霸建造指令預(yù)測
2009
母巢之戰(zhàn) API 發(fā)布
在 2009 年,我發(fā)現(xiàn)了一個叫做 BWAPI(母巢之戰(zhàn) API)的 Goole 代碼項(xiàng)目,它提供了星際爭霸的編程接口。該庫使用了一個第三方 DDL 工具將 API 注入到星際爭霸的運(yùn)行環(huán)境并提供一系列調(diào)用游戲內(nèi)部函數(shù)的掛鉤。自此之后,該項(xiàng)目的貢獻(xiàn)者規(guī)模不斷增長并且被移植到了多種語言。它現(xiàn)在托管在 GitHub 上并且有一個 Java 版本。
2010
星際爭霸 2 發(fā)布
在 2010 年,星際爭霸 2 自由之翼發(fā)布,母巢之戰(zhàn)的競賽也繼續(xù)活躍了幾年。2013 年又發(fā)布了蟲族之心資料片,2015 年發(fā)布了虛空之遺。
第一屆星際爭霸競賽
第一屆星際爭霸 AI 競賽在 AIIDE 2010 舉辦。其主要賽事由伯克利 Overmind 團(tuán)隊(duì)獲勝。競賽中還出現(xiàn)了人對抗機(jī)器的表演賽,人類選手輕易地?fù)魯×?AI 對手。

伯克利 Overmind 團(tuán)隊(duì)
2011
第二屆 AIIDE 星際爭霸競賽
艾伯塔大學(xué)的 Dave Churchill 主辦了第二屆以及后續(xù)的 AIIDE 星際爭霸競賽。他編寫了一個錦標(biāo)賽框架,可以自動運(yùn)行錦標(biāo)賽,并修改了一些規(guī)則以促進(jìn)合作,比如要求必須開源提交。
學(xué)生星際爭霸 AI 錦標(biāo)賽

第二屆星際爭霸錦標(biāo)賽開始后,學(xué)生的提交成為重點(diǎn)。錦標(biāo)賽不再與每年的大會聯(lián)系在一起,而是每年舉辦好幾次。
https://sscaitournament.com/
2013
星際爭霸母巢之戰(zhàn)機(jī)器人天梯
Krasi0 為星際機(jī)器人開發(fā)了一個全天候運(yùn)行的天梯系統(tǒng)。這為研究人員提供了一個評估不同 AI 方法的環(huán)境。
2014
星際爭霸 2 自動化玩家
Matt Webcorner 演示了一個星際爭霸 2 機(jī)器人,它可以通過攔截 DirectX 命令來推斷游戲狀態(tài)。這種方法的主要限制之一是該機(jī)器人只能訪問當(dāng)前顯示在屏幕上的游戲狀態(tài)。
2016
AlphGo 擊敗李世石
2016 年 3 月,DeepMind 的 AlphaGo 系統(tǒng)擊敗了圍棋世界冠軍李世石。這次勝利之后,許多人認(rèn)為星際爭霸將是 DeepMind 的下一個挑戰(zhàn)目標(biāo)。
Facebook 加入
2016 年 Facebook 的 AI 研究人員開始使用星際爭霸作為強(qiáng)化學(xué)習(xí)測試平臺。他們發(fā)表了一篇關(guān)于星際爭霸中的微觀管理的文章。他們的機(jī)器人參加了 AIIDE2017 競賽,但是它的學(xué)習(xí)模式表現(xiàn)不如重點(diǎn)關(guān)注腳本的機(jī)器人。
暴雪嘉年華公告
在 2016 暴雪嘉年華,DeepMind 宣布他們正與暴雪合作開發(fā)一個 AI 的開放平臺?,F(xiàn)在 Google 與 Facebook 競相開發(fā)專業(yè)級星際爭霸游戲的機(jī)器人,競爭也變得日趨激烈。
2017
星際爭霸 2 API 發(fā)布
暴雪在 8 月 9 日發(fā)布了用于編寫機(jī)器人的星際爭霸 2API,同時揭曉了一個編寫機(jī)器人的工作室。