譯者 | 李夢
編輯 | Vincent
AI前線出品| ID:ai-front
AI 前線導語:「在 RTS 遊戲中進行 AI 研究有着悠久的歷史。在過去的十多年裏,研究人員一直致力於構建能戰勝最強人類玩家的機器人,可是要走的路還很長。在 2016 年的暴雪嘉年華,DeepMind 和暴雪宣佈合做,將爲星際爭霸 2 的 AI 研究開放 API。算法
本文旨在討論 RTS 遊戲的一些發展進程,以及 AI 研究在其中的貢獻。要想詳細瞭解 RTS 遊戲相關研究,還請查看 Ontañon、Robertson 和 Watson 等人的文章」。(詳見文末)編程
過去的十年裏,研究人員已經從在 RTS 遊戲中獨立研究不一樣的 AI 技術過渡到了在更復雜的遊戲中經過合做和競爭將不一樣的技術相互匹配。爲了這項工做順利進行,須要如下條件:服務器
在 2009 年發佈的母巢之戰 API 中以上大部分的條件都獲得了知足,但因爲平臺的封閉特性使研究人員很難將 AI 系統的訓練過程自動化。隨着星際爭霸 2 環境的公開,研究人員將有機會開發一種可以在 RTS 遊戲中表現出專家級性能的系統。下面一些是我認爲的在朝着這一目標的發展歷程中的重大事件。若是有疏漏還請在評論裏留言。網絡
1998架構
星際爭霸 1 的發佈框架
星際爭霸原做是在 1998 年 3 月發佈的,資料片母巢之戰也於同年 11 月發佈。它迅速風靡全球,並在韓國引起了職業遊戲的熱潮。編輯器
Freecraft函數
在星際爭霸以前,1995 年發佈了魔獸爭霸 2。魔獸爭霸 2 的克隆版 Freecraft 也在 1998 年首次發佈,它後來改名爲 Wargus。這個克隆版構建在 Stratagus 遊戲引擎上。Freecraft 是 RTS AI 研究的一個重要項目,由於大部分的初始工做都以 Wargus 做爲實驗平臺。工具
2001性能
學術界對遊戲 AI 的興趣
遊戲 AI 的一篇重要文章是 John Laird 和 Michael van 在 2001 年發表於《AI Magazine》的文章 Human-Level AI’s Killer Application Interactive Computer Games。這篇文章意義重大,由於它是 AAAI 的出版物中第一批認識到實時遊戲能夠做爲 AI 研究的良好環境。它還改變了學術研究人員試圖將現有方法應用於遊戲的心態,轉而考慮爲遊戲構建全新的和專門的方法。
2002
魔獸爭霸 3 發佈
魔獸爭霸 3 的一大特點是高度可擴展的地圖編輯器,它被用來建立獨特的內容,好比最第一版本的 DOTA。地圖編輯器還擁有一些腳本功能,能夠用來編寫自定義 AI。然而,以這種方式編寫的 AI 僅侷限於單一地圖,腳本語言也僅向做者提供了一個命令子集。研究人員能夠在這個框架內實現他們的 AI 技術,但不可能用不一樣的機器人互相測試。
2003
RTS 遊戲被推薦爲 AI 測試平臺
2003 年,Michael Buro 和 Timothy Furtak 發表了一篇文章稱 RTS 遊戲提出了許多構建人類水平的 AI 時須要解決的新穎問題。他們還提議開發一個開源的 RTS 遊戲引擎提供給 AI 研究社區使用。
星際爭霸中的狀態估計
2004
ORTS 發佈
接下來一年,Michael Buro 就發佈了第一個版本的開源 RTS 引擎——ORTS。這個遊戲在圖形和非圖形模式下均可以運行,這讓機器人能夠在成千上萬的遊戲過程當中快速訓練。而使用 ORTS 的一個主要挑戰是,雖然它爲人類玩家提供了一個交互界面,可是沒有專家級的人類玩家對機器人進行對抗評估。
ORTS 遊戲引擎
第一次 Wargus 研究
Freecraft 改名爲 Wargus,它使用 Stratagus 遊戲引擎。Wargus 的主要優點之一是它的開源,這爲研究人員打開了一個平臺,讓他們可使用任何技術進行探索。Wargus 面臨的挑戰是缺少能夠用來分析的錄製回放,它沒有活躍的玩家基礎,並且在測試機器人的互相對抗受到網絡代碼的限制。在使用 Wargus 做爲 AI 測試平臺的文章中,Marc Ponsen 是最先的發表者之一。
TIELT 的提出
在 2004 年提出的另外一個 AI 項目是 TIELT 系統,它是一個 AI 框架,爲多個遊戲主題提供統一的 API。該系統的目標之一是讓研究人員能夠爲一款遊戲開發 AI 並將學到的知識轉移到新的遊戲中。例如,在 Wargus 中學到的領域知識可能適用於其餘 RTS 遊戲。我在這裏討論 TIELT 正是由於 DeepMind 和暴雪的合做成果之一就是一個 API 和潛在的樣本數據集。對於這個 API 來講,重要的是不要爲 AI 的操做作出假設。TIELT 面臨的挑戰在於它沒有提供直接進入遊戲狀態的權限,這也就限制了能夠利用它的 AI 技術的數量。這個系統許多目標如今都已經在 Facebook 的 ELF 平臺實現了。
TIELT 架構
2005
Wargus 中的加強學習
Wargus 迅速成爲研究人員開發 RTS AI 的環境。2005 年,研究人員開始探索強化學習技術,這正是 AlphaGo 使用的策略之一。最終因爲研究人員沒法對彼此的工做進行對抗評估致使 Wargus 的工做停滯不前,他們太過依賴一小部分硬編碼腳本的性能。
2006
第一次 ORTS 競賽
在 2005 年公佈了第一次 ORTS AI 競賽,該活動在舉辦於斯坦福的 AIIDE 2006 大會上舉行。第一次比賽有 4 個參賽項目,比賽規模逐年增長,直到 2009 年結束。
2007
IICup 啓動
International Cyber Cup 是星際爭霸的第三方服務器平臺。這個服務器對 AI 研究很是重要,由於你能夠在這個服務器上運行機器人,不過它不是暴雪官方服務器。這個服務器的另外一個優勢是爲玩家提供了一個字母評分,玩家能夠用來輕鬆地交流技術。例如,我在 2010 年認真玩的時候最高拿到了 D+。
2008
第一次星際爭霸 AI 研究
我所知道的第一篇關於星際爭霸 AI 構建的文章是在 2008 年發表的。Hsieh 和 Sun 經過挖掘數千的遊戲錄製構建了一個模型來預測玩家會生產什麼建築和單位。
星際爭霸建造指令預測
2009
母巢之戰 API 發佈
在 2009 年,我發現了一個叫作 BWAPI(母巢之戰 API)的 Goole 代碼項目,它提供了星際爭霸的編程接口。該庫使用了一個第三方 DDL 工具將 API 注入到星際爭霸的運行環境並提供一系列調用遊戲內部函數的掛鉤。自此以後,該項目的貢獻者規模不斷增加而且被移植到了多種語言。它如今託管在 GitHub 上而且有一個 Java 版本。
2010
星際爭霸 2 發佈
在 2010 年,星際爭霸 2 自由之翼發佈,母巢之戰的競賽也繼續活躍了幾年。2013 年又發佈了蟲族之心資料片,2015 年發佈了虛空之遺。
第一屆星際爭霸競賽
第一屆星際爭霸 AI 競賽在 AIIDE 2010 舉辦。其主要賽事由伯克利 Overmind 團隊獲勝。競賽中還出現了人對抗機器的表演賽,人類選手輕易地擊敗了 AI 對手。
伯克利 Overmind 團隊
2011
第二屆 AIIDE 星際爭霸競賽
艾伯塔大學的 Dave Churchill 主辦了第二屆以及後續的 AIIDE 星際爭霸競賽。他編寫了一個錦標賽框架,能夠自動運行錦標賽,並修改了一些規則以促進合做,好比要求必須開源提交。
學生星際爭霸 AI 錦標賽
第二屆星際爭霸錦標賽開始後,學生的提交成爲重點。錦標賽再也不與每一年的大會聯繫在一塊兒,而是每一年舉辦好幾回。
2013
星際爭霸母巢之戰機器人天梯
Krasi0 爲星際機器人開發了一個全天候運行的天梯系統。這爲研究人員提供了一個評估不一樣 AI 方法的環境。
2014
星際爭霸 2 自動化玩家
Matt Webcorner 演示了一個星際爭霸 2 機器人,它能夠經過攔截 DirectX 命令來推斷遊戲狀態。這種方法的主要限制之一是該機器人只能訪問當前顯示在屏幕上的遊戲狀態。
2016
AlphGo 擊敗李世石
2016 年 3 月,DeepMind 的 AlphaGo 系統擊敗了圍棋世界冠軍李世石。此次勝利以後,許多人認爲星際爭霸將是 DeepMind 的下一個挑戰目標。
Facebook 加入
2016 年 Facebook 的 AI 研究人員開始使用星際爭霸做爲強化學習測試平臺。他們發表了一篇關於星際爭霸中的微觀管理的文章。他們的機器人蔘加了 AIIDE2017 競賽,可是它的學習模式表現不如重點關注腳本的機器人。
暴雪嘉年華公告
在 2016 暴雪嘉年華,DeepMind 宣佈他們正與暴雪合做開發一個 AI 的開放平臺。如今 Google 與 Facebook 競相開發專業級星際爭霸遊戲的機器人,競爭也變得日趨激烈。
2017
星際爭霸 2 API 發佈
暴雪在 8 月 9 日發佈了用於編寫機器人的星際爭霸 2API,同時揭曉了一個編寫機器人的工做室。
查看原文:
https://towardsdatascience.com/a-history-of-rts-ai-research-72339bcaa3ee
參考資料
[1]: