From 1539701d5e11e866279e18c2cd9638feae738a66 Mon Sep 17 00:00:00 2001 From: Mikayel Samvelyan Date: Tue, 15 Jan 2019 19:13:48 +0400 Subject: [PATCH] Imported SMAC code --- README.md | 149 +- docs/smac.md | 133 ++ setup.py | 45 + smac/__init__.py | 0 smac/bin/__init__.py | 0 smac/bin/map_list.py | 28 + smac/env/__init__.py | 8 + smac/env/multiagentenv.py | 67 + smac/env/starcraft2/__init__.py | 7 + .../maps/SMAC_Maps/10m_vs_11m.SC2Map | Bin 0 -> 14925 bytes smac/env/starcraft2/maps/SMAC_Maps/25m.SC2Map | Bin 0 -> 14923 bytes .../maps/SMAC_Maps/27m_vs_30m.SC2Map | Bin 0 -> 14929 bytes .../maps/SMAC_Maps/2c_vs_64zg.SC2Map | Bin 0 -> 16477 bytes .../starcraft2/maps/SMAC_Maps/2m_vs_1z.SC2Map | Bin 0 -> 15539 bytes .../env/starcraft2/maps/SMAC_Maps/2s3z.SC2Map | Bin 0 -> 15692 bytes .../maps/SMAC_Maps/2s_vs_1sc.SC2Map | Bin 0 -> 14202 bytes smac/env/starcraft2/maps/SMAC_Maps/3m.SC2Map | Bin 0 -> 14920 bytes .../env/starcraft2/maps/SMAC_Maps/3s5z.SC2Map | Bin 0 -> 15697 bytes .../maps/SMAC_Maps/3s5z_vs_3s6z.SC2Map | Bin 0 -> 15704 bytes .../starcraft2/maps/SMAC_Maps/3s_vs_3z.SC2Map | Bin 0 -> 13995 bytes .../starcraft2/maps/SMAC_Maps/3s_vs_4z.SC2Map | Bin 0 -> 14000 bytes .../starcraft2/maps/SMAC_Maps/3s_vs_5z.SC2Map | Bin 0 -> 13998 bytes .../starcraft2/maps/SMAC_Maps/5m_vs_6m.SC2Map | Bin 0 -> 14930 bytes .../starcraft2/maps/SMAC_Maps/6h_vs_8z.SC2Map | Bin 0 -> 14342 bytes smac/env/starcraft2/maps/SMAC_Maps/8m.SC2Map | Bin 0 -> 14922 bytes .../starcraft2/maps/SMAC_Maps/8m_vs_9m.SC2Map | Bin 0 -> 14927 bytes smac/env/starcraft2/maps/SMAC_Maps/MMM.SC2Map | Bin 0 -> 17411 bytes .../env/starcraft2/maps/SMAC_Maps/MMM2.SC2Map | Bin 0 -> 17419 bytes .../maps/SMAC_Maps/bane_vs_bane.SC2Map | Bin 0 -> 16782 bytes .../starcraft2/maps/SMAC_Maps/corridor.SC2Map | Bin 0 -> 18055 bytes .../maps/SMAC_Maps/so_many_baneling.SC2Map | Bin 0 -> 18133 bytes smac/env/starcraft2/maps/__init__.py | 10 + smac/env/starcraft2/maps/smac_maps.py | 223 +++ smac/env/starcraft2/starcraft2.py | 1266 +++++++++++++++++ smac/examples/__init__.py | 0 smac/examples/random.py | 43 + 36 files changed, 1978 insertions(+), 1 deletion(-) create mode 100644 docs/smac.md create mode 100755 setup.py create mode 100644 smac/__init__.py create mode 100644 smac/bin/__init__.py create mode 100644 smac/bin/map_list.py create mode 100644 smac/env/__init__.py create mode 100644 smac/env/multiagentenv.py create mode 100644 smac/env/starcraft2/__init__.py create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/10m_vs_11m.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/25m.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/27m_vs_30m.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/2c_vs_64zg.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/2m_vs_1z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/2s3z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/2s_vs_1sc.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/3m.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/3s5z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/3s5z_vs_3s6z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/3s_vs_3z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/3s_vs_4z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/3s_vs_5z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/5m_vs_6m.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/6h_vs_8z.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/8m.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/8m_vs_9m.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/MMM.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/MMM2.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/bane_vs_bane.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/corridor.SC2Map create mode 100755 smac/env/starcraft2/maps/SMAC_Maps/so_many_baneling.SC2Map create mode 100644 smac/env/starcraft2/maps/__init__.py create mode 100644 smac/env/starcraft2/maps/smac_maps.py create mode 100644 smac/env/starcraft2/starcraft2.py create mode 100644 smac/examples/__init__.py create mode 100644 smac/examples/random.py diff --git a/README.md b/README.md index 4e80349c..2bebba27 100644 --- a/README.md +++ b/README.md @@ -1 +1,148 @@ -# smac \ No newline at end of file +```diff +- This is a BETA release. +``` + +# SMAC - StarCraft Multi-Agent Challenge + +[SMAC](https://github.com/oxwhirl/smac) is [WhiRL](http://whirl.cs.ox.ac.uk)'s environment for research in the field of collaborative multi-agent reinforcement learning (MARL) based on [Blizzard](http://blizzard.com)'s [StarCraft II](https://en.wikipedia.org/wiki/StarCraft_II:_Wings_of_Liberty) RTS game. SMAC makes use of Blizzard's [StarCraft II Machine Learning API](https://github.com/Blizzard/s2client-proto) and [DeepMind](https://deepmind.com)'s [PySC2](https://github.com/deepmind/pysc2) to provide a convenient interface for autonomous agents to interact with StarCraft II, getting observations and performing actions. Unlike the [PySC2](https://github.com/deepmind/pysc2), SMAC concentrates on *decentralised micromanamgent* scenarios, where each unit of the game is controlled by an individual RL agent. + +Please refer to the accompanying [paper](https://arxiv.org/abs/TODO) and [blogpost](http://whirl.cs.ox.ac.uk/blog/smac) for the outline of our motivation for using SMAC as a testbed for MARL research and the initial experimental results. + +## About + +Together with SMAC we also release [PyMARL](https://github.com/oxwhirl/pymarl) - our framework for MARL research, which includes implementations of several state-of-the-art algorithms, such as [QMIX](https://arxiv.org/abs/1803.11485) and [COMA](https://arxiv.org/abs/1705.08926). + +Should you have any question, please reach to [mikayel@samvelyan.com](mailto:[mikayel@samvelyan.com) or [tabish.rashid@cs.ox.ac.uk](mailto:[tabish.rashid@cs.ox.ac.uk). + + +# Quick Start + +## Installing SMAC + +You can install SMAC by using the following command: + +```shell +$ pip install git+https://github.com/oxwhirl/smac.git +``` + +Alternatively, you can clone the SMAC repository and then install `smac` with its dependencies: + +```shell +$ git clone https://github.com/oxwhirl/smac.git +$ pip install smac/ +``` + +SMAC uses features of PySC2 that are not included in the latest release yet. If you have PySC2-2.0.1 already installed, please uninstall it first. SMAC will install a newer version from the master branch. You may also need to upgrade pip: `pip install --upgrade pip` for the install to work. + +## Installing StarCraft II + +SMAC is based on the full game of StarCraft II (versions >= 3.16.1). To install the game, follow the commands bellow. + +### Linux + +Please use the Blizzard's [repository](https://github.com/Blizzard/s2client-proto#downloads) to download the Linux version of StarCraft II. By default, the game is expected to be in `~/StarCraftII/` directory. This can be changed by setting the environment variable `SC2PATH`. + +### MacOS/Windows + +Please install StarCraft II from [Battle.net](https://battle.net). The free [Starter Edition](http://battle.net/sc2/en/legacy-of-the-void/) also works. PySC2 will find the latest binary should you use the default install location. Otherwise, similar to the Linux version, you would need to set the `SC2PATH` environment variable with the correct location of the game. + +## SMAC maps + +SMAC is composed of many combat scenarios with pre-configured maps. Before SMAC can be used, these maps need to be downloaded into the `Maps` directory of StarCraft II. + +Download the [SMAC Maps](https://github.com/oxwhirl/smac/releases/download/v1.2/smac_maps.zip) and extract them to your `$SC2PATH/Maps` directory.(**TODO** fix the link) If you installed SMAC via git, simply copy the `SMAC_Maps` directory from `smac/env/starcraft2/maps/` into `$SC2PATH/Maps` directory. + +### List the maps + +To see the list of SMAC maps, together with the number of ally and enemy units and episode limit, run: + +```shell +$ python -m smac.bin.map_list +``` + +## Testing SMAC + +Please run the following command to make sure that `smac` and its maps are properly installed. + +```bash +$ python -m smac.examples.random +``` + +## Watch a replay + +You can watch saved replays by running: + +```shell +$ python -m pysc2.bin.play --norender --rgb_minimap_size 0 --replay +``` + +This works for any replay as long as the map can be found by the game. + +For more information, please refer to [PySC2](https://github.com/deepmind/pysc2) documentation. + +# Documentation + +For the detailed description of the environment, read the [SMAC documentation](docs/smac.md). The initial results of our experiments using SMAC can be found in the [accompanying paper](https://arxiv.org/abs/TODO). + +# Citing SMAC + +If you use SMAC in your research, please cite the [SMAC Paper](https://arxiv.org/abs/TODO). + +*M. Samvelyan, T. Rashid, C. Schroeder de Witt, G. Farquhar, N. Nardelli, T.G.J Rudner, CM Hung, P.H.S. Torr, J. Foerster, S. Whiteson. The StarCraft Multi-Agent Challenge, CoRR abs/TBD, 2018* + +In BibTeX format: + +```tex +@article{samvelyan19smac, + title = {{The} {StarCraft} {Multi}-{Agent} {Challenge}}, + author = {Mikayel Samvelyan and Tabish Rashid and Christian Schroeder de Witt and Gregory Farquhar and Nantas Nardelli and Tim G. J. Rudner and Chia-Man Hung and Philiph H. S. Torr and Jakob Foerster and Shimon Whiteson}, + journal = {CoRR}, + volume = {abs/TBD}, + year = "2019" +} +``` + +# Code Example + +Bellow is a small code example which illustrates how SMAC can be used. Here, individual agents execute random policies after receiving the observations and global state from the environment. + +If you want to try the state-of-the-art algorithms (such as [QMIX](https://arxiv.org/abs/1803.11485) and [COMA](https://arxiv.org/abs/1705.08926)) on SMAC, make use of [PyMARL](https://github.com/oxwhirl/smac) - our framework for MARL research. + +```python +from smac.env import StarCraft2Env +import numpy as np + + +def main(): + env = StarCraft2Env(map_name="8m") + env_info = env.get_env_info() + + n_actions = env_info["n_actions"] + n_agents = env_info["n_agents"] + + n_episodes = 10 + + for e in range(n_episodes): + env.reset() + terminated = False + episode_reward = 0 + + while not terminated: + obs = env.get_obs() + state = env.get_state() + + actions = [] + for agent_id in range(n_agents): + avail_actions = env.get_avail_agent_actions(agent_id) + avail_actions_ind = np.nonzero(avail_actions)[0] + action = np.random.choice(avail_actions_ind) + actions.append(action) + + reward, terminated, _ = env.step(actions) + episode_reward += reward + + print("Total reward in episode {} = {}".format(e, episode_reward)) + + env.close() + +``` diff --git a/docs/smac.md b/docs/smac.md new file mode 100644 index 00000000..2b7acdcf --- /dev/null +++ b/docs/smac.md @@ -0,0 +1,133 @@ +## Table of Contents + +- [StarCraft II](#starcraft-ii) + - [Micromanagement](#micromanagement) +- [SMAC](#smac) + - [Scenarios](#scenarios) + - [State and Observations](#state-and-observations) + - [Action Space](#action-space) + - [Rewards](#rewards) + - [Environment Settings](#environment-settings) + +## StarCraft II + +SMAC is based on the popular real-time strategy (RTS) game [StarCraft II](http://us.battle.net/sc2/en/game/guide/whats-sc2) written by [Blizzard](http://blizzard.com/). +In a regular full game of StarCraft II, one or more humans compete against each other or against a built-in game AI to gather resources, construct buildings, and build armies of units to defeat their opponents. + +Akin to most RTSs, StarCraft has two main gameplay components: macromanagement and micromanagement. _Macromanagement_ refers to high-level strategic considerations, such as economy and resource management. _Micromanagement_ (micro), on the other hand, refers to fine-grained control of individual units. + +### Micromanagement + +StarCraft has been used as a research platform for AI, and more recently, RL. Typically, the game is framed as a single-agent problem: an agent takes the role of a human player, making macromanagement decisions and performing micromanagement as a puppeteer that issues orders to individual units from a centralised controller. + +In order to build a rich multi-agent testbed, we instead focus solely on micromanagement. +Micro is a vital aspect of StarCraft gameplay with a high skill ceiling, and is practiced in isolation by amateur and professional players. +For SMAC, we leverage the natural multi-agent structure of micromanagement by proposing a modified version of the problem designed specifically for decentralised control. +In particular, we require that each unit be controlled by an independent agent that conditions only on local observations restricted to a limited field of view centred on that unit. +Groups of these agents must be trained to solve challenging combat scenarios, battling an opposing army under the centralised control of the game's built-in scripted AI. + +Proper micro of units during battles will maximise the damage dealt to enemy units while minimising damage received, and requires a range of skills. +For example, one important technique is _focus fire_, i.e., ordering units to jointly attack and kill enemy units one after another. When focusing fire, it is important to avoid _overkill_: inflicting more damage to units than is necessary to kill them. + +Other common micromanagement techniques include: assembling units into formations based on their armour types, making enemy units give chase while maintaining enough distance so that little or no damage is incurred (_kiting_), coordinating the positioning of units to attack from different directions or taking advantage of the terrain to defeat the enemy. + +Learning these rich cooperative behaviours under partial observability is challenging task, which can be used to evaluate the effectiveness of multi-agent reinforcement learning (MARL) algorithms. + +## SMAC + +SMAC uses the [StarCraft II Learning Environment](https://github.com/deepmind/pysc2) to introduce a cooperative MARL environment. + +### Scenarios + +SMAC consists of a set of StarCraft II micro scenarios which aim to evaluate how well independent agents are able to learn coordination to solve complex tasks. +These scenarios are carefully designed to necessitate the learning of one or more micromanagement techniques to defeat the enemy. +Each scenario is a confrontation between two armies of units. +The initial position, number, and type of units in each army varies from scenario to scenario, as does the presence or absence of elevated or impassable terrain. + +The first army is controlled by the learned allied agents. +The second army consists of enemy units controlled by the built-in game AI, which uses carefully handcrafted non-learned heuristics. +At the beginning of each episode, the game AI instructs its units to attack the allied agents using its scripted strategies. +An episode ends when all units of either army have died or when a pre-specified time limit is reached (in which case the game is counted as a defeat for the allied agents). +The goal for each scenario is to maximise the win rate of the learned policies, i.e., the expected ratio of games won to games played. +To speed up learning, the enemy AI units are ordered to attack the agents' spawning point in the beginning of each episode. + +Perhaps the simplest scenarios are _symmetric_ battle scenarios. +The most straightforward of these scenarios are _homogeneous_, i.e., each army is composed of only a single unit type (e.g., Marines). +A winning strategy in this setting would be to focus fire, ideally without overkill. +_Heterogeneous_ symmetric scenarios, in which there is more than a single unit type on each side (e.g., Stalkers and Zealots), are more difficult to solve. +Such challenges are particularly interesting when some of the units are extremely effective against others (this is known as _countering_), for example, by dealing bonus damage to a particular armour type. +In such a setting, allied agents must deduce this property of the game and design an intelligent strategy to protect teammates vulnerable to certain enemy attacks. + +SMAC also includes more challenging scenarios, for example, in which the enemy army outnumbers the allied army by one or more units. In such _asymmetric_ scenarios it is essential to consider the health of enemy units in order to effectively target the desired opponent. + +Lastly, SMAC offers a set of interesting _micro-trick_ challenges that require a higher-level of cooperation and a specific micromanagement trick to defeat the enemy. +An example of a challenge scenario is _2m_vs_1z_ (aka Marine Double Team), where two Terran Marines need to defeat an enemy Zealot. In this setting, the Marines must design a strategy which does not allow the Zealot to reach them, otherwise they will die almost immediately. +Another example is _so_many_banelings_ where 7 allied Zealots face 32 enemy Baneling units. Banelings attack by running against a target and exploding when reaching them, causing damage to a certain area around the target. Hence, if a large number of Banelings attack a handful of Zealots located close to each other, the Zealots will be defeated instantly. The optimal strategy, therefore, is to cooperatively spread out around the map far from each other so that the Banelings' damage is distributed as thinly as possible. +The _corridor_ scenario, in which 6 friendly Zealots face 24 enemy Zerglings, requires agents to make effective use of the terrain features. Specifically, agents should collectively wall off the choke point (the narrow region of the map) to block enemy attacks from different directions. Some of the micro-trick challenges are inspired by [StarCraft Master](http://us.battle.net/sc2/en/blog/4544189/new-blizzard-custom-game-starcraft-master-3-1-2012) challenge missions released by Blizzard. + +The complete list of challenges is presented bellow. The difficulty of the game AI is set to _very difficult_ (7). Our experiments, however, suggest that this setting does significantly impact the unit micromanagement of the built-in heuristics. + +| Name | Ally Units | Enemy Units | Type | +| :---: | :---: | :---: | :---:| +| 3m | 3 Marines | 3 Marines | homogeneous & symmetric | +| 8m | 8 Marines | 8 Marines | homogeneous & symmetric | +| 25m | 25 Marines | 25 Marines | homogeneous & symmetric | +| 2s3z | 2 Stalkers & 3 Zealots | 2 Stalkers & 3 Zealots | heterogeneous & symmetric | +| 3s5z | 3 Stalkers & 5 Zealots | 3 Stalkers & 5 Zealots | heterogeneous & symmetric | +| MMM | 1 Medivac, 2 Marauders & 7 Marines | 1 Medivac, 2 Marauders & 7 Marines | heterogeneous & symmetric | +| 5m_vs_6m | 5 Marines | 6 Marines | homogeneous & asymmetric | +| 8m_vs_9m | 8 Marines | 9 Marines | homogeneous & asymmetric | +| 10m_vs_11m | 10 Marines | 11 Marines | homogeneous & asymmetric | +| 27m_vs_30m | 27 Marines | 30 Marines | homogeneous & asymmetric | +| 3s5z_vs_3s6z | 3 Stalkers & 5 Zealots | 3 Stalkers & 6 Zealots | heterogeneous & asymmetric | +| MMM2 | 1 Medivac, 2 Marauders & 7 Marines | 1 Medivac, 3 Marauders & 8 Marines | heterogeneous & asymmetric | +| 2m_vs_1z | 2 Marines | 1 Zealot | micro-trick: alternating fire | +| 2s_vs_1sc| 2 Stalkers | 1 Spine Crawler | micro-trick: alternating fire | +| 3s_vs_3z | 3 Stalkers | 3 Zealots | micro-trick: kiting | +| 3s_vs_4z | 3 Stalkers | 4 Zealots | micro-trick: kiting | +| 3s_vs_5z | 3 Stalkers | 5 Zealots | micro-trick: kiting | +| 6h_vs_8z | 6 Hydralisks | 8 Zealots | micro-trick: focus fire | +| corridor | 6 Zealots | 24 Zerglings | micro-trick: wall off | +| bane_vs_bane | 20 Zerglings & 4 Banelings | 20 Zerglings & 4 Banelings | micro-trick: positioning | +| so_many_banelings| 7 Zealots | 32 Banelings | micro-trick: positioning | +| 2c_vs_64zg| 2 Colossi | 64 Zerglings | micro-trick: positioning | + +### State and Observations + +At each timestep, agents receive local observations drawn within their field of view. This encompasses information about the map within a circular area around each unit and with a radius equal to the _sight range_. The sight range makes the environment partially observable from the standpoint of each agent. Agents can only observe other agents if they are both alive and located within the sight range. Hence, there is no way for agents to determine whether their teammates are far away or dead. + +The feature vector observed by each agent contains the following attributes for both allied and enemy units within the sight range: _distance_, _relative x_, _relative y_, _health_, _shield_, and _unit\_type_.\footnote{_health_, _shield_ and _unit\_type_ of the unit the agent controls is also included in observations_. Shields serve as an additional source of protection that needs to be removed before any damage can be done to the health of units. +All Protos units have shields, which can regenerate if no new damage is dealt +(units of the other two races do not have this attribute). +In addition, agents have access to the last actions of allied units that are in the field of view. Lastly, agents can observe the terrain features surrounding them; particularly, the values of eight points at a fixed radius indicating height and walkability. + +The global state, which is only available to agents during centralised training, contains information about all units on the map. Specifically, the state vector includes the coordinates of all agents relative to the centre of the map, together with unit features present in the observations. Additionally, the state stores the _energy_ of Medivacs and _cooldown_ of the rest of allied units, which represents the minimum delay between attacks. Finally, the last actions of all agents are attached to the central state. + +All features, both in the state as well as in the observations of individual agents, are normalised by their maximum values. The sight range is set to 9 for all agents. + +### Action Space + +The discrete set of actions which agents are allowed to take consists of _move[direction]_ (four directions: north, south, east, or west._, _attack[enemy_id]_, _stop_ and _no-op_. Dead agents can only take _no-op_ action while live agents cannot. +As healer units, Medivacs must use _heal[agent\_id]_ actions instead of _attack[enemy\_id]_. + +To ensure decentralisation of the task, agents are restricted to use the _attack[enemy\_id]_ action only towards enemies in their _shooting range_. +This additionally constrains the unit's ability to use the built-in _attack-move_ macro-actions on the enemies far away. We set the shooting range equal to 6. Having a bigger sight than shooting range forces agents to make use of move commands before starting to fire. + +### Rewards + +The overall goal is to have the highest win rate for each battle scenario. +We provide a corresponding option for _sparse rewards_, which will cause the environment to return only a reward of +1 for winning and -1 for losing an episode. +However, we also provide a default setting for a shaped reward signal calculated from the hit-point damage dealt and received by agents, some positive (negative) reward after having enemy (allied) units killed and/or a positive (negative) bonus for winning (losing) the battle. +The exact values and scales of this shaped reward can be configured using a range of flags, but we strongly discourage disingenuous engineering of the reward function (e.g. tuning different reward functions for different scenarios). + +### Environment Settings + +SMAC, through the [PySC2](https://github.com/deepmind/pysc2) framework of SC2LE, is able to send commands and receive input from the [StarCraft II API](https://github.com/Blizzard/s2client-proto), which provides full control of the StarCraft II game. SC2LE uses a _feature layer_ interface where observations are abstractions of RGB images that maintain the spatial and graphical concepts of the game. However, SMAC uses the _raw API_ also supported by StarCraft II API. +Raw API observations do not have any graphical component and include information about the units on the map such as health, location coordinates, etc. The raw API also allows sending action commands to individual units using their unit IDs. This setting differs from how humans play the actual game, but is convenient for designing decentralised multi-agent learning tasks. + +Since our micro-scenarios are shorter than actual StarCraft II games, restarting the game after each episode presents a computational bottleneck. To overcome this issue, we make use of the API's debug commands. Specifically, when all units of either army have been killed, we kill all remaining units by sending a debug action. Having no units left launches a trigger programmed with the StarCraft II Editor that re-spawns all units in their original location with full health, thereby restarting the scenario quickly and efficiently. + +Furthermore, to encourage agents to explore interesting micro-strategies themselves, we limit the influence of the StarCraft AI on our agents. Specifically we disable the automatic unit attack against enemies that attack agents or that are located nearby. +To do so, we make use of new units created with the StarCraft II Editor that are exact copies of existing units with two attributes modified: _Combat: Default Acquire Level_ is set to _Passive_ (default _Offensive_) and _Behaviour: Response_ is set to _No Response_ (default _Acquire_). These fields are only modified for allied units; enemy units are unchanged. + +The sight and shooting range values might differ from the built-in _sight_ or _range_ attribute of some StarCraft II units. Our goal is not to master the original full StarCraft game, but rather to benchmark MARL methods for decentralised control. diff --git a/setup.py b/setup.py new file mode 100755 index 00000000..3513aa98 --- /dev/null +++ b/setup.py @@ -0,0 +1,45 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from setuptools import setup + +description = """SMAC - StarCraft Multi-Agent Challenge + +SMAC offers a diverse set of decentralised micromanagement challenges based on +StarCraft II game. In these challenges, each of the units is controlled by an +independent, learning agent that has to act based only on local observations, +while the opponent's units are controlled by the built-in StarCraft II AI. + +The accompanying paper which outlines the motivation for using SMAC as well as +results using the state-of-the-art deep multi-agent reinforcement learning +algorithms can be found at https://www.arxiv.link + +Read the README at https://github.com/oxwhirl/smac for more information. +""" + +setup( + name='SMAC', + version='0.1.0b1', + description='SMAC - StarCraft Multi-Agent Challenge.', + long_description=description, + author='WhiRL', + author_email='mikayel@samvelyan.com', + license='Apache License, Version 2.0', + keywords='StarCraft AI, Multi-Agent Reinforcement Learning', + url='https://github.com/oxwhirl/smac', + packages=[ + 'smac', + 'smac.env', + 'smac.env.starcraft2', + 'smac.env.starcraft2.maps', + 'smac.bin', + 'smac.examples' + ], + install_requires=[ + 's2clientprotocol>=4.6.0.67926.0', + 'absl-py>=0.1.0', + 'numpy>=1.10', + 'pysc2 @ git+https://github.com/deepmind/pysc2@a9f093493c4c77adb385602790a480e7f238b97d', + ], +) diff --git a/smac/__init__.py b/smac/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/smac/bin/__init__.py b/smac/bin/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/smac/bin/map_list.py b/smac/bin/map_list.py new file mode 100644 index 00000000..ec1be8df --- /dev/null +++ b/smac/bin/map_list.py @@ -0,0 +1,28 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from smac.env.starcraft2.maps import smac_maps + +from pysc2 import maps as pysc2_maps + + +def main(): + smac_map_registry = smac_maps.get_smac_map_registry() + all_maps = pysc2_maps.get_maps() + print("{:<15} {:7} {:7} {:7}".format("Name", "Agents", "Enemies", "Limit")) + for map_name, map_params in smac_map_registry.items(): + map_class = all_maps[map_name] + if map_class.path: + print( + "{:<15} {:<7} {:<7} {:<7}".format( + map_name, + map_params["n_agents"], + map_params["n_enemies"], + map_params["limit"], + ) + ) + + +if __name__ == "__main__": + main() diff --git a/smac/env/__init__.py b/smac/env/__init__.py new file mode 100644 index 00000000..44697deb --- /dev/null +++ b/smac/env/__init__.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from smac.env.multiagentenv import MultiAgentEnv +from smac.env.starcraft2.starcraft2 import StarCraft2Env + +__all__ = ["MultiAgentEnv", "StarCraft2Env"] diff --git a/smac/env/multiagentenv.py b/smac/env/multiagentenv.py new file mode 100644 index 00000000..049ea614 --- /dev/null +++ b/smac/env/multiagentenv.py @@ -0,0 +1,67 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + + +class MultiAgentEnv(object): + + def step(self, actions): + """Returns reward, terminated, info.""" + raise NotImplementedError + + def get_obs(self): + """Returns all agent observations in a list.""" + raise NotImplementedError + + def get_obs_agent(self, agent_id): + """Returns observation for agent_id.""" + raise NotImplementedError + + def get_obs_size(self): + """Returns the size of the observation.""" + raise NotImplementedError + + def get_state(self): + """Returns the global state.""" + raise NotImplementedError + + def get_state_size(self): + """Returns the size of the global state.""" + raise NotImplementedError + + def get_avail_actions(self): + """Returns the available actions of all agents in a list.""" + raise NotImplementedError + + def get_avail_agent_actions(self, agent_id): + """Returns the available actions for agent_id.""" + raise NotImplementedError + + def get_total_actions(self): + """Returns the total number of actions an agent could ever take.""" + raise NotImplementedError + + def reset(self): + """Returns initial observations and states.""" + raise NotImplementedError + + def render(self): + raise NotImplementedError + + def close(self): + raise NotImplementedError + + def seed(self): + raise NotImplementedError + + def save_replay(self): + """Save a replay.""" + raise NotImplementedError + + def get_env_info(self): + env_info = {"state_shape": self.get_state_size(), + "obs_shape": self.get_obs_size(), + "n_actions": self.get_total_actions(), + "n_agents": self.n_agents, + "episode_limit": self.episode_limit} + return env_info diff --git a/smac/env/starcraft2/__init__.py b/smac/env/starcraft2/__init__.py new file mode 100644 index 00000000..94e651ec --- /dev/null +++ b/smac/env/starcraft2/__init__.py @@ -0,0 +1,7 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from absl import flags +FLAGS = flags.FLAGS +FLAGS(['main.py']) diff --git a/smac/env/starcraft2/maps/SMAC_Maps/10m_vs_11m.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/10m_vs_11m.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..1dc2286dfd39380feafa6f8a1819248c9f2c9e3b GIT binary patch literal 14925 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/25m.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/25m.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..fcfdeb09dfc47c0b6376447608b3681a2ef8964a GIT binary patch literal 14923 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/27m_vs_30m.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/27m_vs_30m.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..861c7f7069125d9d22e098056f7b430e83917acc GIT binary patch literal 14929 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/2c_vs_64zg.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/2c_vs_64zg.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..b740b6c3d5fdc71d94f6e9b992206dbbfc5f495d GIT binary patch literal 16477 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

_!HGw$4 z41!Y5#-hP%dFVD~OLOBef`PAxvqLX_msL zE$T>MeS2Q&TkPMVr`jUtL@4xhsPTyJ#^O|t7$JW)HCG@Oy*4e{uvz}FuO%(rQ#^59D8*O2{Eh0*iFNEKReF`W5? z1si5EKhBeu8=YDBQ#P-zZi0ry&W>#*2 z*N?DI@!8oY5vHl@LJ1li21iDPG4f>Wu=p;SqX~_ zltIc(9q*Y9zLvtv{#>FSk`du@dTT1A}GGx)_08F|tV{nw#R~#q?;}o)f5AWexaslG=qv z&yv~TspHpdL$kPTTupG@Lm)(ICI~R@XS5rD+AptA0EnJ`3tY=K*V z%~_l|<3%%aDwF%^=|Nae#9_dz^L;V%@RH8?nkLR!q*^jL3{SwR*#K@PJEoyNbgZsia}!Wn3!cnp`STsVr#@`#-vJmeJPr*lp|%)SplIEQCsaU1L$qBNX3oO43lZbun< zaM(_ITK+MhMO!^a=~jE^TThnO9T#y9l@~#yGO`->Ac^aNHL6&Wpf0dfnvkH)ef1&| zjVEYPzYiVG_6Lpq!PucvzVT4NG`;-H>_Urs=lH8b% zHhhVcoe2n+Cu#vr*+8bKX`5#x5|Y%B{X*6s$+!fZlTP3dSVOGhP}xMMQiV8Yd>wU- zU*B4_A>}s64cnzs(c7|V`pZ_hOHjD&^AU6BahMl3{0D13t)==lgGkJ*i81v>YSe6H zu0>2Q!eCHIg^51A@MH2$79v5mI+Sjv$G!#GQ^*YkM7J28t*BW=`z0TVE>mmKrk2?f zk#Ux5-lzp|<;#W2Ly}7O#DV_+4SB@Rim2yC1Xfx}#=VcE&|M=P!4Qv-O0V?m3$(ix zs1sKkA?O?u0|y$S8IoUq3~wR1Y}B!(IQors53=G@Ej##rTExmd1#o#JDuEN0#2UJu zoIr{Q=uy7|d>3h{`{kQWJLAHfU5oa3bSU)!-fIjPR^`JO>Iy>Px#r6yovKHe-Jfe* zjoLfX73TeP+yQTUprX}1hy!R Zqa&pt%v$)jaAe$MH|5b7EYw8R{x6J^pV9yT literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/2m_vs_1z.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/2m_vs_1z.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..f4c05c40b1e7be6ae542c9fcae1bf319d28cf7c3 GIT binary patch literal 15539 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�P^>K= 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 aZ-8MSgB*Qfb+5{0w#PqCPsy}CbN>e;?7PnZ literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/2s3z.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/2s3z.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..59846ccf27a67450c03bea41c1fe5efbff4f0ad2 GIT binary patch literal 15692 zcmeIZWpG`+(k{5o%*+fiGcz+YZZmVt%*@OTv15)QW{8>DF|%W4rg6@B&)jcLP0jqj zbyf99T1#rFB`vjDEiHK^W!z~103gQ?0Du7?0IwVXz$*^`AoTf;;uHVV{mt{&)w2CN zB={!;fdBhh3H0CLfBc|-BK-e(F9ZM>ejvc0L7ktyBnZXjP30IBt}f-cO7>jduCK%J zCZlcshxR|AA%d?~yH_O(-TZQPIk9#l?21mIjYjz!w#Lw6tZ)16J01t&3_=42W9m03 z_G-=rP>-A&Cl^F%lOAwbrSTXdCPa77GG(SBkic8!QxJe)DO``PE9)t~L5vchk%Z8F zhc4!mZA6LA*HZP07c1%To;mm70Z->=zaH{|dsXb5S5uI0_|IPtZ3{xLVIiVYcW)Qn z@3T0>k<>R^L$I$$@B&X_8WF42liM%2H{IsD)*Y>2@XSe7I9>e_lL@k*%0ETfde*J0 zbi5#3U0LO$5

MT}MmUi6MEbKNUap2XX0{+NC5H|yav<2m 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 tdJRJ!1!JA9w=Gcz+&%*<@ZUf=uf+kN|LtM>oa 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/3m.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/3m.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..b35ec1008349e64afb63e23caeaa8c73f6028a03 GIT binary patch literal 14920 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/3s5z_vs_3s6z.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/3s5z_vs_3s6z.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..3927ca4f45afacbba09c1abf46aa5576fb8b5345 GIT binary patch literal 15704 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 B;+Fsb literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/3s_vs_3z.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/3s_vs_3z.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..4de7cf80e75f7a2e11878f767a74199cf8630a4f GIT binary patch literal 13995 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/3s_vs_4z.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/3s_vs_4z.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..8db2dfc6aa08e310ad99f4f7f0b0b7b84811ffc2 GIT binary patch literal 14000 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/5m_vs_6m.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/5m_vs_6m.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..f2ae42c2da5c1d11683d63f458f1a554e2da66fc GIT binary patch literal 14930 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/6h_vs_8z.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/6h_vs_8z.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..df01eb64749ef42cd68e51fb20e53303a476ffe0 GIT binary patch literal 14342 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/MMM.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/MMM.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..ed26fe446731b821aae6853e310ecce782a89864 GIT binary patch literal 17411 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%0Dd+<=* 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 XcU7LEGe|Yq-By}E3+-NMr}uvV(-Atb literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/MMM2.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/MMM2.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..ab25a02bb391b1da5045a2ef73873c42305c429a GIT binary patch literal 17419 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/bane_vs_bane.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/bane_vs_bane.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..bb81284cc1e7396278b972d39aeb14c2f86d906d GIT binary patch literal 16782 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/corridor.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/corridor.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..90daed607b72b7d0cc14f4d2ccad7302ecc3bd01 GIT binary patch literal 18055 zcmeFYWmF}-+BUdh4tz)9Ft`>3=C58blQzmQ>KWq#d2%NA2Lx1Fvx@jPH7OR zK$cu5h5}mQoOVmna$$e~6f1<_DABQqGQTI}lkZYKU^q^gpbKVbe05&tLV5RPeIUg4 zn*bxWaz5&I^?*fmo?;Rz%6M_A`-7V&(#Rzxzw>g})XUh@J79N1Y*IgI-LSl7q45?| z1!muottuM~JZN2W)y8h^HOUclAi2Y(N?|_OA?$jeAq;|I`1Wi&ZQ%DxZra-49&m#- z)B5hs?ykI~Bp^K1hS3@807($3dIISIy2!v$`Zi3jz5^N|6Oimhi^{?INqKoDVbaIpYtd7*3P+&!K$$K z(CLX8HMvFvMPl1*B63t>U1Wd46-2}L<1g?!-;_FxxvwdY4GWKcqP=BKCnA6SC6d&P zaroNT!J^t?kW69MQPTGC@Nl+aZ+{*^^CMu;c#_!dE4AEiSZAy!ifl_(Ua_R8Xi`eS zO<-6spQ^kWi!!W#+lK$G5+gZU{L!lTWUo9CfH2&><-M_-=7iK7=#4(5!{%x zm3$Rk5C-)Cl(2Gaj`Gh#PGJtHhV2*s2I=WfUnQ(${fwHV4R&y4cIaVY*AVs;Aw;MC zN3rG;G;#$5VbJY9N~C02!XDe#@oTD?pO4k-1p{IM9On(P33+qb&QU;;^;=TMcbb6m zzJ~x2xztATF6ey zevsj~-d#p8xPEtLZ5r>;26y$--%)_7JzHg~OCU2T2>&vnkN;s%)aWI6s`7I_X#lmw z)wQEE_{4n#t)puINS3IJciwvTi#Iaaf;di>KH~Jzc>KNWRG~6N z@QTn-6p^H>@vz2-2g)8)rbVYc%ZoEaUQI;Hs9{a>GD}NLxg=a6Q3ud?6gu>{ksj;CU)uxH5A=r$q5W)^C_z|~?op_KXpi&L0 zGlzXW;8w^x!kABy{+x!M_phR(le|^4Ff^=2Hw6G8smz0ov4^`i<24hs1Pp|sO+l3IBqmlSQKlXbBp4Cm&p6n(<>#XCLaAd8;6Nsp+%$NwS2|6# z1R%g!6-|tlqs$+L_!^}xo9f`Wms$u^UQ(Q#43HTm^dj)XDAif^W?l}wjedJrMo*FN z7PGFVeB92IGveJ_M6DRQU;;1Hy)!eQWYJzEc#&z`=QHkZB609^Q6-@}V(0E4e9+1K zlh&H}fr$IfCHl9_t#@xBOFA_wb-#t>xfq5FkgSZyv{4oQ}!z6ND8lc zVTts_Z^O7>Op4jgur-HOJBlc+Fr685Lm@?es#KO$35vqQ!|Ix@C{LU*E{Qo>Ri>z* zAa}AGFTrX~z3zHyG@eO4#;z)!5mlm=7c3F0HJ;9VPS`P-YB;KKIo|{!R{hZm(xIuDn+i5tQ$2 zss}EJ2+!YfCE=DPQm;+&yB;|>c@8uD{o~10&Z^N@&!?3KAO>WJ!rJODd1^I=yi|!h zHb$(hZ;L0lpx7M|v5$SyAyj*-?M%?*hYjxs#eK89K? zt7@&}g)~Kju+^9T8vjT{7}hM%YYxzZ<(SdmSCPV78wGG;JNzhsa)A8XZ0bFBD@+I- zxR)BcrM7Es6U0Z$1wuiPu5HHjp+Ys-I>mH2iRlb4&r*pQ`9Ie5-B!t&pNcJhe#?L3 z8qer4up;T-1#4!pb9K(3V0Yg$wWjBKxx(~qgX-~pB?^{9BWO=RyoMW)VVlt8jiv-n zJo`JUODk@l&bEEZ+W7JK<(cAKAYj*2V5t+?ZW-r5D&vzbw<-{Ioo$mI#qdA7>Q705W}aO{QgMv`D#bdw_r?shrugZNX|+Uq(^RKpxy z)l*Oh8*F4_*3&2`a&Src3Qsx@f@o`6DZs75YKk}|Iy8`eS_8wKziIs-OW3ZLuM

A|$(9?o`33v4Ald6Wt%mytPzx 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/SMAC_Maps/so_many_baneling.SC2Map b/smac/env/starcraft2/maps/SMAC_Maps/so_many_baneling.SC2Map new file mode 100755 index 0000000000000000000000000000000000000000..6a184e355eb0f724a53877c12ca055dc22182d67 GIT binary patch literal 18133 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 literal 0 HcmV?d00001 diff --git a/smac/env/starcraft2/maps/__init__.py b/smac/env/starcraft2/maps/__init__.py new file mode 100644 index 00000000..78acbe9d --- /dev/null +++ b/smac/env/starcraft2/maps/__init__.py @@ -0,0 +1,10 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from smac.env.starcraft2.maps import smac_maps + + +def get_map_params(map_name): + map_param_registry = smac_maps.get_smac_map_registry() + return map_param_registry[map_name] diff --git a/smac/env/starcraft2/maps/smac_maps.py b/smac/env/starcraft2/maps/smac_maps.py new file mode 100644 index 00000000..1e9e033e --- /dev/null +++ b/smac/env/starcraft2/maps/smac_maps.py @@ -0,0 +1,223 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from pysc2.maps import lib + + +class SMACMap(lib.Map): + directory = "SMAC_Maps" + download = "https://github.com/oxwhirl/smac#smac-maps" + players = 2 + step_mul = 8 + game_steps_per_episode = 0 + + +map_param_registry = { + "3m": { + "n_agents": 3, + "n_enemies": 3, + "limit": 60, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 0, + "map_type": "marines", + }, + "8m": { + "n_agents": 8, + "n_enemies": 8, + "limit": 120, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 0, + "map_type": "marines", + }, + "25m": { + "n_agents": 25, + "n_enemies": 25, + "limit": 150, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 0, + "map_type": "marines", + }, + "5m_vs_6m": { + "n_agents": 5, + "n_enemies": 6, + "limit": 70, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 0, + "map_type": "marines", + }, + "8m_vs_9m": { + "n_agents": 8, + "n_enemies": 9, + "limit": 120, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 0, + "map_type": "marines", + }, + "10m_vs_11m": { + "n_agents": 10, + "n_enemies": 11, + "limit": 150, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 0, + "map_type": "marines", + }, + "27m_vs_30m": { + "n_agents": 27, + "n_enemies": 30, + "limit": 180, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 0, + "map_type": "marines", + }, + "MMM": { + "n_agents": 10, + "n_enemies": 10, + "limit": 150, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 3, + "map_type": "MMM", + }, + "MMM2": { + "n_agents": 10, + "n_enemies": 12, + "limit": 180, + "a_race": "T", + "b_race": "T", + "unit_type_bits": 3, + "map_type": "MMM", + }, + "2s3z": { + "n_agents": 5, + "n_enemies": 5, + "limit": 120, + "a_race": "P", + "b_race": "P", + "unit_type_bits": 2, + "map_type": "stalkers_and_zealots", + }, + "3s5z": { + "n_agents": 8, + "n_enemies": 8, + "limit": 150, + "a_race": "P", + "b_race": "P", + "unit_type_bits": 2, + "map_type": "stalkers_and_zealots", + }, + "3s5z_vs_3s6z": { + "n_agents": 8, + "n_enemies": 9, + "limit": 170, + "a_race": "P", + "b_race": "P", + "unit_type_bits": 2, + "map_type": "stalkers_and_zealots", + }, + "3s_vs_3z": { + "n_agents": 3, + "n_enemies": 3, + "limit": 150, + "a_race": "P", + "b_race": "P", + "unit_type_bits": 0, + "map_type": "stalkers", + }, + "3s_vs_4z": { + "n_agents": 3, + "n_enemies": 4, + "limit": 200, + "a_race": "P", + "b_race": "P", + "unit_type_bits": 0, + "map_type": "stalkers", + }, + "3s_vs_5z": { + "n_agents": 3, + "n_enemies": 5, + "limit": 250, + "a_race": "P", + "b_race": "P", + "unit_type_bits": 0, + "map_type": "stalkers", + }, + "2m_vs_1z": { + "n_agents": 2, + "n_enemies": 1, + "limit": 150, + "a_race": "T", + "b_race": "P", + "unit_type_bits": 0, + "map_type": "marines", + }, + "corridor": { + "n_agents": 6, + "n_enemies": 24, + "limit": 400, + "a_race": "P", + "b_race": "Z", + "unit_type_bits": 0, + "map_type": "zealots", + }, + "6h_vs_8z": { + "n_agents": 6, + "n_enemies": 8, + "limit": 150, + "a_race": "Z", + "b_race": "P", + "unit_type_bits": 0, + "map_type": "hydralisks", + }, + "2s_vs_1sc": { + "n_agents": 2, + "n_enemies": 1, + "limit": 300, + "a_race": "P", + "b_race": "Z", + "unit_type_bits": 0, + "map_type": "stalkers", + }, + "so_many_baneling": { + "n_agents": 7, + "n_enemies": 32, + "limit": 100, + "a_race": "P", + "b_race": "Z", + "unit_type_bits": 0, + "map_type": "zealots", + }, + "bane_vs_bane": { + "n_agents": 24, + "n_enemies": 24, + "limit": 200, + "a_race": "Z", + "b_race": "Z", + "unit_type_bits": 2, + "map_type": "bane", + }, + "2c_vs_64zg": { + "n_agents": 2, + "n_enemies": 64, + "limit": 400, + "a_race": "P", + "b_race": "Z", + "unit_type_bits": 0, + "map_type": "colossus", + }, +} + + +def get_smac_map_registry(): + return map_param_registry + + +for name in map_param_registry.keys(): + globals()[name] = type(name, (SMACMap,), dict(filename=name)) diff --git a/smac/env/starcraft2/starcraft2.py b/smac/env/starcraft2/starcraft2.py new file mode 100644 index 00000000..cc32673f --- /dev/null +++ b/smac/env/starcraft2/starcraft2.py @@ -0,0 +1,1266 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from smac.env.multiagentenv import MultiAgentEnv +from smac.env.starcraft2.maps import get_map_params + +from operator import attrgetter +from copy import deepcopy +import numpy as np +import enum +import math +from absl import logging + +from pysc2 import maps +from pysc2 import run_configs +from pysc2.lib import protocol + +from s2clientprotocol import common_pb2 as sc_common +from s2clientprotocol import sc2api_pb2 as sc_pb +from s2clientprotocol import raw_pb2 as r_pb +from s2clientprotocol import debug_pb2 as d_pb + +races = { + "R": sc_common.Random, + "P": sc_common.Protoss, + "T": sc_common.Terran, + "Z": sc_common.Zerg, +} + +difficulties = { + "1": sc_pb.VeryEasy, + "2": sc_pb.Easy, + "3": sc_pb.Medium, + "4": sc_pb.MediumHard, + "5": sc_pb.Hard, + "6": sc_pb.Harder, + "7": sc_pb.VeryHard, + "8": sc_pb.CheatVision, + "9": sc_pb.CheatMoney, + "A": sc_pb.CheatInsane, +} + +actions = { + "move": 16, # target: PointOrUnit + "attack": 23, # target: PointOrUnit + "stop": 4, # target: None + "heal": 386, # Unit +} + + +class Direction(enum.IntEnum): + NORTH = 0 + SOUTH = 1 + EAST = 2 + WEST = 3 + + +class StarCraft2Env(MultiAgentEnv): + """The StarCraft II environment for decentralised multi-agent + micromanagement scenarios. + """ + def __init__( + self, + map_name="8m", + step_mul=None, + move_amount=2, + difficulty="7", + game_version=None, + seed=None, + continuing_episode=False, + obs_all_health=True, + obs_own_health=True, + obs_last_action=False, + obs_pathing_grid=False, + obs_terrain_height=False, + obs_instead_of_state=False, + state_last_action=True, + reward_sparse=False, + reward_only_positive=True, + reward_death_value=10, + reward_win=200, + reward_defeat=0, + reward_negative_scale=0.5, + reward_scale=True, + reward_scale_rate=20, + replay_dir="", + replay_prefix="", + window_size_x=1920, + window_size_y=1200, + debug=False, + ): + """ + Create a StarCraftC2Env environment. + + Parameters + ---------- + map_name : str, optional + The name of the SC2 map to play (default is "8m"). The full list + can be found by running bin/map_list. + step_mul : int, optional + How many game steps per agent step (default is None). None + indicates to use the default map step_mul. + move_amount : float, optional + How far away units are ordered to move per step (default is 2). + difficulty : str, optional + The difficulty of built-in computer AI bot (default is "7"). + game_version : str, optional + StarCraft II game version (default is None). None indicates the + latest version. + seed : int, optional + Random seed used during game initialisation. This allows to + continuing_episode : bool, optional + Whether to consider episodes continuing or finished after time + limit is reached (default is False). + obs_all_health : bool, optional + Agents receive the health of all units (in the sight range) as part + of observations (default is True). + obs_own_health : bool, optional + Agents receive their own health as a part of observations (default + is False). This flag is ignored when obs_all_health == True. + obs_last_action : bool, optional + Agents receive the last actions of all units (in the sight range) + as part of observations (default is False). + obs_pathing_grid : bool, optional + Whether observations include pathing values surrounding the agent + (default is False). + obs_terrain_height : bool, optional + Whether observations include terrain height values surrounding the + agent (default is False). + obs_instead_of_state : bool, optional + Use combination of all agents' observations as the global state + (default is False). + state_last_action : bool, optional + Include the last actions of all agents as part of the global state + (default is True). + reward_sparse : bool, optional + Receive 1/-1 reward for winning/loosing an episode (default is + False). Whe rest of reward parameters are ignored if True. + reward_only_positive : bool, optional + Reward is always positive (default is True). + reward_death_value : float, optional + The amount of reward received for killing an enemy unit (default + is 10). This is also the negative penalty for having an allied unit + killed if reward_only_positive == False. + reward_win : float, optional + The reward for winning in an episode (default is 200). + reward_defeat : float, optional + The reward for loosing in an episode (default is 0). This value + should be nonpositive. + reward_negative_scale : float, optional + Scaling factor for negative rewards (default is 0.5). This + parameter is ignored when reward_only_positive == True. + reward_scale : bool, optional + Whether or not to scale the reward (default is True). + reward_scale_rate : float, optional + Reward scale rate (default is 20). When reward_scale == True, the + reward received by the agents is divided by (max_reward / + reward_scale_rate), where max_reward is the maximum possible + reward per episode without considering the shield regeneration + of Protoss units. + replay_dir : str, optional + The directory to save replays (default is None). If None, the + replay will be saved in Replays directory where StarCraft II is + installed. + replay_prefix : str, optional + The prefix of the replay to be saved (default is None). If None, + the name of the map will be used. + window_size_x : int, optional + The length of StarCraft II window size (default is 1920). + window_size_y: int, optional + The height of StarCraft II window size (default is 1200). + debug: bool, optional + Log messages about observations, state, actions and rewards for + debugging purposes (default is False). + """ + # Map arguments + self.map_name = map_name + map_params = get_map_params(self.map_name) + self.n_agents = map_params["n_agents"] + self.n_enemies = map_params["n_enemies"] + self.episode_limit = map_params["limit"] + self._move_amount = move_amount + self._step_mul = step_mul + self.difficulty = difficulty + + # Observations and state + self.obs_own_health = obs_own_health + self.obs_all_health = obs_all_health + self.obs_instead_of_state = obs_instead_of_state + self.obs_last_action = obs_last_action + self.obs_pathing_grid = obs_pathing_grid + self.obs_terrain_height = obs_terrain_height + self.state_last_action = state_last_action + if self.obs_all_health: + self.obs_own_health = True + self.n_obs_pathing = 8 + self.n_obs_height = 9 + + # Rewards args + self.reward_sparse = reward_sparse + self.reward_only_positive = reward_only_positive + self.reward_negative_scale = reward_negative_scale + self.reward_death_value = reward_death_value + self.reward_win = reward_win + self.reward_defeat = reward_defeat + self.reward_scale = reward_scale + self.reward_scale_rate = reward_scale_rate + + # Other + self.game_version = game_version + self.continuing_episode = continuing_episode + self.seed = seed + self.debug = debug + self.window_size = (window_size_x, window_size_y) + self.replay_dir = replay_dir + self.replay_prefix = replay_prefix + + # Actions + self.n_actions_no_attack = 6 + self.n_actions_move = 4 + self.n_actions = self.n_actions_no_attack + self.n_enemies + + # Map info + self._agent_race = map_params["a_race"] + self._bot_race = map_params["b_race"] + self.shield_bits_ally = 1 if self._agent_race == "P" else 0 + self.shield_bits_enemy = 1 if self._bot_race == "P" else 0 + self.unit_type_bits = map_params["unit_type_bits"] + self.map_type = map_params["map_type"] + + self._launch() + + self.max_reward = ( + self.n_enemies * self.reward_death_value + self.reward_win + ) + self._game_info = self.controller.game_info() + self._map_info = self._game_info.start_raw + self.map_x = self._map_info.map_size.x + self.map_y = self._map_info.map_size.y + self.map_play_area_min = self._map_info.playable_area.p0 + self.map_play_area_max = self._map_info.playable_area.p1 + self.max_distance_x = ( + self.map_play_area_max.x - self.map_play_area_min.x + ) + self.max_distance_y = ( + self.map_play_area_max.y - self.map_play_area_min.y + ) + self.terrain_height = np.flip( + np.transpose(np.array(list(self._map_info.terrain_height.data)) + .reshape(self.map_x, self.map_y)), 1) / 255 + self.pathing_grid = np.flip( + np.transpose(np.array(list(self._map_info.pathing_grid.data)) + .reshape(self.map_x, self.map_y)), 1) / 255 + + self.agents = {} + self.enemies = {} + self._episode_count = 0 + self._episode_steps = 0 + self._total_steps = 0 + self._obs = None + self.battles_won = 0 + self.battles_game = 0 + self.timeouts = 0 + self.force_restarts = 0 + self.last_stats = None + self.death_tracker_ally = np.zeros(self.n_agents) + self.death_tracker_enemy = np.zeros(self.n_enemies) + self.previous_ally_units = None + self.previous_enemy_units = None + self.last_action = np.zeros((self.n_agents, self.n_actions)) + self._min_unit_type = 0 + self.marine_id = self.marauder_id = self.medivac_id = 0 + self.hydralisk_id = self.zergling_id = self.baneling_id = 0 + self.stalker_id = self.colossus_id = self.zealot_id = 0 + + def _launch(self): + """Launch the StarCraft II game.""" + self._run_config = run_configs.get() + _map = maps.get(self.map_name) + + # Setting up the interface + interface_options = sc_pb.InterfaceOptions(raw=True, score=False) + + self._sc2_proc = self._run_config.start(game_version=self.game_version, + window_size=self.window_size) + self.controller = self._sc2_proc.controller + + # Request to create the game + create = sc_pb.RequestCreateGame( + local_map=sc_pb.LocalMap( + map_path=_map.path, + map_data=self._run_config.map_data(_map.path)), + realtime=False, + random_seed=self.seed) + create.player_setup.add(type=sc_pb.Participant) + create.player_setup.add(type=sc_pb.Computer, race=races[self._bot_race], + difficulty=difficulties[self.difficulty]) + self.controller.create_game(create) + + join = sc_pb.RequestJoinGame(race=races[self._agent_race], + options=interface_options) + self.controller.join_game(join) + + def reset(self): + """Reset the environment. Required after each full episode. + Returns initial observations and states. + """ + self._episode_steps = 0 + if self._episode_count > 0: + # No need to restart for the first episode. + self._restart() + + self._episode_count += 1 + + # Information kept for counting the reward + self.death_tracker_ally = np.zeros(self.n_agents) + self.death_tracker_enemy = np.zeros(self.n_enemies) + self.previous_ally_units = None + self.previous_enemy_units = None + + self.last_action = np.zeros((self.n_agents, self.n_actions)) + + try: + self._obs = self.controller.observe() + self.init_units() + except (protocol.ProtocolError, protocol.ConnectionError): + self.full_restart() + + if self.debug: + logging.debug("Started Episode {}" + .format(self._episode_count).center(60, "*")) + + return self.get_obs(), self.get_state() + + def _restart(self): + """Restart the environment by killing all units on the map. + There is a trigger in the SC2Map file, which restarts the + episode when there are no units left. + """ + try: + self.kill_all_units() + self.controller.step(2) + except (protocol.ProtocolError, protocol.ConnectionError): + self.full_restart() + + def full_restart(self): + """Full restart. Closes the SC2 process and launches a new one. """ + self._sc2_proc.close() + self._launch() + self.force_restarts += 1 + + def step(self, actions): + """A single environment step. Returns reward, terminated, info.""" + actions = [int(a) for a in actions] + + self.last_action = np.eye(self.n_actions)[np.array(actions)] + + # Collect individual actions + sc_actions = [] + if self.debug: + logging.debug("Actions".center(60, "-")) + + for a_id, action in enumerate(actions): + agent_action = self.get_agent_action(a_id, action) + if agent_action: + sc_actions.append(agent_action) + + # Send action request + req_actions = sc_pb.RequestAction(actions=sc_actions) + try: + self.controller.actions(req_actions) + # Make step in SC2, i.e. apply actions + self.controller.step(self._step_mul) + # Observe here so that we know if the episode is over. + self._obs = self.controller.observe() + except (protocol.ProtocolError, protocol.ConnectionError): + self.full_restart() + return 0, True, {} + + self._total_steps += 1 + self._episode_steps += 1 + + # Update units + game_end_code = self.update_units() + + terminated = False + reward = self.reward_battle() + info = {"battle_won": False} + + if game_end_code is not None: + # Battle is over + terminated = True + self.battles_game += 1 + if game_end_code == 1: + self.battles_won += 1 + info["battle_won"] = True + if not self.reward_sparse: + reward += self.reward_win + else: + reward = 1 + elif game_end_code == -1: + if not self.reward_sparse: + reward += self.reward_defeat + else: + reward = -1 + + elif self._episode_steps >= self.episode_limit: + # Episode limit reached + terminated = True + if self.continuing_episode: + info["episode_limit"] = True + self.battles_game += 1 + self.timeouts += 1 + + if self.debug: + logging.debug("Reward = {}".format(reward).center(60, '-')) + + if self.reward_scale: + reward /= self.max_reward / self.reward_scale_rate + + return reward, terminated, info + + def get_agent_action(self, a_id, action): + """Construct the action for agent a_id.""" + avail_actions = self.get_avail_agent_actions(a_id) + assert avail_actions[action] == 1, \ + "Agent {} cannot perform action {}".format(a_id, action) + + unit = self.get_unit_by_id(a_id) + tag = unit.tag + x = unit.pos.x + y = unit.pos.y + + if action == 0: + # no-op (valid only when dead) + assert unit.health == 0, "No-op only available for dead agents." + if self.debug: + logging.debug("Agent {}: Dead".format(a_id)) + return None + elif action == 1: + # stop + cmd = r_pb.ActionRawUnitCommand( + ability_id=actions["stop"], + unit_tags=[tag], + queue_command=False) + if self.debug: + logging.debug("Agent {}: Stop".format(a_id)) + + elif action == 2: + # move north + cmd = r_pb.ActionRawUnitCommand( + ability_id=actions["move"], + target_world_space_pos=sc_common.Point2D( + x=x, y=y + self._move_amount), + unit_tags=[tag], + queue_command=False) + if self.debug: + logging.debug("Agent {}: Move North".format(a_id)) + + elif action == 3: + # move south + cmd = r_pb.ActionRawUnitCommand( + ability_id=actions["move"], + target_world_space_pos=sc_common.Point2D( + x=x, y=y - self._move_amount), + unit_tags=[tag], + queue_command=False) + if self.debug: + logging.debug("Agent {}: Move South".format(a_id)) + + elif action == 4: + # move east + cmd = r_pb.ActionRawUnitCommand( + ability_id=actions["move"], + target_world_space_pos=sc_common.Point2D( + x=x + self._move_amount, y=y), + unit_tags=[tag], + queue_command=False) + if self.debug: + logging.debug("Agent {}: Move East".format(a_id)) + + elif action == 5: + # move west + cmd = r_pb.ActionRawUnitCommand( + ability_id=actions["move"], + target_world_space_pos=sc_common.Point2D( + x=x - self._move_amount, y=y), + unit_tags=[tag], + queue_command=False) + if self.debug: + logging.debug("Agent {}: Move West".format(a_id)) + else: + # attack/heal units that are in range + target_id = action - self.n_actions_no_attack + if self.map_type == "MMM" and unit.unit_type == self.medivac_id: + target_unit = self.agents[target_id] + action_name = "heal" + else: + target_unit = self.enemies[target_id] + action_name = "attack" + + action_id = actions[action_name] + target_tag = target_unit.tag + + cmd = r_pb.ActionRawUnitCommand( + ability_id=action_id, + target_unit_tag=target_tag, + unit_tags=[tag], + queue_command=False) + + if self.debug: + logging.debug("Agent {} {}s unit # {}".format( + a_id, action_name, target_id)) + + sc_action = sc_pb.Action(action_raw=r_pb.ActionRaw(unit_command=cmd)) + return sc_action + + def reward_battle(self): + """Reward function when self.reward_spare==False. + Returns accumulative hit/shield point damage dealt to the enemy + + reward_death_value per enemy unit killed, and, in case + self.reward_only_positive == False, - (damage dealt to ally units + + reward_death_value per ally unit killed) * self.reward_negative_scale + """ + if self.reward_sparse: + return 0 + + reward = 0 + delta_deaths = 0 + delta_ally = 0 + delta_enemy = 0 + + neg_scale = self.reward_negative_scale + + # update deaths + for al_id, al_unit in self.agents.items(): + if not self.death_tracker_ally[al_id]: + # did not die so far + prev_health = ( + self.previous_ally_units[al_id].health + + self.previous_ally_units[al_id].shield + ) + if al_unit.health == 0: + # just died + self.death_tracker_ally[al_id] = 1 + if not self.reward_only_positive: + delta_deaths -= self.reward_death_value * neg_scale + delta_ally += prev_health * neg_scale + else: + # still alive + delta_ally += neg_scale * ( + prev_health - al_unit.health - al_unit.shield + ) + + for e_id, e_unit in self.enemies.items(): + if not self.death_tracker_enemy[e_id]: + prev_health = ( + self.previous_enemy_units[e_id].health + + self.previous_enemy_units[e_id].shield + ) + if e_unit.health == 0: + self.death_tracker_enemy[e_id] = 1 + delta_deaths += self.reward_death_value + delta_enemy += prev_health + else: + delta_enemy += prev_health - e_unit.health - e_unit.shield + + if self.reward_only_positive: + reward = abs(delta_enemy + delta_deaths) # shield regeneration + else: + reward = delta_enemy + delta_deaths - delta_ally + + return reward + + def get_total_actions(self): + """Returns the total number of actions an agent could ever take.""" + return self.n_actions + + @staticmethod + def distance(x1, y1, x2, y2): + """Distance between two points.""" + return math.hypot(x2 - x1, y2 - y1) + + def unit_shoot_range(self, agent_id): + """Returns the shooting range for an agent.""" + return 6 + + def unit_sight_range(self, agent_id): + """Returns the sight range for an agent.""" + return 9 + + def unit_max_cooldown(self, unit): + """Returns the maximal cooldown for a unit.""" + switcher = { + self.marine_id: 15, + self.marauder_id: 25, + self.medivac_id: 200, # max energy + self.stalker_id: 35, + self.zealot_id: 22, + self.colossus_id: 24, + self.hydralisk_id: 10, + self.zergling_id: 11, + self.baneling_id: 1 + } + return switcher.get(unit.unit_type, 15) + + def save_replay(self): + """Save a replay.""" + prefix = self.replay_prefix or self.map_name + replay_dir = self.replay_dir or "" + replay_path = self._run_config.save_replay( + self.controller.save_replay(), replay_dir=replay_dir, prefix=prefix) + logging.info("Replay saved at: %s" % replay_path) + + def unit_max_shield(self, unit): + """Returns maximal shield for a given unit.""" + if unit.unit_type == 74 or unit.unit_type == self.stalker_id: + return 80 # Protoss's Stalker + if unit.unit_type == 73 or unit.unit_type == self.zealot_id: + return 50 # Protoss's Zaelot + if unit.unit_type == 4 or unit.unit_type == self.colossus_id: + return 150 # Protoss's Colossus + + def can_move(self, unit, direction): + """Whether a unit can move in a given direction.""" + m = self._move_amount / 2 + + if direction == Direction.NORTH: + x, y = int(unit.pos.x), int(unit.pos.y + m) + elif direction == Direction.SOUTH: + x, y = int(unit.pos.x), int(unit.pos.y - m) + elif direction == Direction.EAST: + x, y = int(unit.pos.x + m), int(unit.pos.y) + else: + x, y = int(unit.pos.x - m), int(unit.pos.y) + + if self.check_bounds(x, y) and self.pathing_grid[x, y] == 0: + return True + + return False + + def get_surrounding_points(self, unit, include_self=False): + """Returns the surrounding points of the unit in 8 directions.""" + x = int(unit.pos.x) + y = int(unit.pos.y) + + ma = self._move_amount + + points = [ + (x, y + 2 * ma), + (x, y - 2 * ma), + (x + 2 * ma, y), + (x - 2 * ma, y), + (x + ma, y + ma), + (x - ma, y - ma), + (x + ma, y - ma), + (x - ma, y + ma), + ] + + if include_self: + points.append((x, y)) + + return points + + def check_bounds(self, x, y): + """Whether a point is within the map bounds.""" + return (0 <= x < self.map_x and 0 <= y < self.map_y) + + def get_surrounding_pathing(self, unit): + """Returns pathing values of the grid surrounding the given unit.""" + points = self.get_surrounding_points(unit, include_self=False) + vals = [ + self.pathing_grid[x, y] if self.check_bounds(x, y) else 1 + for x, y in points + ] + return vals + + def get_surrounding_height(self, unit): + """Returns height values of the grid surrounding the given unit.""" + points = self.get_surrounding_points(unit, include_self=True) + vals = [ + self.terrain_height[x, y] if self.check_bounds(x, y) else 1 + for x, y in points + ] + return vals + + def get_obs_agent(self, agent_id): + """Returns observation for agent_id. + NOTE: Agents should have access only to their local observations + during decentralised execution. + """ + unit = self.get_unit_by_id(agent_id) + + nf_al = 4 + self.unit_type_bits + nf_en = 4 + self.unit_type_bits + + if self.obs_all_health: + nf_al += 1 + self.shield_bits_ally + nf_en += 1 + self.shield_bits_enemy + + if self.obs_last_action: + nf_al += self.n_actions + + nf_own = self.unit_type_bits + if self.obs_own_health: + nf_own += 1 + self.shield_bits_ally + + move_feats_len = self.n_actions_move + if self.obs_pathing_grid: + move_feats_len += self.n_obs_pathing + if self.obs_terrain_height: + move_feats_len += self.n_obs_height + + move_feats = np.zeros(move_feats_len, dtype=np.float32) + enemy_feats = np.zeros((self.n_enemies, nf_en), dtype=np.float32) + ally_feats = np.zeros((self.n_agents - 1, nf_al), dtype=np.float32) + own_feats = np.zeros(nf_own, dtype=np.float32) + + if unit.health > 0: # otherwise dead, return all zeros + x = unit.pos.x + y = unit.pos.y + sight_range = self.unit_sight_range(agent_id) + + # Movement features + avail_actions = self.get_avail_agent_actions(agent_id) + for m in range(self.n_actions_move): + move_feats[m] = avail_actions[m + 2] + + ind = self.n_actions_move + + if self.obs_pathing_grid: + move_feats[ + ind : ind + self.n_obs_pathing + ] = self.get_surrounding_pathing(unit) + ind += self.n_obs_pathing + + if self.obs_terrain_height: + move_feats[ind:] = self.get_surrounding_height(unit) + + # Enemy features + for e_id, e_unit in self.enemies.items(): + e_x = e_unit.pos.x + e_y = e_unit.pos.y + dist = self.distance(x, y, e_x, e_y) + + if ( + dist < sight_range and e_unit.health > 0 + ): # visible and alive + # Sight range > shoot range + enemy_feats[e_id, 0] = avail_actions[ + self.n_actions_no_attack + e_id + ] # available + enemy_feats[e_id, 1] = dist / sight_range # distance + enemy_feats[e_id, 2] = ( + e_x - x + ) / sight_range # relative X + enemy_feats[e_id, 3] = ( + e_y - y + ) / sight_range # relative Y + + ind = 4 + if self.obs_all_health: + enemy_feats[e_id, ind] = ( + e_unit.health / e_unit.health_max + ) # health + ind += 1 + if self.shield_bits_enemy > 0: + max_shield = self.unit_max_shield(e_unit) + enemy_feats[e_id, ind] = ( + e_unit.shield / max_shield + ) # shield + ind += 1 + + if self.unit_type_bits > 0: + type_id = self.get_unit_type_id(e_unit, False) + enemy_feats[e_id, ind + type_id] = 1 # unit type + + # Ally features + al_ids = [ + al_id for al_id in range(self.n_agents) if al_id != agent_id + ] + for i, al_id in enumerate(al_ids): + + al_unit = self.get_unit_by_id(al_id) + al_x = al_unit.pos.x + al_y = al_unit.pos.y + dist = self.distance(x, y, al_x, al_y) + + if ( + dist < sight_range and al_unit.health > 0 + ): # visible and alive + ally_feats[i, 0] = 1 # visible + ally_feats[i, 1] = dist / sight_range # distance + ally_feats[i, 2] = (al_x - x) / sight_range # relative X + ally_feats[i, 3] = (al_y - y) / sight_range # relative Y + + ind = 4 + if self.obs_all_health: + ally_feats[i, ind] = ( + al_unit.health / al_unit.health_max + ) # health + ind += 1 + if self.shield_bits_ally > 0: + max_shield = self.unit_max_shield(al_unit) + ally_feats[i, ind] = ( + al_unit.shield / max_shield + ) # shield + ind += 1 + + if self.unit_type_bits > 0: + type_id = self.get_unit_type_id(al_unit, True) + ally_feats[i, ind + type_id] = 1 + ind += self.unit_type_bits + + if self.obs_last_action: + ally_feats[i, ind:] = self.last_action[al_id] + + # Own features + ind = 0 + if self.obs_own_health: + own_feats[ind] = unit.health / unit.health_max + ind += 1 + if self.shield_bits_ally > 0: + max_shield = self.unit_max_shield(unit) + own_feats[ind] = unit.shield / max_shield + ind += 1 + + if self.unit_type_bits > 0: + type_id = self.get_unit_type_id(unit, True) + own_feats[ind + type_id] = 1 + + agent_obs = np.concatenate( + ( + move_feats.flatten(), + enemy_feats.flatten(), + ally_feats.flatten(), + own_feats.flatten(), + ) + ) + + if self.debug: + logging.debug("Obs Agent: {}".format(agent_id).center(60, "-")) + logging.debug("Avail. actions {}".format( + self.get_avail_agent_actions(agent_id))) + logging.debug("Move feats {}".format(move_feats)) + logging.debug("Enemy feats {}".format(enemy_feats)) + logging.debug("Ally feats {}".format(ally_feats)) + logging.debug("Own feats {}".format(own_feats)) + + return agent_obs + + def get_obs(self): + """Returns all agent observations in a list. + NOTE: Agents should have access only to their local observations + during decentralised execution. + """ + agents_obs = [self.get_obs_agent(i) for i in range(self.n_agents)] + return agents_obs + + def get_state(self): + """Returns the global state. + NOTE: This functon should not be used during decentralised execution. + """ + if self.obs_instead_of_state: + obs_concat = np.concatenate(self.get_obs(), axis=0).astype( + np.float32 + ) + return obs_concat + + nf_al = 4 + self.shield_bits_ally + self.unit_type_bits + nf_en = 3 + self.shield_bits_enemy + self.unit_type_bits + + ally_state = np.zeros((self.n_agents, nf_al)) + enemy_state = np.zeros((self.n_enemies, nf_en)) + + center_x = self.map_x / 2 + center_y = self.map_y / 2 + + for al_id, al_unit in self.agents.items(): + if al_unit.health > 0: + x = al_unit.pos.x + y = al_unit.pos.y + max_cd = self.unit_max_cooldown(al_unit) + + ally_state[al_id, 0] = ( + al_unit.health / al_unit.health_max + ) # health + if ( + self.map_type == "MMM" + and al_unit.unit_type == self.medivac_id + ): + ally_state[al_id, 1] = al_unit.energy / max_cd # energy + else: + ally_state[al_id, 1] = ( + al_unit.weapon_cooldown / max_cd + ) # cooldown + ally_state[al_id, 2] = ( + x - center_x + ) / self.max_distance_x # relative X + ally_state[al_id, 3] = ( + y - center_y + ) / self.max_distance_y # relative Y + + ind = 4 + if self.shield_bits_ally > 0: + max_shield = self.unit_max_shield(al_unit) + ally_state[al_id, ind] = ( + al_unit.shield / max_shield + ) # shield + ind += 1 + + if self.unit_type_bits > 0: + type_id = self.get_unit_type_id(al_unit, True) + ally_state[al_id, ind + type_id] = 1 + + for e_id, e_unit in self.enemies.items(): + if e_unit.health > 0: + x = e_unit.pos.x + y = e_unit.pos.y + + enemy_state[e_id, 0] = ( + e_unit.health / e_unit.health_max + ) # health + enemy_state[e_id, 1] = ( + x - center_x + ) / self.max_distance_x # relative X + enemy_state[e_id, 2] = ( + y - center_y + ) / self.max_distance_y # relative Y + + ind = 3 + if self.shield_bits_enemy > 0: + max_shield = self.unit_max_shield(e_unit) + enemy_state[e_id, ind] = ( + e_unit.shield / max_shield + ) # shield + ind += 1 + + if self.unit_type_bits > 0: + type_id = self.get_unit_type_id(e_unit, False) + enemy_state[e_id, ind + type_id] = 1 + + state = np.append(ally_state.flatten(), enemy_state.flatten()) + if self.state_last_action: + state = np.append(state, self.last_action.flatten()) + state = state.astype(dtype=np.float32) + + if self.debug: + logging.debug("STATE".center(60, "-")) + logging.debug("Ally state {}".format(ally_state)) + logging.debug("Enemy state {}".format(enemy_state)) + if self.state_last_action: + logging.debug("Last actions {}".format(self.last_action)) + + return state + + def get_obs_size(self): + """Returns the size of the observation.""" + nf_al = 4 + self.unit_type_bits + nf_en = 4 + self.unit_type_bits + + if self.obs_all_health: + nf_al += 1 + self.shield_bits_ally + nf_en += 1 + self.shield_bits_enemy + + own_feats = self.unit_type_bits + if self.obs_own_health: + own_feats += 1 + self.shield_bits_ally + + if self.obs_last_action: + nf_al += self.n_actions + + move_feats = self.n_actions_move + if self.obs_pathing_grid: + move_feats += self.n_obs_pathing + if self.obs_terrain_height: + move_feats += self.n_obs_height + + enemy_feats = self.n_enemies * nf_en + ally_feats = (self.n_agents - 1) * nf_al + + return move_feats + enemy_feats + ally_feats + own_feats + + def get_state_size(self): + """Returns the size of the global state.""" + if self.obs_instead_of_state: + return self.get_obs_size() * self.n_agents + + nf_al = 4 + self.shield_bits_ally + self.unit_type_bits + nf_en = 3 + self.shield_bits_enemy + self.unit_type_bits + + enemy_state = self.n_enemies * nf_en + ally_state = self.n_agents * nf_al + + size = enemy_state + ally_state + + if self.state_last_action: + size += self.n_agents * self.n_actions + + return size + + def get_unit_type_id(self, unit, ally): + """Returns the ID of unit type in the given scenario.""" + if ally: # use new SC2 unit types + type_id = unit.unit_type - self._min_unit_type + else: # use default SC2 unit types + if self.map_type == "stalkers_and_zealots": + # id(Stalker) = 74, id(Zealot) = 73 + type_id = unit.unit_type - 73 + if self.map_type == "bane": + if unit.unit_type == 9: + type_id = 0 + else: + type_id = 1 + elif self.map_type == "MMM": + if unit.unit_type == 51: + type_id = 0 + elif unit.unit_type == 48: + type_id = 1 + else: + type_id = 2 + + return type_id + + def get_avail_agent_actions(self, agent_id): + """Returns the available actions for agent_id.""" + unit = self.get_unit_by_id(agent_id) + if unit.health > 0: + # cannot choose no-op when alive + avail_actions = [0] * self.n_actions + + # stop should be allowed + avail_actions[1] = 1 + + # see if we can move + if self.can_move(unit, Direction.NORTH): + avail_actions[2] = 1 + if self.can_move(unit, Direction.SOUTH): + avail_actions[3] = 1 + if self.can_move(unit, Direction.EAST): + avail_actions[4] = 1 + if self.can_move(unit, Direction.WEST): + avail_actions[5] = 1 + + # Can attack only alive units that are alive in the shooting range + shoot_range = self.unit_shoot_range(agent_id) + + target_items = self.enemies.items() + if self.map_type == "MMM" and unit.unit_type == self.medivac_id: + # Medivacs cannot heal themselves or other flying units + target_items = [ + (t_id, t_unit) + for (t_id, t_unit) in self.agents.items() + if t_unit.unit_type != self.medivac_id + ] + + for t_id, t_unit in target_items: + if t_unit.health > 0: + dist = self.distance( + unit.pos.x, unit.pos.y, t_unit.pos.x, t_unit.pos.y + ) + if dist <= shoot_range: + avail_actions[t_id + self.n_actions_no_attack] = 1 + + return avail_actions + + else: + # only no-op allowed + return [1] + [0] * (self.n_actions - 1) + + def get_avail_actions(self): + """Returns the available actions of all agents in a list.""" + avail_actions = [] + for agent_id in range(self.n_agents): + avail_agent = self.get_avail_agent_actions(agent_id) + avail_actions.append(avail_agent) + return avail_actions + + def close(self): + """Close StarCraft II.""" + self._sc2_proc.close() + + def seed(self): + """Returns the random seed used by the environment.""" + return self.seed + + def render(self): + """Not implemented.""" + pass + + def kill_all_units(self): + """Kill all units on the map.""" + units_alive = [ + unit.tag for unit in self.agents.values() if unit.health > 0 + ] + [unit.tag for unit in self.enemies.values() if unit.health > 0] + debug_command = [ + d_pb.DebugCommand(kill_unit=d_pb.DebugKillUnit(tag=units_alive)) + ] + self.controller.debug(debug_command) + + def init_units(self): + """Initialise the units.""" + while True: + # Sometimes not all units have yet been created by SC2 + self.agents = {} + self.enemies = {} + + ally_units = [ + unit + for unit in self._obs.observation.raw_data.units + if unit.owner == 1 + ] + ally_units_sorted = sorted( + ally_units, + key=attrgetter("unit_type", "pos.x", "pos.y"), + reverse=False, + ) + + for i in range(len(ally_units_sorted)): + self.agents[i] = ally_units_sorted[i] + if self.debug: + logging.debug( + "Unit {} is {}, x = {}, y = {}".format( + len(self.agents), + self.agents[i].unit_type, + self.agents[i].pos.x, + self.agents[i].pos.y, + ) + ) + + for unit in self._obs.observation.raw_data.units: + if unit.owner == 2: + self.enemies[len(self.enemies)] = unit + if self._episode_count == 1: + self.max_reward += unit.health_max + unit.shield_max + + if self._episode_count == 1: + min_unit_type = min( + unit.unit_type for unit in self.agents.values() + ) + self._init_ally_unit_types(min_unit_type) + + all_agents_created = (len(self.agents) == self.n_agents) + all_enemies_created = (len(self.enemies) == self.n_enemies) + + if all_agents_created and all_enemies_created: # all good + return + + try: + self.controller.step(1) + self._obs = self.controller.observe() + except (protocol.ProtocolError, protocol.ConnectionError): + self.full_restart() + self.reset() + + def update_units(self): + """Update units after an environment step. + This function assumes that self._obs is up-to-date. + """ + n_ally_alive = 0 + n_enemy_alive = 0 + + # Store previous state + self.previous_ally_units = deepcopy(self.agents) + self.previous_enemy_units = deepcopy(self.enemies) + + for al_id, al_unit in self.agents.items(): + updated = False + for unit in self._obs.observation.raw_data.units: + if al_unit.tag == unit.tag: + self.agents[al_id] = unit + updated = True + n_ally_alive += 1 + break + + if not updated: # dead + al_unit.health = 0 + + for e_id, e_unit in self.enemies.items(): + updated = False + for unit in self._obs.observation.raw_data.units: + if e_unit.tag == unit.tag: + self.enemies[e_id] = unit + updated = True + n_enemy_alive += 1 + break + + if not updated: # dead + e_unit.health = 0 + + if (n_ally_alive == 0 and n_enemy_alive > 0 + or self.only_medivac_left(ally=True)): + return -1 # lost + if (n_ally_alive > 0 and n_enemy_alive == 0 + or self.only_medivac_left(ally=False)): + return 1 # won + if n_ally_alive == 0 and n_enemy_alive == 0: + return 0 + + return None + + def _init_ally_unit_types(self, min_unit_type): + """Initialise ally unit types. Should be called once from the + init_units function. + """ + self._min_unit_type = min_unit_type + if self.map_type == "marines": + self.marine_id = min_unit_type + elif self.map_type == "stalkers_and_zealots": + self.stalker_id = min_unit_type + self.zealot_id = min_unit_type + 1 + elif self.map_type == "MMM": + self.marauder_id = min_unit_type + self.marine_id = min_unit_type + 1 + self.medivac_id = min_unit_type + 2 + elif self.map_type == "zealots": + self.zealot_id = min_unit_type + elif self.map_type == "hydralisks": + self.hydralisk_id = min_unit_type + elif self.map_type == "stalkers": + self.stalker_id = min_unit_type + elif self.map_type == "colossus": + self.colossus_id = min_unit_type + elif self.map_type == "bane": + self.baneling_id = min_unit_type + self.zergling_id = min_unit_type + 1 + + def only_medivac_left(self, ally): + """Check if only Medivac units are left.""" + if self.map_type != "MMM": + return False + + if ally: + units_alive = [ + a + for a in self.agents.values() + if (a.health > 0 and a.unit_type != self.medivac_id) + ] + if len(units_alive) == 0: + return True + return False + else: + units_alive = [ + a + for a in self.enemies.values() + if (a.health > 0 and a.unit_type != self.medivac_id) + ] + if len(units_alive) == 1 and units_alive[0].unit_type == 54: + return True + return False + + def get_unit_by_id(self, a_id): + """Get unit by ID.""" + return self.agents[a_id] + + def get_stats(self): + stats = { + "battles_won": self.battles_won, + "battles_game": self.battles_game, + "battles_draw": self.timeouts, + "win_rate": self.battles_won / self.battles_game, + "timeouts": self.timeouts, + "restarts": self.force_restarts, + } + return stats diff --git a/smac/examples/__init__.py b/smac/examples/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/smac/examples/random.py b/smac/examples/random.py new file mode 100644 index 00000000..e39d1582 --- /dev/null +++ b/smac/examples/random.py @@ -0,0 +1,43 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from smac.env import StarCraft2Env +import numpy as np + + +def main(): + env = StarCraft2Env(map_name="8m") + env_info = env.get_env_info() + + n_actions = env_info["n_actions"] + n_agents = env_info["n_agents"] + + n_episodes = 10 + + for e in range(n_episodes): + env.reset() + terminated = False + episode_reward = 0 + + while not terminated: + obs = env.get_obs() + state = env.get_state() + + actions = [] + for agent_id in range(n_agents): + avail_actions = env.get_avail_agent_actions(agent_id) + avail_actions_ind = np.nonzero(avail_actions)[0] + action = np.random.choice(avail_actions_ind) + actions.append(action) + + reward, terminated, _ = env.step(actions) + episode_reward += reward + + print("Total reward in episode {} = {}".format(e, episode_reward)) + + env.close() + + +if __name__ == "__main__": + main()