星際爭霸1真的是兒時的回憶,1999年那時候網咖都是個稀奇事物。那時本人小學,放學了偷跑去網咖,看人玩星際1.04就是一個下午。兒時最大夢想是可以有自己的電腦,不限時間玩星際爭霸。2005年第一臺電腦,裝的第一個遊戲就是星際爭霸。大學畢業的時候接觸到bwapi相關的東西,打開了全新的大門。隨着GOOGLE對於DL,RL的突破,星際爭霸這個RTS遊戲界的鼻祖,又有了新的生命。爲AI世界提供虛擬環境,演練演算法。
BWAPI:Brood War Application Programming Interface(血巢之戰程式通用程式設計介面)
下面 下麪是github的BWAPI解釋介紹:
The Brood War Application Programming Interface (BWAPI) is a free and open source C++ framework that is used to interact with the popular Real Time Strategy (RTS) game Starcraft: Broodwar. Using BWAPI, students, researchers, and hobbyists can create Artificial Intelligence (AI) agents that play the game.
在接觸BWAPI這幾年裏面,他的聯賽,論壇,資料也是越來越多。聯賽2011-2019,論壇,部落格
還是打算好好記錄一下,學習總結BWAI。不光爲了娛樂,更是爲了學好AI。
以前安裝過名爲ualbertabot的AI,是BWAPI 4.4.0下的。今天再裝一次。最後,BWAPI不是專業的程式設計師,對於github,C++,python不是很熟的話,只能慢慢摸索。千裡之行始於足下。
安裝vs2019社羣版,最好還是使用C++進行,JAVA版本支援不好。
克隆ualbertabot,github上有。
下載一個純淨的星際爭霸1.16.1。
下載BWAPI 4.4.0。
安裝Visual Studio
安裝星際爭霸
c:\Games\Starcraft
安裝BWAPI
c:\libraries\BWAPI_440
作爲安裝BWAPI 4.4.0的目錄c:\Windows
目錄或StarCraft目錄中Windows環境變數
env
然後出現編輯環境變數的選項BWAPI_DIR
。這個變數的值應該是BWAPI安裝目錄的完整路徑(例如:c:\libraries\BWAPI_440
)編譯BWAPI 4.4.0
BWAPI_DIR/ExampleProjects.sln
在VS2019中開啓VS解決方案檔案BWAPILIB
和BWAPIClient
專案:在專案上單擊滑鼠右鍵,Properties
在左側選單中選擇,然後Platform Toolset
在右側選單中將更改爲Visual Studio 2019 (v142)
。請確保對左上角選擇的Release
和Debug
設定都執行此操作。由於BWAPI最初是使用VS2017建立的,因此此步驟是必需的。Build
在BWAPILIB
和BWAPIClient
專案。這將生成UAlbertaBot將鏈接到的必需的LIB檔案。請確保同時在Release
和Debug
模式中構建,這是在上方工具列中選擇的。Release
和Debug
。這些資料夾中的每一個現在都應包含BWAPILIB.lib
和BWAPIClient.lib
,它們將由UAlbertaBot專案在下一步中通過環境變數值鏈接編譯UAlbertaBot
UAlbertaBot/VisualStudio/UAlbertaBot.sln
在Visual Studio 2019中開啓Release
或Debug
模式。該Debug
版本的執行速度會慢得多,因爲它會在偵錯時跟蹤所有變數。如果要儘快執行漫遊器,請選擇Release
。Debug
模式編譯速度更快,建議用於開發。Build
該UAlbertaBot
專案(將建立所有專案)UAlbertaBot/bin
目錄Release
還是Debug
模式下編譯,生成的exe檔案將分別是UAlbertaBot.exe
或UAlberaBot_d.exe
爲了在Starcraft中使用基於BWAPI的機器人,您必須通過Chaoslauncher
BWAPI附帶的程式執行Starcraft 。Chaoslauncher將BWAPI .dll檔案注入Starcraft,以便它可以與您的機器人通訊。Chaoslauncher的可執行檔案Chaoslauncher.exe
位於,並且位於中BWAPI_DIR/Chaoslauncher/
。Chaoslauncher可以在系統上的任何位置執行,因此可以將其保留在BWAPI目錄中,但是我建議在工作列上爲其建立快捷方式,因爲您將經常使用它。還有一個多範例版本,允許您同時執行多個Starcraft範例。
Chaoslauncher.exe
和Starcraft.exe
設定爲以管理員身份執行。右鍵單擊該.exe檔案,選擇Properties
> Compatibility
>檢查Run as Administrator
BWAPI_DIR/Chaoslauncher/Chaoslauncher.exe
bin/UAlbertaBot_Config.txt
。該檔案必須與UAlbertaBot.exe
。除非您熟悉漫遊器及其設定,否則請跳過此步驟。BWAPI 4.4.0 Injector Release
在Chaoslauncher中選中了該選項UAlbertaBot
以下兩種方法之一:1)從VS執行(通過單擊Local Windows Debugger
上方),或2)bin/UAlbertaBot.exe
通過雙擊檔案或從控制檯執行檔案來執行檔案Game table mapping not found
每秒列印一次。這將一直持續到Starcraft使用BWAPI執行爲止,屆時機器人將自動連線到Starcraft並執行Start
在Chaoslauncher中單擊以執行《星際爭霸》,遊戲開始時UAlbertaBot將連線Settings
視窗頂部的索引標签,然後編輯Installpath
目錄。Single Player
> Expansion
> Play Custom
,選擇任何標準的多人地圖和使用Melee
設定啓動。注意:漫遊器不能與多個對手一起使用,也不能與單人遊戲一起使用。注意:預設情況下,bot可執行檔案UAlbertaBot.exe
已編譯並放置在bin
UAlbertaBot專案的目錄中。該檔案實際上可以從系統上的任何位置執行,但是它必須與bot的組態檔位於同一目錄UAlbertaBot_Config.txt
中,預設情況下,該檔案也位於該bin
目錄中。
首次啓動並執行所有功能後,建議您使用以下工作流程:
BWAPI.ini
檔案編輯爲AUTO_MENU
on,以便您不必在每次執行遊戲時都選擇Starcraft設定(請參見下文)Local Windows Debugger
VS中綠色箭頭旁邊的按鈕即可執行漫遊器,然後在Chaoslauncher中單擊「開始」。這將首先執行UAlbertaBot,然後啓動StarcraftUAlbertaBot.exe
過程。開發者注意:開發機器人並不得不多次執行時,手動導航Starcraft選單變得非常繁瑣。您可以設定BWAPI.ini
檔案以使用該AUTO_MENU
功能,該功能將使用您的輸入設定來自動選擇要玩的地圖和種族。我建議在開始進行bot開發之前,先使其工作。要編輯BWAPI.ini
檔案,請先BWAPI 4.4.0 Injector [RELEASE]
在Chaoslauncher內部選擇,然後單擊Config
右側的按鈕。這將Starcraft/bwapi-data/BWAPI.ini
在記事本中開啓檔案。
有關BWAPI組態檔的完整詳細資訊,請點選此處