Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/TorchCraft/TorchCraft
Connecting Torch to StarCraft
https://github.com/TorchCraft/TorchCraft
bwapi deep-learning machine-learning reinforcement-learning starcraft torch torchcraft
Last synced: 3 months ago
JSON representation
Connecting Torch to StarCraft
- Host: GitHub
- URL: https://github.com/TorchCraft/TorchCraft
- Owner: TorchCraft
- License: other
- Archived: true
- Created: 2016-12-03T00:04:58.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2021-08-30T19:19:38.000Z (almost 3 years ago)
- Last Synced: 2024-01-18T11:53:12.887Z (5 months ago)
- Topics: bwapi, deep-learning, machine-learning, reinforcement-learning, starcraft, torch, torchcraft
- Language: C++
- Homepage:
- Size: 7.95 MB
- Stars: 1,374
- Watchers: 94
- Forks: 213
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Lists
- awesome-rl - TorchCraft - Connecting Torch to StarCraft (Open Source Reinforcement Learning Platforms / Human Computer Interaction)
- awesome-android-cpp - TorchCraft/TorchCraft - Connecting Torch to StarCraft (TODO scan for Android support in followings)
- awesome-rl - TorchCraft - Connecting Torch to StarCraft (Open Source Reinforcement Learning Platforms / Human Computer Interaction)
- awesome-rl - TorchCraft - Connecting Torch to StarCraft (Open Source Reinforcement Learning Platforms / Human Computer Interaction)
- my-awesome-stars - TorchCraft/TorchCraft - Connecting Torch to StarCraft (C++)
README
# TorchCraft
A bridge between [Torch](http://torch.ch/) and [StarCraft](http://us.blizzard.com/en-us/games/sc/).
A general overview of the system (and motivations for using TorchCraft) can be found in:
Synnaeve, G., Nardelli, N., Auvolat, A., Chintala, S., Lacroix, T., Lin, Z.,
Richoux, F. and Usunier, N., 2016. _TorchCraft: a Library for Machine Learning Research
on Real-Time Strategy Games_ - [arXiv:1611.00625](https://arxiv.org/abs/1611.00625).## [Installation](docs/user/starcraft_in_windows.md)
Please follow the [installation instructions](docs/user/starcraft_in_windows.md).
You will need to have a license of StarCraft: Brood War.
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:Requirements:
- zstd-devel 1.1.4
- zeromq 4+Remember to init submodules: `git submodule update --init --recursive`
Python setup: `pip install pybind11 && pip install .`
Lua setup (depends on [torch7](http://torch.ch/docs/getting-started.html)): `luarocks make *.rockspec`We provide an example C++ CMake project in `examples/cpp/`
The hardest part of installing the server is actually setting up starcraft.
We detail three ways of doing this:
- [Use the standard Windows + StarCraft route, perhaps with a VM](/docs/user/starcraft_in_windows.md)
- [Use WINE](/docs/user/starcraft_in_wine.md)
- [Use OpenBW](/docs/user/openbw.md)## Running TorchCraft
See [`examples/`](examples/) for a list of scripts that you can try.
In all cases, the `$server_ip` is the ip address of the machine running
StarCraft.### StarCraft Server
Do whichever was installed:
#### Windows / WINE
1. Open `bwapi.ini` and set `ai = PATH\TO\BWEnv.dll` (or copy
ours from `config/bwapi.in`)
2. Start ChaosLauncher, enable `BWAPI DLL Injector [Release]`.
3. Press `Start`.#### WINE
1. Open `bwapi.ini` and set `ai = PATH\TO\BWEnv.dll` (or copy
1. `wine bwheadless.exe -e $STARCRAFT/StarCraft.exe -l $STARCRAFT/bwapi-data/BWAPI.dll --headful` as detailed in the [WINE docs](/docs/user/starcraft_in_wine.md)#### OpenBW
Something like:
`OPENBW_ENABLE_UI=0 BWAPI_CONFIG_AI__RACE=Terran BWAPI_CONFIG_AI__AI="BWEnv/build/BWEnv.so" BWAPI_CONFIG_AUTO_MENU__AUTO_MENU="SINGLE_PLAYER" BWAPI_CONFIG_AUTO_MENU__MAP=maps/micro/m5v5_c_far.scm BWAPI_CONFIG_AUTO_MENU__GAME_TYPE="USE MAP SETTINGS" TORCHCRAFT_PORT=11111 BWAPILauncher`### TorchCraft Client
```bash
$ cd examples
$ th lua/simple_dll.lua -t $server_ip
$ python py/example.py -t $server_ip
```## Other Documentation
- [Lua Replayer](/docs/user/replayer.md)
## Citation
Please cite the arXiv paper if you use TorchCraft in your work:
```
@article{synnaeve2016torchcraft,
title={TorchCraft: a Library for Machine Learning Research on Real-Time Strategy Games},
author={Synnaeve, Gabriel and Nardelli, Nantas and Auvolat, Alex and Chintala, Soumith and Lacroix, Timoth{\'e}e and Lin, Zeming and Richoux, Florian and Usunier, Nicolas},
journal={arXiv preprint arXiv:1611.00625},
year={2016}
}
```## Contributing
See [Contributing](CONTRIBUTING.md)
Also check out the [code structure](/docs/contributor/code_structure.md)
and [PR process](/docs/contributor/pr_process.md)