Skip to content

tjuHaoXiaotian/SC1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

win10 搭建星际争霸1(StarCraft I)强化学习环境

[TOC]

写在最开始:

这是一个从头写到尾的傻瓜式安装教程,内容略枯燥繁琐,请谨慎阅读。

寒假在家基于星际2实现micromanagement 的DRL代码,但是由于以往论文都是针对星际1,针对星际1的地图,有足够多的方法和模型间的对比数据,而星际2上的工作相对较少(基于星际2的多agent工作应该还没有),模型之间孰优孰劣不易比较,因此决定搭建星际1环境,进而比较模型胜率。

现有的星际1环境搭建需要两台主机官方推荐 (1)windows 搭建SC:BW游戏环境作为Server端,负责游戏渲染并监听来自client端的commands输入;(2)Linux 基于TorchCraft,接收来自Server的环境观察(state)并发送回指令操作(actions)。server与client之间基于 ZeroMQ通信。

但是使用两台主机操作繁琐不便,因此决定将环境统一部署到同一台Windows主机(也是因为在家资源有限...),由于安装过程实在繁琐,故写下此文以备查看,在这里同时提供windows(x64)下安装环境所需的 ++.dll++ 与 ++torchcraft-1.4.0-cp35-cp35m-win_amd64.whl++ / ++torchcraft-1.4.0-cp36-cp36m-win_amd64.whl++文件下载,有需要的童鞋可以自行下载,省去自行编译过程。

系统环境

系统:Windows 10 x64
CPU:CORE i7 7th
内存:16G
显卡:GTX 1060

Server 安装

所需文件下载

安装

参考自 Installing TorchCraft

安装 StarCraft (1.16.1)

下载文件(zip),解压缩到任意目录下即可,解压缩目录记为 $STARCRAFT

安装 BWAPI

下载最新发布版本安装包,安装到目录 $STARCRAFT\BWAPI
安装完成,$STARCRAFT目录下多出以下两个文件

  • BWAPI
  • bwapi-data

TorchCraft, common prerequistes

下载最新发布版本 release

  • Copy $STARCRAFT/TorchCraft/config/bwapi.ini in $STARCRAFT/bwapi-data/bwapi.ini.
  • Copy $STARCRAFT/TorchCraft/config/torchcraft.ini in $STARCRAFT/bwapi-data/torchcraft.ini.
  • Copy $STARCRAFT/TorchCraft/BWEnv/bin/*.dll into $STARCRAFT/
  • Copy $STARCRAFT/TorchCraft/maps/* into $STARCRAFT/Maps/BroodWar

TorchCraft AIModule (DLL) for users:

  • Extract BWEnv.dll from the latest archive in the release page and put it in $STARCRAFT
  • Run $STARCRAFT/BWAPI/ChaosLauncher/Chaoslauncher-MultiInstance.exe as administrator.
  • Check the “RELEASE” box from BWAPI.
  • Click Start.

ChaosLauncher

出现如下图所示情况,不用怀疑,是ok的,Server端等待Client输入,故暂时无响应。 等待输入

Server端安装到此结束。

Client 安装

引自官方一段话:
TorchCraft is a BWAPI module that sends StarCraft data out over a ZMQ connection. This lets you parse StarCraft data and interact with BWAPI from anywhere. The TorchCraft client should be installed from C++, Python, or Lua. We provide off the shelf solutions for Python and Lua.

可以发现,TorchCraft 并没有直接提供Windows下python扩展包,从原码包直接编译安装需要c/c++编译环境,所以相对于Linux下,Windows安装过程较为曲折。

编译安装

所需文件下载(原码安装,需自行编译)

如果恰好你也是win10(x64, python 3.5/3.6),可跳过编译安装,到免编译安装部分。
  • Python 3 (我这里用的python3.5)
  • Windows c/c++编译环境 MinGW-w64
  • zstd lib [压缩算法]
  • Zeromq4+ [Server/Client通信基础]
  • Microsoft Visual Studio 2013+ (2017下载链接)[编译 zstd/ZeroMQ]

安装MinGW-w64

TorchCraft 用到了 c++ 11,msvs 对 c++11 支持很不友好,故安装 MinGW,但是torchcraft同时用到pthread线程库,mingw-32 不支持,所以目前选择安装 MinGW-w64。
  • 详细安装见 链接
  • 记得配置环境变量 %MINGW_64_HOME%\bin

安装 Microsoft Visual Studio 2017

下载安装即可

编译 Zeromq

  • TorchCraft编译安装,只用到 libzmq.dll和 zmq.h 官方已给出 windows下的 Stable Release 4.0.4 ,自行下载安装即可。
  • TorchCraft的发行版zip包中,bin目录下有 libzmq.dll。

自行编译安装详见以下两篇博客


编译 zstd

  • TorchCraft编译安装,只用到了 libzstd.dll 和 zstd.h。
  • 官方已给出 windows下的发行版本 releases,自行下载安装即可。

自行编译安装详见 zstd github


修改 python distutils 默认编译器配置为 MinGW-w64

  • 目录:%Conda_home%\envs\XXX\Lib\distutils (这里用的Conda)

  • 新建文件 distutils.cfg
    文件内容:

    [build]
    compiler = mingw32
    
  • 编辑 cygwinccompiler.py 修改 class Mingw32CCompiler(CygwinCCompiler)

      # 修改 1: 
      if sys.maxsize == 2**31 - 1:
          ms_win=' -DMS_WIN32'
      else:
          ms_win=' -DMS_WIN64'
      self.linker_dll='g++'			
      self.set_executables(compiler='g++ -O -Wall'+ms_win,
                   compiler_so='g++ -mdll -O -Wall'+ms_win,
                   compiler_cxx='g++ -O -Wall'+ms_win,
                   linker_exe='g++',
                   linker_so='%s %s %s' % (self.linker_dll, shared_option,
                                 entry_point))
                                 
     # 修改 2: 
     # Include the appropriate MSVC runtime library if Python was built
     # with MSVC 7.0 or later.
     # self.dll_libraries = get_msvcr()
    

编译安装 TorchCraft

  • 记TorchCraft源码目录为 $TorchCraft
  • 修改 %Conda_home%\envs\XXX\include\Python.h,在最开始加入 #include "math.h" ,否则会出现:
     error: '::hypot' has not been declared
    
  • 拷贝 zmq.hzstd.h$TorchCraft\include\
  • 拷贝 libzmq.dlllibzstd.dll%Conda_home%\envs\XXX\libs
  • 如果是 git clone下载的源码包,Remember to init submodules: git submodule update --init --recursive,下载 client模块
  • 可能需要更新一下 steuptools 与 pip: python -m pip install -U pip setuptools
  • cd $TorchCraft, Python setup: pip install pybind11 && pip install .
    出现以下则安装成功: image
  • 最后,在python中使用torchcraft前,需要将 libzmq.dlllibzstd.dll 拷贝到 %Conda_home%\envs\XXX\Lib\site-packages\ 成功

免编译安装

所需文件下载(无需编译)

简单安装

  • libzmq.dlllibzstd.dll 拷贝到 %Conda_home%\envs\XXX\Lib\site-packages\
  • pip install path_to_torchcraft-1.4.0-cpxx-cpxx-win_amd64.whl image

Client端安装到此结束。

简单运行效果

  • cd $TorchCraft (TorchCraft 源码目录)
  • cd examples/
  • python py/example.py -t 127.0.0.1

image image


补充基于linux client端的client安装 2018-09-11

训练算法还是放在服务端比较好,server端windows只用来运行环境。

linux 安装 Client

安装 zstd(压缩算法)

下载release版本安装 GitHub

直接运行 make install (create and install zstd cli, library and man pages)

我这里是机器上没有root权限,所以要指定目录安装。
make DESTDIR=xxxx install

安装 zero-MQ

下载release版本安装 GitHub

configure --prefix=xxxx
make install

Notice

注意,GCC/G++编译时只会查找系统默认的include和link的路径(/usr/lib:/usr/local/lib等),这里如果不是以root身份安装,需要手动将zstd与zeromq的include(c/c++头文件)、lib(.a/.so 静态链接库,动态链接库)等目录位置添加到相应的环境变量中。 后面编译安装TorchCraft Client需要。

详情参考:

环境变量参考样例:
环境变量配置样例

下载release版本安装 GitHub

  • 确保 zstd与zeromq相关头文件及库文件已添加至相应环境变量中。
  • 下载并解压TorchCraft压缩包,切入主目录,Python setup: pip install pybind11 && pip install.

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages