Skip to main content

Multi-platform Version of StarCraft: Brood War in a Docker Container

Project description

# StarCraft I (BroodWar) docker images

This repository contains fully working StarCraft
game running in Wine inside of docker image.

It can launch bots that use BWAPI client to communicate with the game.

## About
We are pleased to publish StarCraft I - BroodWar docker images!

![Starcraft playing on Linux](resources/linux_play.png)

This means the end of complicated game setup for newcomers, or people
who would like to simply play SC1 game against some bot.

You can develop your bots on your favorite platform instead of relying on Windows.

We have more things cooking: It is a part of our ongoing effort to create environment for reinforcement learning bots
(bots that improve through self-play).

This project is maintained by [Games and Simulations group](http://gas.fel.cvut.cz/)
which is also behind [student starcraft AI tournament](http://sscaitournament.com).


![Patreon](resources/patreon.png)

If you'd like to [support us on Patreon](https://www.patreon.com/sscait), we would be very grateful!


## Install

See [installation instructions for Linux / Windows / Mac](INSTALL.md).

It should run well on new versions of major operating systems. It was tested on:

- Ubuntu 17.04 Zesty, `Linux 4.10.0-40-generic x86_64`
<!--
will do that on Monday :)
- Microsoft Windows 10 (64-bit)
- Mac OS Sieria 10.12.6 (64-bit, Mac mini)
-->

(more to come very soon)

(testing and reporting on other platforms is very welcome, especially Mac!)

## Usage

Launch headful play of [PurpleWave](https://sscaitournament.com/index.php?action=botDetails&bot=PurpleWave) and [CherryPi](https://sscaitournament.com/index.php?action=botDetails&bot=CherryPi) on default map.

$ python sc.py --bots "krasi0" "CherryPi" --show_all

Create game on the server (VNC viewer on port 5900) and wait for bots to join the game.

See [more usage examples](USAGE.md).

## Known limitations

- Headful mode needs to specify the map manually due to "Unable to distribute map" bug.

## Specification

- StarCraft 1.16.1 game from ICCUP (no need for special installs!)
- BWAPI 4.1.2
- BWTA 2.2
- SSCAI maps pack
- 32bit oracle Java 8 `1.8.0_152-b16`
- bwheadless `v0.1`
- wine `2.20.0~xenial`
- base image `ubuntu:xenial`


## Dockerhub images

Images are available on [Dockerhub](https://hub.docker.com/r/ggaic/starcraft/).

You can use:

ggaic/starcraft:wine
ggaic/starcraft:bwapi
ggaic/starcraft:java
ggaic/starcraft:play

These are latest stable images and are subject to change.

You can use [stable images with version postfix, which correspond to git tags](https://hub.docker.com/r/ggaic/starcraft/tags/).

## Contributing

Pull requests are welcome! There are still many things to do, especially from [todo list](TODO.md).

## Citation

If you use `sc-docker` in your (academic) work, please cite us:

@misc{sustr2018multi,
Author = {Michal \v{S}ustr and Jan Mal\'{y} and Michal \v{C}ertick\'{y}},
Title = {{Multi-platform Version of StarCraft: Brood War in a Docker Container: Technical Report}},
Year = {2018},
Eprint = {arXiv:1801.02193},
}

## Links

Inspired by

- https://github.com/TorchCraft/TorchCraft/blob/master/docker/no-cuda/Dockerfile
- https://github.com/suchja/x11server/blob/master/Dockerfile
- https://github.com/suchja/wine/blob/master/Dockerfile
- https://hub.docker.com/r/lionax/docker-starcraft/~/dockerfile/

Some useful links

- https://github.com/TorchCraft/TorchCraft/blob/master/docs/user/bwapi_on_linux.md
- https://github.com/TorchCraft/TorchCraft/blob/master/docs/user/installation.md
- https://github.com/tscmoo/bwheadless/releases
- https://github.com/tscmoo/bwheadless/blob/master/main.cpp#L918


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

scbw-0.2a1-py3-none-any.whl (17.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page