Giter Site home page Giter Site logo

neo4reo / sc-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from games-and-simulations/sc-docker

0.0 2.0 0.0 26.05 MB

Multi-platform Version of StarCraft: Brood War in a Docker Container, ready to use for bot play simulations.

License: MIT License

PowerShell 0.46% Shell 45.38% Python 54.16%

sc-docker's Introduction

StarCraft I (BroodWar) docker images

This repository prepares a fully working StarCraft: Brood War game running in Wine inside of docker image.

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

About

We are pleased to publish docker images for StarCraft: Brood War and BW bots!

Starcraft playing on Linux

This means the end of complicated game setup for newcomers or people who simply want to play StarCraft against AI bots.

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

We have more things cooking: This is a part of our ongoing effort to create an easy-to-use environment for machine learning bots (bots that improve based on experience and self-play).

This project is maintained by Games & Simulations Research Group which is also behind Student StarCraft AI tournament (SSCAIT).

If you like what we're doing, support us on Patreon. We will be very grateful!

Installation

See installation instructions for Linux / Windows / Mac.

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
  • Microsoft Windows 10 (64-bit)
  • Mac OS Sieria 10.12.6 (64-bit, Mac mini)

Testing and reporting in other settings is very welcome!

Usage

Bots playing against each other

Launch headful play of krasi0 and CherryPi on default map.

$ scbw.play --bots "krasi0" "CherryPi" --show_all

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

Play against a bot

$ scbw.play --bots "PurpleWave" --human

Select a map, specify your race, and wait for bot(s) to join the game :)

You can put the RealVNC client to fullscreen and play comfortably.

(Although you might want to change your screen resolution to 800x600)

The GUI is going to be probably slower than normal game due to streaming via VNC.

It is however possible to play the game from the host if you have Windows, but it is more complicated setup.

See more usage examples.

Known limitations

  • Headful mode needs to specify the map manually due to "Unable to distribute map" bug.
  • Works only for BWAPI 4.1.2, 4.2.0 (because I don't have TM compiled for those versions)

Specification

  • StarCraft 1.16.1 game from ICCUP (no need for special installs!)
  • BWAPI 4.1.2, 4.2.0
  • BWTA 2.2
  • SSCAI maps pack with BWTA/BWTA2 caches
  • 32bit oracle Java 8 1.8.0_152-b16
  • bwheadless v0.1
  • wine 2.20.0~xenial
  • base image ubuntu:xenial
  • uses special tournament module (TM)

Dockerhub images

Images are available on Dockerhub.

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.

Contributing

Pull requests are welcome! There are still many things to do, especially from todo list.

Citations

If you use sc-docker in your (academic) work, please cite our Technical Report:

@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},
}

Inspired by

Some useful links

sc-docker's People

Contributors

brownzach125 avatar certicky avatar kant2002 avatar michalsustr avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.