PySC2のインストール
Windows 10でDeepMindのPySC2のミニゲームを動かすまでのメモです。StarCraft IIのゲームは20GBぐらいのサイズです。そのため、標準のインストール先("C:\Program Files (x86)\StarCraft II")にインストールできない人もいるのではないでしょうか。Pythonを触っていないと環境変数の設定でハマる可能性があるため、本記事を参考にしてください。
Pythonのインストール
Anacondaを使用します。以下のサイトからPython3.x系のWindowsのインストーラーをダウンロードしてインストールしてください。
StarCraft IIのインストール
StarCraft IIのインストールは以下のサイトからになります。右上の「PLAY FREE NOW」からインストールできます。ゲーム自体は20GBぐらいになりますので、私はEドライブにインストールしました。
私のインストール先:E:\Games\StarCraft II
Pythonの環境作成
スタートメニューから、「Anaconda Prompt」を実行します。condaコマンドで新しい環境を作成します。
(C:\Users\kenta\Anaconda3) C:\Users\kenta>conda create -n py36 python=3.6
(C:\Users\kenta\Anaconda3) C:\Users\kenta>activate py36
新しい環境を作成したら、activateコマンドで新しい環境に変更します。
(C:\Users\kenta\Anaconda3) C:\Users\kenta>activate py36
PySC2のインストール
pipでインストールします。
(py36) C:\Users\kenta>pip install pysc2
ミニゲームのインストール
GitHubのPySC2からミニゲームをダウンロードします。
https://github.com/deepmind/pysc2
README.mdに書かれている以下のURLからzipファイルをダウンロードします。
https://github.com/deepmind/pysc2/releases/download/v1.2/mini_games.zip
ダウンロードしたzipファイルを展開する前に、StarCraft IIのインストール先にフォルダ(ディレクトリ)を作成します。
(py36) C:\Users\kenta>e:
(py36) E:\>cd \Games\StarCraft II
(py36) E:\Games\StarCraft II>md Maps
Mapsフォルダにzipのミニゲームを展開すると、Mapsフォルダは以下のようなファイル構成になります。
(py36) E:\Games\StarCraft II>cd Maps
(py36) e:\Games\StarCraft II\Maps>tree /F
E:.
└─mini_games
BuildMarines.SC2Map
CollectMineralsAndGas.SC2Map
CollectMineralShards.SC2Map
DefeatRoaches.SC2Map
DefeatZerglingsAndBanelings.SC2Map
FindAndDefeatZerglings.SC2Map
MoveToBeacon.SC2Map
事前設定されたミニゲームの実行
部分的な課題を学習するミニゲームを実行してみます。
PySC2の環境変数設定
StarCraft IIのインストール先をカスタマイズした場合は、PySC2の環境変数を設定する必要があります。ここで注意しないといけないことは、ディレクトリを''ではなく'/'で設定することです。また、'"'で囲まないようにしてください。
(py36) E:\Games>set SC2PATH=E:/Games/StarCraft II
(py36) E:\Games>echo %SC2PATH%
E:/Games/StarCraft II
マップの確認
既知のマップのリストは以下のコマンドで確認することができます。
(py36) E:\Games>python -m pysc2.bin.map_list
ミニゲームの実行
ミニゲームは以下のコマンドで確認することができます。
(py36) E:\Games>python -m pysc2.bin.agent --map BuildMarines
s2client-protoのprotobufとのやり取りも表示されます。
https://github.com/Blizzard/s2client-proto
他のミニゲームを実行するには
ミニゲームのmap引数は以下から選択できます。
BuildMarines
CollectMineralShards
CollectMineralsAndGas
DefeatRoaches
DefeatZerglingsAndBanelings
FindAndDefeatZerglings
それぞれのミニゲームは以下の動画を参考にしてください。
https://youtu.be/6L448yg0Sm0
ラダーマップを使う場合は
以下のサイトからダウンロードして、Mapsフォルダに展開します。使い方はミニゲームと一緒です。
https://github.com/Blizzard/s2client-proto#downloads