PettingZoo 1.24.0
PettingZoo 1.24.0 Release Notes:
This release includes support for Python 3.11, many updates to Classic environments (including updated Chess and Hanabi environment versions, and rendering for all RLCard envs), and many bugfixes, testing expansion, documentation updates.
We are also excited to announce 3 tutorials for Stable-Baselines3, updated RLlib tutorials (#1051), and an updated CleanRL multi-agent Atari tutorial including WandB and TensorBoard integration.
Co-released in order to make this release possible are SuperSuit 3.9.0 and Shimmy 1.2.0, fixing Stable-Baselines3 and OpenSpiel compatibility, respectively.
Breaking Changes
- Python 3.7 is no longer supported, as it has reached end-of-life (link)
- We have deprecated
chess_v5
in favor of updatedchess_v6
- We have deprecated
hanabi_v4
in favor ofhanabi_v5
New Features and Improvements
- Python 3.11 support (#1029)
- Permit AgentIDs other than
str
(#1071)- It is now acceptable to use other types such as integers as AgentIDs
- Add Stable-Baselines3 tutorial (#1015, #1017), with examples for:
- Vectorized environments with visual observations (Knights, Archers, Zombies)
- Vectorized environments with non-visual observations (Waterworld)
- Environments with illegal action masking observations (Connect Four)
- Add updated CleanRL multi-agent Atari example (#1033)
- Adapted to work with Gymnasium and current PettingZoo/SuperSuit
- Full training script with CLI/logging and integration with WandB and TensorBoard
- Update Chess to v6:
- Add checks for insufficient material, 50-moves and 3-fold repetition (#997)
- Fix to white perspective, fix observation bug, add documentation (#1004)
- En passant represenation (see docstring) has been made consistent with Leela Chess Zero (#1004)
- Update python-chess version from 1.7.0 to 1.9.4 (#1026)
- Update Hanabi to v5:
- Now depends on Shimmy's OpenSpielCompatibility wrapper (#948)
- OpenSpiel is better tested, superior performance due to C++ implementation, and removes dependency on unmaintained Hanabi Learning Environment
- First update in over 2 years, fixed a large number of issues and brought up to current code standards
- Add rendering for Gin Rummy, Leduc Holdem, and Tic-Tac-Toe (#1054)
- Adapt AssertOutOfBounds wrapper to work with all environments, rather than discrete only (#1046)
- Add additional pre-commit hooks, doctests to match Gymnasium (#1012)
Bug Fixes
- Fix Pistonball to only render if render_mode is not None (#1014)
- Fix Connect Four not switching to next agent after termination (#1020)
- Fix classic environments screen sizes, add type hints, fix pre-commit (#998)
- Fix all environments to render at correct FPS, clean up pygame code (#999)
- Fix SuperSuit integration for SB3 tutorials (#1031)
- Update CleanRL tutorial requirements to most recent SuperSuit/PettingZoo versions (#1019)
- Update RLlib tutorial requirements to most recent SuperSuit/PettingZoo versions by (#1018)
- Fix typo in Waterworld documentation (#1058)
Documentation Updates
- Add working usage examples for every environment automatically (#1057)
- Significantly expand AEC and Parallel API documentation with comparisons to EFGs/POSGs (#1041, #1055)
- Enable doctesting to ensure docstring code examples are correct (#1016)
- Update environments demo and environment GIFs (#993, #1011)
- Fix typos in Tianshou tutorial (#994)
- Update and expand Chess documentation (#1002, #1003, #1013)
- Update documentation site Chess gif to use current version and pixel art instead of ascii (#1010)
- Add pre-commit, code style black badges to README (#1024)
- Add third party environment: Interactive Connect Four using HuggingFace Spaces (#1034)
- Fix typos in parallel env documentation (#1047, #1045)
- Fix typos in environment creation tutorial (#1036, #1037, #1038)
Contributors
This release includes contributions from: @elliottower, @DmytroIvasiuk, @jacob975, @dylwil3, @Jammf, @Bamboofungus, @BertrandDecoster, @murtazarang and @pimpale.
Many thanks to our contributors, as well as many past contributors who have made this possible. We would also like to thank everyone who has helped out with bug reports or feature suggestions, which are critical to our development. We are always welcoming new contributors, if you are interested please join our Discord server at https://discord.gg/nhvKkYa6qX
Full Changelog: 1.23.1...1.24.0