資源| CommandCenter:基於暴雪官方API的星際爭霸2 AI Bot

2020-12-05 機器之心Pro

選自Github

作者:David Churchil

機器之心編譯

參與:李澤南

隨著暴雪與 DeepMind 在星際爭霸系列遊戲上的合作不斷推進,人工智慧領域的研究者們也正在將目光由 20 年歷史的星際爭霸一代轉向更為「現代化」的星際爭霸 2。近日,AIIDE 星際爭霸 AI 對抗賽的組織者 David Churchill 發布了基於暴雪星際 2 API 的 AI bot 框架,為開發者們構建人工智慧,挑戰這一複雜遊戲提供了一種基礎工具。

項目地址:https://github.com/davechurchill/commandcenter

CommandCenter 是一種星際爭霸 2 的 AI bot,它由 C++編寫,使用了暴雪提供的星際爭霸 2 AI API。它是由加拿大紐芬蘭紀念大學的助理教授 David Churchill 開發的,此人也是 AIIDE 星際爭霸 AI 對抗賽的組織者。

作為星際爭霸 2 為數不多的 bot 之一,CommandCenter 基於 UAlbertaBot 架構(星際爭霸一代 bot),旨在提供一種穩固、易於使用且能夠快速設置的架構,讓使用者可以與之對戰,並在其上構建自己的人工智慧。CommandCenter 本身並不包含太多硬編碼的策略或戰術,但它為你應用自己的三族戰術提供了一個很好的平臺。

目前,CommandCenter 提供以下功能

可以操作人族、神族與蟲族進行比賽,並可以對單位進行微操。

進行在線地圖分析,提取基礎地址與擴展信息等資料。

跟蹤所有曾經看到過的敵方單位,記住它們上次出現的地圖位置。

擁有 WorkerManager,可以管理資源採集、SCV\探機\工蜂的位置和建造活動。可以執行在配置文件中編寫的預定義的建造順序。

你可以輕鬆創建自己的建造順序,並在遊戲中即時對其進行修改。

包含建築物擺放算法,可以找到給定地址附近最近的可建造位置。

用建造單位搜索地圖,試圖尋找敵方基地位置。

一旦達成特定的條件(如默認條件下:12 個戰鬥單位),AI 將發出指令對敵方基地方向展開攻擊。

可以對單位進行編組,其中可包括不同種類的單位,對特定位置進行攻擊或防禦。

開發者表示,儘管目前還不盡完善,CommandCenter 最終將會包含 UAlbertaBot 的所有功能。以下是目前缺失\即將推出的功能列表:

目前 AI 只能通過 ProductionManager 構建單位和基本建築物――不能控制附加組件,研究或升級。

目前還沒有自動構建訂單計劃系統。

沒有戰鬥模擬機制,無法預測戰鬥的勝率。

目前 AI 只能用於 1v1 對戰,如果進行多人或組隊遊戲,可能會出現無法預測的情況。

下載和使用

如果你只想下載和運行,看看它和星際爭霸 2 內置 AI 的對戰效果如何,你可以下載預編譯版本:https://github.com/davechurchill/commandcenter/tree/master/release

你必須擁有星際爭霸 2 正版最新版本的遊戲才能運行該 bot。你必須下載並安裝 AI 可用的相應地圖:https://github.com/Blizzard/s2client-proto#downloads

注意:解壓密碼在頁面中已提供。

Bot 的調試文件名為 BotConfig.txt,你可以在其中調整單位建造順序,在屏幕上顯示 debug 信息,設置 bot 參數。你可以在文件中的「Strategies」段落設置同時構建多種類型的訂單,並在 AI 使用特定種族時指定其中的一部分。在訂單策略中,單位名稱必須準確(與遊戲中顯示的一致,分大小寫,無空格)。目前在設置文件中有一些策略無法應用,如風箏的遠程單位。

注意,此設置文件的格式為 JSON,如果格式錯誤,AI 將無法運行。設置文件必須放置在 CommandCenter.exe 相同的目錄下。如果你的 JSON 格式有語法錯誤,可以使用在線的 JSON Validator 來進行檢查:https://jsonlint.com/

在默認情況下,當你運行 CommandCenter.exe 時,它會開始玩隨機 AI vs 隨機星際爭霸 2 內置電腦(簡單)。你可以在「BotRace」和「EnemyRace」設置中調整對戰雙方的種族。你也可以在「MapFile」選項中調整對戰地圖。注意:MapFile 選項與星際爭霸 2 的地圖目錄相關,默認的地址是星際爭霸 2 安裝地址/maps/,你必須制定合法的地圖文件。

開發者安裝/調試(Windows)

下載並安裝 Visual Studio 2017

下載並安裝「星際爭霸 II」AI API(https://github.com/Blizzard/s2client-api)。最簡單的方法是在頁面底部下載預編譯庫(https://github.com/Blizzard/s2client-api#precompiled-libs),然後將其解壓縮到 PC 上的文件夾中。如果你通過複製 Blizzard github repo 並從頭開始編譯 SC2API,則可能需要將 VS 指向不同於 include 和 lib 的目錄,而不是下面描述的目錄。

將該 Git 存儲庫複製到 PC 上的文件夾中

在 VS2017 中打開「CommandCenter / vs / CommandCenter.sln」

將 VS Project include 和 lib 文件夾設置為指向 SC2API 目錄

右鍵單擊 VS2017 中的 CommandCenter 項目

選擇「屬性」

選擇要在左上方構建的正確配置(「Release」或「Debug」)

左側的「VC ++目錄」

在右側的表格中選擇「Include Directories」選項

點擊右側的下拉箭頭,然後點擊編輯

修改現有的目錄設置以指向 SC2API/include 目錄

在右側的表中選擇「Library Directories」選項

點擊右側的下拉箭頭,然後點擊編輯

修改現有的目錄設置以指向 SC2API/lib 目錄

在「Build」菜單中,單擊「Build Solution」

「CommandCenter.exe」應該出現在 CommandCenter/bin/目錄中

運行 CommandCenter bot 可通過:

雙擊 CommandCenter/bin/目錄中的可執行文件

從控制臺運行程序:

在 VS 中單擊「本地 Windows 調試器」以從 VS 內啟動程序。對此,你需要將「調試」下的「工作目錄」選項設置為「$(ProjectDir)/../bin/」(貌似這個選項無法保存)

CommandCenter/bin/BotConfig.txt文件必須在相同的目錄下,因此 .exe 才能正確運行

開發者安裝/調試(Linux)

目前,在 Linux 上的開發和測試尚未進行,也沒有相應的 Makefile,不過在 Linux 上的運行應該是穩定的。

開發

如果你熟悉 UAlbertaBot,它與 CommandCenter 的邏輯是大致相同的。其中最大的不同是與地圖有關的信息、基地位置等內容不再是全局可訪問的。該類數據現在存在於主 CCBot 類中,並且必須通過對該類的實例的引用才能進行訪問。正因為如此,CommandCenter 中的大部分類都會引用 bot 的主 CCBot 對象。這樣,與遊戲相關的所有信息、觀察和查詢就都可以完成了。

更為詳細的開發者指南會在未來推出,目前,你可以參考 UAlbertaBot wiki,因為其中的機制大致相同(除了構建計劃和戰鬥模擬器):https://github.com/davechurchill/ualbertabot/wiki

相關焦點

  • 玩家請願不要停止《星際爭霸2》更新:暴雪無動於衷
    《星際爭霸2》推出已經10年了了,而暴雪也是做了一個決定,停止對它的更新。雖說在這樣的一個大時間點,但暴雪並沒有給喜歡這款遊戲的玩家帶來好消息,相反給出的公告稱,《星際爭霸2》將停止付費內容更新,僅保留必要的PVP平衡性調整。
  • 為了培養AlphaGo二代 暴雪想把《星際爭霸2》變成AI實驗室
    而其締造者 DeepMind 公司早就為人工智慧準備了下一個目標:《星際爭霸 2》(StarCraft)。《星際爭霸 2》是由暴雪娛樂(Blizzard Entertainment)在 2010 年推出的即時戰略遊戲,遊戲劇情主要講述了在遙遠未來,一場圍繞銀河系中心的種族之戰。由於遊戲極其考驗玩家對資源的運營策略,因此也被視為 AI 研究的突破點之一。
  • 《星際爭霸2》暴雪嘉年華看點回顧:未來更精彩
    為期兩天的暴雪玩家盛會究竟發生了哪些關於星際2的大事呢?查爾星港特別整理出了本次嘉年華的重要內容,帶你一起回顧今年的精彩。《星際爭霸2:虛空之遺》新模式「RTS迷你戰役」公布 (新聞回顧)根據麥克·莫汗的介紹,雖然《虛空之遺》是《星際爭霸2》最後一個資料片,但暴雪仍然會在以後繼續支持《星際爭霸2》,除了開發其他一些新的內容外,暴雪將會繼續延續星際2的故事,甚至是推出RTS迷你戰役這樣全新的玩法。麥克·莫汗介紹,RTS迷你戰役將會是未來《星際爭霸2》的核心競爭力,相比平時緊張激烈的對戰模式,RTS迷你戰役將會更加休閒,甚至是怪隊友。
  • 《星際爭霸2》官方問答32批圖文解讀
    下面為大家帶來的是最新鮮熱辣的星際2資迅,官方問答第32批和振奮人心的遊戲截圖(附有詳細文字解讀,絕對不容錯過!)《星際爭霸2》官方問答第32批:問:盟友可以用隊友的傳送技能麼?比如宿主中的槍兵,地道蠕蟲中的狂熱者等等.答:開發組討論依然在討論許多問題,最終會由平衡因素決定。
  • 暴雪終於對《星際爭霸2》動刀了!新指揮官登場帥炸了
    就在前兩天,《星際爭霸2》官方推特發了一張很神秘的動圖。從這張動圖上可以看到人類飛船的控制臺,屏幕上顯示著一部分的數據信息,而左下角則出現了電火花顯得狀態不穩定,看畫面還像是飛船遭到破壞,在最終信號則是徹底中斷變出冷雪花屏,不少玩家猜測是合作模式會推出新的指揮官。
  • 資料:《星際爭霸2:自由之翼》單人戰役秘籍大公開
    《星際爭霸2:自由之翼》單人戰役的秘籍已經被傳開,網易遊戲頻道星際2專區整理了現在更新了所有公開的秘籍命令。
  • 《星際爭霸》重製版同步國服?官方:只是BUG
    【17173玩家頻道整理】在今年3月份,暴雪正式公布經典的RTS遊戲《星際爭霸》將進行高清重製,重製後的遊戲將支持寬屏解析度和4K,音樂和畫面都進行了重繪。重製版遊戲還將更新了對話和語音,增加了暴雪好友與配對系統(包括區域網+戰網),對於星際粉絲們可謂一大好消息。
  • 星際20周年:暴雪是如何創作出《星際爭霸》的
    「凱瑞甘就是我們對付譚雅的武器」「暴雪製造」在塑造人物上歷來是一把好手,就像你談到《魔獸爭霸》就會想起阿爾薩斯和伊利丹,當提起《星際爭霸》時,凱瑞甘肯定會被大家首先想到。根據梅森的說法,在整個星際故事尚在構思中時,凱瑞甘也是最先被設計出來的。在梅森的腦海中,這個即將誕生的人族隊長一定要是一個女性角色,還可以隱身。
  • 暴雪嘉年華:《星際爭霸2》新指揮官「蒙斯克」登場
    今天(11月2日)舉辦的BlizzCon上,《星際爭霸2》宣布了一名將加入遊戲的全新指揮官,大反派【蒙斯克】將作為指揮官供玩家們使用,與此同時《星際爭霸2》官方網站也公開了【蒙斯克】的詳細介紹。阿克圖爾斯·蒙斯克雄霸天下化身《星際爭霸II》全新合作任務指揮官阿克圖爾斯·蒙斯克,用帝王的鐵腕統御戰場。蒙斯克可以使用徵召的勞工和衝鋒隊,立即向他的敵人施壓,在遊戲早期就建立自己的霸權。遠程火炮和「鼓舞人心」的廣播可以幫助蒙斯克在戰場上動員自己的大軍,同時他的皇家衛隊還會在戰鬥中積累經驗,變得愈發強大,更好地為他們的皇帝效命。
  • 暴雪:你現在就能和「阿爾法狗」單挑星際2
    曾經用AlphaGo震撼過全世界的DeepMind終於要對廣大星際2玩家出手了,暴雪和DeepMind宣布,新的AlphaStar AI將加入當前最新版本的星際爭霸2歐服,允許每一個玩家與之較量。,決策則全部基於自己的視野信息,讓它儘可能接近人類玩家同等條件的基礎上進行對戰。同時,AlphaStar也不會給自身以及對手設限,它人蟲神三族都能玩,也不挑自己對手的種族,相當於隨機。不過對人類玩家來講,匹配到AlphaStar的規則其實和匹配其他人類選手一樣,都是根據天梯戰績排。
  • 暴雪官方星際2種族介紹視頻 吉姆雷諾教你選種族(三)
    以下是暴雪臺灣官方在11月4日放出的星際爭霸2種族介紹視頻,由雷諾向我們介紹三大種族的各個兵種。
  • 《星際爭霸2》全新壁紙發布:凱瑞甘狙殺蟲群
    暴雪官方更新了《星際爭霸2:自由之翼》的一張全新壁紙:凱瑞甘狙殺蟲群。下面是暴雪官方已經發布了星際2的四款壁紙: 更多相關資訊請訪問:星際爭霸2專區
  • 《星際爭霸2》官方最新對戰視頻:神與蟲
    近日,韓國網絡媒體傳出了《星際爭霸2》新一部官方對戰影片,此部視頻雖然尚未在Blizzard《星際爭霸2》官方網站放出,但可以相信這段視頻是官方製作的。  這次約17分鐘的對戰影片,主要展示新地圖「廢棄物處理場(Scrap Yard)」,由神族(神民)與蟲族(異形)在此開戰。
  • 暴雪臺灣:星際2臺服與哪個國家戰網合併?
    這是暴雪臺灣官方社區發布於2011年2月24日(此為系統顯示日期)的官方藍帖,在3月12日突然得到了海量臺服玩家的回帖。目前臺服玩家提出四種合併意見,分別是與韓服合併、與東南亞服合併、與中國大陸伺服器合併以及與美服合併。目前支持與韓服合併的人數最多。
  • 暴雪的兩大神作 魔獸爭霸和星際爭霸,哪一款遊戲的影響力比較大
    對於暴雪的這兩款遊戲評價談不上,作為一名遊戲玩家,最多說說自己的看法吧。RTS(即時戰略)遊戲領域四大天王,暴雪的星際爭霸和魔獸爭霸就佔據了兩個位置。而這兩款遊戲又都是RTS遊戲領域中的翹楚,分別代表了RTS遊戲的兩個不同的方面。
  • 迷失星海的倩影——夭折之作《星際爭霸:幽靈》
    這個消息立即引起了無數玩家與媒體的注意,大家紛紛猜測這款神秘新作的身份:《星際爭霸 2 》?《暗黑破壞神 3 》?甚至是全新的作品? 答案隨即得到了揭曉——它就是《星際爭霸:幽靈》( StarCraft: Ghost )。 按照官方的描述,《星際爭霸:幽靈》是一款立意暴雪自家「星際爭霸」系列世界觀的動作射擊遊戲,並且主角是一位名叫諾娃的人族幽靈兵。
  • 《星際爭霸》重製版已登陸國服暴雪戰網
    穿越20年的暴雪即時戰略(RTS)經典之作《星際爭霸:重製版》從8月30日起將正式入駐國服暴雪戰網。還記得曾經的宿舍大戰嗎?還記得戰役裡波瀾壯闊的艾爾之戰嗎?還記得飛龍甩尾、矩陣閃電這樣的極限操作嗎?《星際爭霸》作為一款誕生於20年前的經典之作,承載了那個時代關於遊戲、電競太多的回憶。20年過去,《星際爭霸》重製歸來,再次將我們帶回那個恢弘史詩的太空世界。
  • 視點:星際爭霸2後續兩部資料片劇情推測與展望
    但是作為暴雪星際爭霸2三部曲的後兩部作品,在群蟲之心和虛空之遺中將會有哪些更加精彩的劇情上演呢,一起來看看國外遊戲專業編劇作家是如何預測星際爭霸2後續劇情的吧。但是作為暴雪星際爭霸2三部曲的後兩部作品,在群蟲之心和虛空之遺中將會有哪些更加精彩的劇情上演呢,我們不妨來看看國外某遊戲網站專欄遊戲編劇作家Kat Bailey對繼星際爭霸2自由之翼之後劇情發展的預測吧。
  • 暴雪官網發新招募信息 新作或是FPS版《星際爭霸》
    原標題:暴雪官網發新招募信息 新作或是FPS版《星際爭霸》   根據暴雪官網發布的最新招募信息顯示,他們的下一個FPS新作將主打PvP,與此同時,暴雪還將擴展《暗黑破壞神》系列團隊規模。
  • 星際科普:《虛空之遺》新單位的演變(人族篇)|星際爭霸2|星際爭霸2...
    在上一期的科普中,我們談到了《星際爭霸2》中一些神族單位的演變,今天我們來聊一聊人族的故事。女武神在《星際爭霸2》中的模型其實早已有之,雖然沒能被最終加入到《星際爭霸2》的遊戲中,但通過修改後變成了《虛空之遺》的人族新單位解放者加入到了對戰模式中。