Skip to main content

A StarCraft II bot gym env library over python-sc2

Project description

A StarCraft II bot gym env library over python-sc2

This library provide python-sc2 as a gym environment. So you benefits both from the sc2.BotAI and gym.Env classes to train your bot using existing algorithms.

This library (currently) covers only the raw scripted interface. At this time I don't intend to add support for graphics-based interfaces.

Documentation

class Sc2Env(gym.Env)

def init(self, map, bot_race, get_opponents, **kwargs):

  • map str upper camel case name of an installed map (ex: KingsCoveLE)

  • bot_race str race of the bot (ex: Zerg)

  • get_opponents Callable the opponents of the bot

    • returns a list of AbstractPlayer (BotAI, Player...)
  • initializer Callable Called on start, must set BotAI.action_space and BotAI.observation_space. The defined spaces must inherit from gym.spaces.space.Space.

    example:

    '''python def initializer(bot): bot.action_space = gym.spaces.Box(5,10) bot.observation_space = gym.spaces.Box(3,11) '''

  • observer: async Callable Called on step takes a sc2.BotAI instance, must return an observation and a reward. An observation is a numpy.array matching the observation space and a reward is number.

  • actuator: async Callable Called on step, takes a sc2.BotAI instance and an action. An action is a numpy.array matching the action space. Used to run actions using in sc2.

  • **kwargs any sc2.run_game extra arguments

More on sc2.BotAI here.

Installation

By installing this library you agree to be bound by the terms of the AI and Machine Learning License.

You'll need Python 3.6 or newer.

pip3 install --user --upgrade sc2-env

You'll also need an StarCraft II executable. If you are running Windows or macOS, just install the normal SC2 from blizzard app. The free starter edition works too.. Linux users get the best experience by installing the Windows version of StarCraft II with Wine. Linux user can also use the Linux binary, but it's headless so you cannot actually see the game.

You probably want some maps too. Official map downloads are available from Blizzard/s2client-proto. Notice: the map files are to be extracted into subdirectories of the install-dir/Maps directory.

Running

After installing the library, a StarCraft II executable, and some maps, you're ready to get started. Look at the dummy bot example!

python3 examples/dummy_bot.py

If you installed StarCraft II on Linux with Wine, set the SC2PF environment variable to WineLinux:

SC2PF=WineLinux python3 examples/dummy_bot.py

Project details


Download files

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

Source Distribution

sc2-env-0.11.1.2.tar.gz (78.4 kB view details)

Uploaded Source

Built Distribution

sc2_env-0.11.1.2-py3-none-any.whl (89.9 kB view details)

Uploaded Python 3

File details

Details for the file sc2-env-0.11.1.2.tar.gz.

File metadata

  • Download URL: sc2-env-0.11.1.2.tar.gz
  • Upload date:
  • Size: 78.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8

File hashes

Hashes for sc2-env-0.11.1.2.tar.gz
Algorithm Hash digest
SHA256 7c09d990e965d9262aa47b12117187ab9bf7f77f5869f399ed774bdf0ae90484
MD5 827c43832b1f5fa837ae12ac0ecd2229
BLAKE2b-256 657729954ccd79868c61ee17fc551acf341c30175a17939401d30b72e87c2f96

See more details on using hashes here.

File details

Details for the file sc2_env-0.11.1.2-py3-none-any.whl.

File metadata

  • Download URL: sc2_env-0.11.1.2-py3-none-any.whl
  • Upload date:
  • Size: 89.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8

File hashes

Hashes for sc2_env-0.11.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ed289b6cdb6d22e437a98eb6989ace605aef7a0a14492260b906851fe7b71a4b
MD5 fbe2eb6eb35a5b0015fc8d891406080b
BLAKE2b-256 87842cb5795f110834009d75886e0df5076987ffc660dda2baefdf01acf8d229

See more details on using hashes here.

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