自從 AlphaGo 戰勝世界棋王李世乭以來，AI 還有 Deep Learning 至今火紅。DeepMind 將他們下一個研究的目標定錨為 Starcraft 這樣的 Real-Time Strategy Game 即時戰略遊戲。
BWAPI 是與 Starcraft: Brood War 溝通的 API，在研究 RTS Game AI 的時候，主要的遊戲就是 Starcraft: Brood War (以下稱為 SC:BW) 以及 Starcraft2，並且透過自訂遊戲的方式來進行學習及遊玩。
然後到 BWAPI Github 頁面安裝需要的 API 版本。在這裡，我選定的版本是 4.1.2，因為目前 TorchCraft 尚未支援 BWAPI 4.2.0。在安裝的時候，不管 SC:BW, BWAPI 要安裝到哪一個路徑都可以，但是建議安裝在可以便於修改檔案的路徑下，因為之後再設定的時候，會必須要修改 BWAPI configuration file。
在這裡唯一要注意的事情是 BWAPI 安裝成功後，會將 bwapi-data 這個資料夾安裝在預設的路徑。要怎麼看預設路徑呢？在安裝的資料夾下打開 Chaoslauncher.exe，在 Settings 的部分就會看到 Starcraft 遊戲預設執行的路徑。如果這個路徑跟你的遊戲路徑不相符，並且你的遊戲資料夾內沒有 bwapi-data 這個資料夾的話，你必需要重新安裝 BWAPI。因為 bwapi-data 會安裝載 Installapth 下。
在 Chaoslauncher.exe 的 settings 設定 Starcraft Installpath，這樣重新安裝的時候才會把 bwapi-data 安裝在對的地方。
附帶一提，Networkport 的地方，因為我們使用 TorchCraft 的關係，會跟他的設定無關。不要認為在 Chaoslauncher.exe 設定的 Networkport 就是稍後 TorchCraft 的 port。
你會問我們現在有了 BWAPI 不是就可以開始編寫程式了嗎? 是的，可以寫 C++, JAVA。
TorchCraft 的實作利用了 ZeroMQ 讓 Client, Server 彼此之間可以通訊。
如果你是使用Mac的話，在安裝 TorchCraft 是會發生錯誤的。所以 Mac 不能使用TorchCraft 的 Client。不過!因為我們有了 TorchCraft Server (Windows) 所以 ZeroMQ 之間的通訊是可以使用的。在這樣的前提之下，我們可以使用 alibaba/torchcraft-py 作為我們的 Client。
TorchCraft 也是有 Configuration 檔的，如果你有乖乖的按照 TorchCraft 的安裝步驟裝完，應該會看到我們要複製 torchcraft.ini 到 bwapi-data 這個資料夾下面。我們有了 ZeroMQ 總要知道那些資料丟到哪一個 Port 對吧? 這個 Port 就是在 torchcraft.ini 中設定的。跟 Chaoslauncher settings 的 Networkport 是不一樣的設定不要搞混了。
這兩個套件都是 Alibaba 作的，torchcraft-py 實作了 TorchCraft Client 的 Python 2.7 版，gym-starcraft 則是利用 OpenAI gym 作為 Reinforcement Learning 的環境。
使用 Mac 的朋友利用 torchcraft-py 也可以跟 Linux 一樣作為 Client 端來簡易的編寫你的程式! 雖然 torchcraft-py & gym-starcraft 的文件寫的簡略，但是在安裝上應該不會碰到什麼嚴重的問題。
在 Windows 端用系統管理員開啟 Chaoslauncher.exe，進到地圖畫面的時候要等待 Client 連接，這時候可能會讓你誤以為遊戲當機了。
在 TorchCraft Client 端，執行你要執行的 Example Scripts。在執行的那剎那，你會看到遊戲畫面開始動作了!這時候就是成功了。
我自己在測試阿里巴巴做的 API 時，在 BWAPI 4.1.2, Torchcraft 1.0.2 的情況下，restart command 是無效的。這對我來說影響很大，因為初期訓練時，一個 Episodes 可能無法很快的結束，希望利用 restart command 讓遊戲再次重新遊玩，可是目前好像無法 support。