A fast and easy way to run StarCraft: Brood War as a Gym environment.
Project description
TorchCraft 2
(aka StarCraft Gym)
The fastest, easiest way to use StarCraft as a reinforcement learning environment.
And all you have to do to get started is pip install
it.
Motivation
Researchers are eager to use StarCraft-based environments for RL experiments. But the process of getting StarCraft up and running can be time-consuming, and most environments aren't easy to use out of the box.
TorchCraft 2 offers simple (one-touch!) installation, an easy-to-use Gym interface, and multiple challenges/baselines out of the box.
In addition, we've worked with Blizzard to allow to TorchCraft 2 to include first legal distribution of StarCraft: Brood War binaries. This will enable the public to use TorchCraft 2 without having to acquire their own copies of StarCraft, or having to install it.
See the project proposal for details.
Roadmap
With those ready, we're aiming to launch TorchCraft 2 internally for experiments and beta testing. From there, the plan is:
- Integration with TorchCraft (deprecating the original Lua/Python APIs)
- Pre-compiled binary distribution on PyPy
- Public release, PR, and tutorial content
The full roadmap lives on GitHub
Usage
Building TorchCraft 2 for development
This is how I recommend using TorchCraft 2 at the moment:
git clone --recursive https://github.com/fairinternal/TorchCraft2/ tc2
cd tc2
conda create --name tc2 python=3 pip
source activate tc2
conda install pip cmake pybind11 numpy
conda install -y -c conda-forge sdl2 zstd
conda install -y -c anaconda zeromq
pip install -e .
Downloading required Starcraft files
Once you have installed tc2
, you have to download StarCraft data files (MPQ files). We provide you with
a tool to do that just for you - we can't provide them right away because we need you to read and accept Blizzard's EULA first.
tc2-setup
Demo
This demo (run_demo.py
) creates a StarCraft gym environment and controls an agent using a simple "attack the middle" policy.
import gym
import tc2
from tc2.agents import attack_middle
env = gym.make('tc2-demo-v0')
while True:
env.reset()
actions = []
done = False
while not done:
observation, reward, done, info = env.step(actions)
actions = attack_middle(observation)
Running the TorchCraft 2 demo:
python3 run_demo.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tc2-0.0.1594304438.tar.gz
.
File metadata
- Download URL: tc2-0.0.1594304438.tar.gz
- Upload date:
- Size: 8.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 974474aa769d5670b9bf7e74684639289e8be9710fbe971e315a2261a0434d63 |
|
MD5 | 4838bfa6799ae2d172aaa3682416c229 |
|
BLAKE2b-256 | a4a7570c91980039eecb31f7a2690cd3036506b45e39c6c6cff9e24a196bf774 |