Releases: google-deepmind/pysc2
v4.0: Add the C++ converters used by AlphaStar
Add C++ environment converters which handle the conversion between the protos used by SC2 environment for actions, observations and specs to a more neural network friendly dictionary of Numpy arrays, with accompanying environment specs. Converters are built as a translation of relevant pieces from sc2_env.py from Python to C++ for speed.
New features include the following
- 'Raw' and 'visual' modes are supported explicitly.
- Actions are represented as simple dicts and have a delay member which specifies how many game loops to wait until the next observation is retrieved.
- The following new observations are available (parameterised by a config proto, see the converter documentation for more detail):
- Action chosen (for supervised).
- Own race requested
- Unit counts and upgrades.
- Camera, position and size (for raw, indicates where the camera is and when active also hides unit data outside the camera bounds).
- Opponent race requested (and observed, once a unit has been seen)
- Player stats vector, unit counts and upgrades.
- MMR
- Minimap and screen features have an observation per plane rather than being stacked.
- Converters can be used both with Python and C++. The C++ code is wrapped using pybind11 facilitating Python use.
- Converters have been used in this recent work on StarCraftII Unplugged.
- Support building with Bazel as converters built on C++ requires compilation for any changes made to them.
- With converters, PySC2 is a mixed Python and C++ repository.
- Using setup.py will install the Python only components of the package.
- Converters require either building with Bazel or can be pulled from pypi. Only Linux is supported at present.
- Drop Python 2 support, bump minimum version to Python 3.8+
- Remove references to six, future, whichcraft.which.
- Fix lint errors arising from py2-> py3 transformation.
- Fix fickle tests that fail because of obsolete code, proto dependencies, timeout or unavailable maps.
- Update PySC2 master documentation in line with these changes.
- Remove unnecessary patches that have been fixed in upstream repos.
v3.0: Radar is only defined if you use raw or feature units.
This is a fairly big release adding support for recent versions, many new observations, various new features, and bug fixes. In particular the raw actions are fairly well supported.
Changes:
- Add raw observations and actions
- Support the new actions, research, etc from the 4.7.1 and 4.10.1 balance patches.
- Many new observations:
- alerts
- hallucinations
- cloaked
- blips
- buffs
- effects
- upgrades
- active
- pathable
- buildable
- rally
- orders
- cargo
- radar rings
- map name
- races
- full response observation protobuf
- Unit tests for some new observations.
- Support newer versions of the game
- Support the newest ladder maps.
- Support playing on battle.net maps.
- Support specifying the bot build
- Support training on random maps/races.
- Remove the long deprecated arguments to sc2_env.
- Force player arguments to be set and valid.
- Force player names to be unique to avoid an bug in the game where they control the same side.
- Connect to an existing instance
- Track and induce action delays to simulate latency
- Fix shrinking pygame window size.
- Fix deadlock in resizing the pygame window.
- Script to update your battle.net cache based on replays.
- Better error handling and error messages
- Better protocol logging
- Better benchmarking scripts and tooling
- Better version comparison scripts.
- Fixed upgrade names.
- Support multiple maps and races at env creation time.
- Added an example raw agent.
- Various fixes for new numpy versions
- Better support for slicing into NamedNumpyArray's.
- Support multiple actions per frame (discouraged)
- Better rendering:
- Raw grids
- selection, upgrades, orders, rally, placeholders, start locations, facing, radar rings
- playable area
- play with raw actions
- Camera control during replays
- Add a basic ascii renderer
- Various bug small fixes.
Version 2.0.1
Fix a python 3 compatibility issue.
Version 2.0
This is a big release that supports self-play, rgb, and new versions of SC2, and comes along with a whole lot of other changes. Unfortunately this needed some breaking changes, but they should be fairly easy to fix as well.
Changes:
- Add RGB as an observation and action space
- Add observations for list of units visible in feature layers
- Add observations for last actions, alerts and errors
- Support multi-player/self-play through the environment
- Support different observation types per player when doing self-play
- Support newer versions of the game, up through 4.3
- Support the new actions and units from the 4.0 balance patch
- Better support for launching the right game version for a replay
- Render RGB through the human renderer, including acting with the rendered actions
- Easily generate videos of a replay
- Automatically find the SC2 binary in non-standard setups
- Add enums for units, functions, argument types, and a few observations
- Add an easier way to create FunctionCalls
- Be able to reference bits of the observation by name
- Script to run all the tests
- Add a mock environment for easier testing
- Start testing types with pytype
- Better error messages
- Support more actions in the renderer
- Better rendering of overlays (actions, game speed, selection, build queue)
- Better IPv6 support
- Framework for tracking metrics of steps and episodes
- Allow disabling fog of war
- Support maps from newer seasons.
Breaking changes:
- Feature layer observations are renamed from "screen" and "minimap" to "feature_screen" and "feature_minimap" to differentiate from "rgb_screen" and "rgb_minimap"
- Resolution is no longer optional for environment construction
- The way to specify player race and difficulty to the environment has changed
- Races and difficulties are specified as full words, not single letters
- lib/init.py no longer exports any variables. Get them from lib.actions or lib.features directly.
- action and observation specs are now tuples to reflect the fact that actions/observations are multiplayer.
Experimental work:
- Play human vs agent.
- Play remotely, eg: sc2ai.net ladder.
Version 1.2
- Better support for multiple languages.
- Support versions up to 3.19
- Start the right version for a replay
- Use absl for better python3 support
- Fix some bugs in the mini games
Initial release
This is the initial release of PySC2.