人類玩 DOTA2 能贏,是因為 AI 是暴雪爸爸教的
- 2019 年 11 月 29 日
- 筆記

作者:Tommy Thompson
AI &遊戲 資深研究專家
YouTube @TableFlipGames
超神經HyperAI 導讀
人類終於在 DOTA2 上贏 AI 了呢。
今天,DOTA2 全球頂級賽事 Ti8(The International DOTA2 Championships)淘汰賽進入到第三日,除了惋惜中國戰隊 VG 遺憾出局之外。之後舉行的 OpenAIFive 大戰Pain 戰隊則成了一大亮點,不同於上次 OpenAI 大敗 Dendi,這一次 OpenAIFive 首場以敗北告終,人類戰隊似乎又看到了一點希望。
但其實,在 OpenAI 進行訓練的時候,通常是用暴雪爸爸出品的「星際爭霸」,這一直是很多玩家心中的經典之作,地位並不亞於「魔獸世界」。
作為一款即時策略遊戲,依靠多兵種協作、宏觀策略規劃等遊戲機制,在同一場遊戲中能產生無數中可能,對訓練 AI 在不確定性場景中的決策能力和算法效率很有幫助。如今,這款遊戲已經成為 Google、微軟等知名科技公司的 AI 試驗場。
即時策略遊戲:最適合訓練 AI 的遊戲
即時策略遊戲(Real Time Strategy Games,簡稱 RTS)是策略遊戲的一種,跟回合制遊戲不同,這種遊戲可以即時進行,玩家在遊戲中通常扮演決策者,需要進行調兵遣將、制定策略等宏觀操作。最常見的即時遊戲除了的「星際爭霸」,還有「魔獸爭霸」、「紅色警戒」等。
這類遊戲一般設有迷霧機制,即所有玩家的視野有限,只能看見自身周邊的場景。玩家需要通過探索世界搜集資源,用來建設基地和打造科技樹(比如通過各種材料合成武器等),只有成功摧毀敵方工事,並消滅敵人,或者抵禦住所有進攻才能獲勝。

在遊戲過程中,如何合理分配資源,制定攻防計劃,對地圖理解程度如何等,都將成為影響對戰結果的關鍵。
這就要求玩家在進行遊戲時,除了不斷對未知世界進行探索,還要時刻觀察對戰狀態,制定攻防戰略,加上這類遊戲搜索空間巨大,一場遊戲中可能存在無數種可能。因此,RTS 遊戲很適合用來訓練 AI 在不確定性場景中的決策能力,檢驗 AI 的算法效率。
訓練 AI ,從征服「星際爭霸」開始
而在所有的 RTS 遊戲中,「星際爭霸」無疑是最佳選擇。
這款遊戲知名度高,玩家眾多,可以提供大量訓練 AI 所需要的人類玩家數據。而且,這款遊戲非常複雜,能有效檢驗 AI 模型的算法效率。於是,從很早開始,就不斷有研發人員希望通過「星際爭霸」來訓練 AI 模型。
「星際爭霸」作為一款在不完全信息下的遊戲,128 x 128 的地圖範圍可以創造出巨大的搜索空間。目前圍棋的搜索空間大概在 10170,「星際爭霸」的搜索空間能達到 101685。而且還允許創造最多 400 個兵種單位,各類兵種擁有不同的屬性,可以在遊戲中創造出無數中可能,因此,AI 需要運行更多算法進行應對。

星際爭霸 2017 重製版
此外,遊戲中不同陣營的玩家隨時都會相遇,需要 AI 在毫秒內做出反應。這需要AI具備記憶和即時信息分析能力,能夠綜合所有隨機遭遇,或偵察到的情況,不斷調整遊戲策略。另外,遊戲作為虛擬場景,訓練中的試錯成本非常低。這些因素讓「星際爭霸」成為 AI 訓練的理想場所。
AI 是怎麼學會的?
ORTS:
專為 AI 研究搭建的 RTS 對戰平台
ORTS 全稱為 Open Real Time Strategy,是一個開放 RTS API 的即時策略遊戲平台。2003 年,由加拿大阿爾伯塔大學的計算機科學教授 Michael Buro(邁克爾·布羅)專門開發,用於在 RTS 遊戲上訓練 AI 模型。
這款搭載 OpenGL API 的 3D RTS 遊戲平台,可以模仿市面上大部分即時策略遊戲,還能處理 3D 圖像。ORTS 的通信協議和源代碼全部對外開放,用戶可以免費訪問大量地圖、模型、軍隊數據等,遠程構建 AI 控制器,用於訓練 AI 模型。

開放即時戰略遊戲(ORTS)平台,可以在 GitHub 上查看該項目
獲取鏈接為:https://github.com/benoit-dumas/OpenRTS
ORTS 為研發人員在即時策略遊戲中創建 AI 控制器創造了條件,但它僅能複製現有 RTS 遊戲的運行機制,仍不能直接接入原生遊戲。由於很少有人類玩家參與,因此 ORTS 大部分時間只有 AI 玩家。
終於,故事在 2009 年出現了轉機,ORTS 跟暴雪達成協議,在 ORTS 舉辦的最後一屆 RTS AI 競賽上,發佈了的 API——BWAPI(「星際爭霸:母巢之戰」官方 API),這也是「星際爭霸」系列首個對外 AI API。
BWAPI:
可直接在「星際爭霸」中創建 AI 角色
BWAPI 是一個開源的 C++ 框架,意味着所有研發人員都可以在「星際爭霸」中訓練自己的 AI 模型。BWAPI 可以為 AI 模型提供人類玩家的遊戲數據,以及當前遊戲狀態、可用兵種類型、科技樹情況等信息。
在對戰中,為防止 AI 玩家作弊,系統規定只有當敵方玩家沒有被迷霧遮擋,且處於 AI 模型視野之內,才能獲取對方的位置、屬性等信息。
不過,由於在同一個給定框架中,AI 可以進行比人類玩家更多的操作。因此,在遊戲過程中可能會出現一些奇怪的行為,比如在牆壁上行走的陸地兵,以及四處滑動的建築物。
雖然 BWAPI 在實際應用過程中還存在缺陷,但不可否認它成功實現在「星際爭霸」中訓練 AI 模型的設想,推動了 AI 的發展。也為後來 AIIDE(人工智能和互動數字娛樂會議)舉辦「星際爭霸」大賽奠定了基礎。
AIIDE:
讓更多人參與到「星際爭霸」AI 競賽
2010 年,AIIDE 作為當時世界上最大的遊戲 AI 研究會議之一,舉辦了首屆僅由 AI 參與的「星際爭霸 AI 錦標賽」。比賽總共分為 4 場,每場比賽都有不同的側重點,用來展現 AI 模型在不同實戰場景中的表現。
- 第一場和第二場側重於在複雜地形上的兵種單位管理;
- 第三場則採用視野全開的無迷霧區模式,但禁止使用高級兵種;
- 第四場為常規對抗,有迷霧也可以使用高級兵種;
這屆競賽取得巨大成功,總共有 26 個 AI 團隊參賽,其中 17 個團隊完成全部比賽。首屆比賽冠軍由蟲族 AI 玩家 Overmind 獲得,Overmind 是由加州大學研究團隊開發。
值得一提的是,Overmind 的開發者,現 Google DeepMind 研究科學家 Oriol Vinyals 曾是西班牙「星際爭霸」冠軍。Overmind 雖然在 AIIDE 比賽中獲勝,但卻很難擊敗人類玩家 Oriol Vinyals。
2011 年,隨着參賽者越來越多,為保證比賽公平性,AIIDE 要求 AI 玩家必須公開源代碼,所有比賽都將在基於 C/S(客戶/服務器模式)架構的服務器上進行。

在這一年舉辦的第二屆「星際爭霸 AI 競賽」上,來自英國的 SkyNet(天網),採用了注重早期防禦和周期性衝鋒的策略斬獲冠軍,這位 AI 玩家是由英國工程師 Andrew Smith 一個人研發,證明 AI 算法在策略制定上的可能性。
再到 2012 年,AIIDE 競賽已經可以實現永久存儲比賽錄像,這意味着 AI 可以通過觀看之前的比賽來學習。如今,AIIDE 仍在繼續舉辦「星際爭霸」AI 競賽,希望藉此鼓勵更多人參與研發「星際爭霸」AI 模型,以推動 AI 發展。
在 2011 年 AIIDE 舉辦第二屆比賽時,另一場專門針對大學生等業餘 AI 玩家的「星際爭霸」AI 大賽也悄然展開。
SSCAIT:
專為學生及業餘玩家設立
SSCAIT(「星際爭霸」學生 AI 大賽)由斯洛伐克哲學博士 Michal Certicky 在 2011 年成立,主要為在校大學生、研究生以及社會上所有對「星際爭霸」AI 競賽感興趣的玩家而立。
通過 BWAPI,幾乎所有人都能開發屬於自己的星際 AI 控制器。
SSCAIT 比 AIIDE 更加開放,賽制也發生了變化,並且可以在 Twitch 觀看練習賽和正賽的直播。比賽採用 1 對 1 近身肉搏戰,當一方的建築物被全部摧毀,或者程序崩潰,遲遲無法做出決策時,就會被判出局。
即便 AI 在「星際爭霸」競賽中不斷進步,在很多其他遊戲上的表現也要優於人類,但在「星際爭霸」人機對戰上,截至目前,人類的水準依然可以完勝 AI 。
人機對戰,人類還是略勝一籌
AIIDE 曾舉辦過一場 AI 與人類玩家的比賽,由 2015 年「星際爭霸」AI 大賽前三甲對陣俄羅斯「星際爭霸」職業選手 Djem5,但沒有一次取勝。
2017 年,韓國首爾的世宗大學也舉辦了一場人機對抗賽,四位 AI 玩家對陣韓國「星際爭霸」職業選手,同時也是世界上最強的職業玩家之一——Song Byung Gu(宋炳具)。
這四位 AI 選手分別是來自世宗大學的 MJ Bot、ZZZKBot 和 tscmoo 以及 Facebook AI 實驗室的 CherryPi,四位 AI 選手均在 27 分鐘內(最快的四分半)被擊敗。
因此,在創造出 Alpha Go 後,Google AI 實驗室 DeepMind 團隊盯上「星際爭霸》」,希望能再次戰勝人類。
Google DeepMind 推出「星際爭霸2」官方 API
2017 年 8 月,DeepMind 正式宣布跟暴雪公司合作,聯合推出「星際爭霸 Ⅱ」官方 AI API——SC2LE(譯作:星際爭霸 2 AI 研究環境)。
這是一個專為開發人員研究 AI 準備的工具集,不過僅適用於「星際爭霸 Ⅱ」。在保留很多 BWAPI 特性的同時,加入了一些新功能:
- 可以使用 Python 語言在遊戲中搭建AI模型;
- 可觀看比賽回放;
- 遊戲進程可以加速(對於訓練 AI 非常有用);
- 可以構建自定義地圖;
- 加入了 DeepMind 開發的 7 款小遊戲,供 AI 模型進行功能測試;
- 可以為 AI 模型提供更多的人類玩家遊戲數據。

SC2LE 捕獲的遊戲特徵
SC2LE 被分成兩個不同的集合,一個類似於 BWAPI ,可以訪問給定框架下的特定信息。另一個則專為機器學習等 AI 算法而準備,可以對遊戲中所獲取的信息進行分析,讓算法可以更容易訪問這些數據。
SC2LE 雖然可以讓更多人參與到 AI 遊戲模型創建中,但目前 AI 仍難以在「星際爭霸」等即時策略遊戲中戰勝人類。不過,隨着 Google、微軟、Facebook等國際知名科技公司的加入,這一切也許會發生反轉。
在今年 6 月份,由 Elon Musk 等諸多硅谷大亨共同創建的 AI 非營利組織 OpenAI 就已經在多人即時對戰遊戲 「DOTA 2 」中擊敗業務人類玩家,並在 8 月份擊敗半職業玩家。
「DOTA」是基於「魔獸世界 Ⅲ」的遊戲引擎開發而來,跟「星際爭霸」一樣,「魔獸世界」也是一款由暴雪開發的 RTS 遊戲。雖然「DOTA 2」已經脫離了該引擎,但在部分遊戲機制上仍有所保留。
雖然「魔獸」比「DOTA 2」的遊戲機制更加複雜,地圖範圍也更大,但 AI 在「DOTA 2」中獲勝,證明 AI 在即時策略遊戲中又更進了一步。未來,隨着更多大型科技公司的加入,AI 或許會創造出新的遊戲機制,讓現有的競技類遊戲變着人與 AI 之間的戰鬥。

趕緊來一局,複習一下今天的知識點吧
超神經 星際小百科
單詞
plague
[pleɡ] n. 瘟疫;毒血(星際術語)
parasite
['pærəsaɪt] n. 寄生(星際術語)
詞組
EMP shockwave 電子震蕩
Robotics Supportbay 機械升級器
