Releases: Farama-Foundation/PettingZoo
PettingZoo 1.24.3
PettingZoo 1.24.3 Release Notes:
This is a minor release with some minor bugfixes, improvements, documentation updates. Most notably, we have added a state
function to the multiwalker env, and fixed a bug causing wrappers to clear custom attributes from underlying environments, see #1140 for more information.
We have also added a dictionary, mapping from env name to env modules for each environment type, accessible as follows: from pettingzoo.mpe import mpe_environments
. These mapping are combined to make a list of all environments: from pettingzoo.utils.all_modules import all_environments
, both mappings containing keys such as mpe/simple_adversary_v3
. For more information, see #1155
New Features and Improvements
- feature/provide access to wrapped attr (#1140)
- Adding state function to multiwalker (#1149)
- Add mappings from env name to env module (e.g.,
mpe_environments
) in addition toall_environments
(#1155)
Bug Fixes
- Fix ray requirements for tutorial (#1139)
- Fix MPE SimpleEnv continuous actions to move in the same direction as discrete case (#1144)
Documentation Updates
- Add MATS Gym to 3rd party env list (#1152)
- Fix the comments for check_for_winner (#1148)
- Include AgileRL tutorials in tutorials list in README.md (#1137)
- Added single quotes around pip install arguments with square brackets (#1153)
- Add single quotes around all pip install extras (#1154)
Contributors
This release includes contributions from: @elliottower, @ffelten, @axelbr, @shahofblah, @helpingstar and @nicku-a
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.24.2...1.24.3
PettingZoo 1.24.2
PettingZoo 1.24.2 Release Notes:
This release includes three new tutorials from AgileRL, as well as a number of bugfixes, testing improvements, and documentation updates.
New Features and Improvements
- AgileRL tutorials: MATD3, MADDPG, and DQN self-play/curriculum learning (#1086, #1124, #1128)
- These are now our most highly performant and actively maintained tutorials, visit the AgileRL discord questions/troubleshooting
- Add multi-episode wrapper for AEC and parallel envs (#1105)
- This can be used for example, for evaluating the results of multiple rounds of Texas Hold'em Poker, rather than a single hand
Bug Fixes
- Check
parallel_seed_test
for all envs, fixseed_test
to actually usenum_cycles
arg (#1088) - Fix hanabi not rendering on
env.step()
, clean up code (#1087) - Clean up parallel_api_test (#1095)
- Update CONTRIBUTING.md to include testing requirements (#1097)
- Update parallel_test.py to support Ray RLLib MultiAgentEnv (#1096)
- Bugfixes for RLCard environments: render fps, black screen flashing (#1103)
- Allow parallel envs to have other optional keys in info/obs dicts (e.g., "common") (#1110)
- Dead variable removal + macOS pygame fix (#1107)
- Update Ray tutorials to RLlib 2.7.0 by (#1112)
- Change AEC
last()
to assertagent is not None
, accounting for non-stringAgentID
's (#1120) - Fix typo simple_reference docstring, fix workflows to use python 3.11 by default (#1128)
- Fix minor bug in TerminateIllegal wrapper indexing empty info dict (#1129)
- Fix a rendering bug of MPE environment by (#1130)
- Fix agent indexing bug in SB3 tutorials (#1133)
- Fix seed test to work with action_mask in info, add tests to ensure info action masking works (#1134)
- Fix bug with generated_agents custom AgentID tests (#1135)
Documentation Updates
- Update documentation testing (#1089, #1090)
- Fix broken documentation links (#1092)
- Fix typo in environment creation docs (#1116)
Contributors
This release includes contributions from: @elliottower, @nicku-a, @mikepratt1, @xixinzhang, @umutucak, @jjshoots, @chrisyeh96, @Fernadoo, and @Kchour
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.24.1...1.24.2
PettingZoo 1.24.1
PettingZoo 1.24.1 Release Notes:
This is a hotfix release to fix compatibility issues with Shimmy, due to an unintentional typevar deletion.
Other changes include: minor fixes to the knights_archers_zombies
environment, improved CI testing (including using pytest-xdist to utilize parallelization), and new documentation testing using pytest-markdown-docs, ensuring that every codeblock in our documentation runs successfully--including environment usage scripts.
Environment creation documentation has also improved and made more beginner-friendly. The Environment Creation Tutorial
has also been renamed to Custom Environment Tutorial
, to avoid confusion with the Getting Started section's Environment Creation
page.
Bug Fixes
- Add back ObsDict and ActionDict to env.py (#1077)
- These definitions were mistakenly removed in the previous release, apologies for the inconveniences
- Fix rendering FPS and manual control script for knights_archers_zombies (#1080)
- Clean up duplicated python tests, add additional parameter combination tests (#1074)
Documentation Updates
- Add doctesting for all codeblocks in documentation, including usage scripts (#1083)
- Update environment creation tutorials (#1082, #1084)
Full Changelog: 1.24.0...1.24.1
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
PettingZoo 1.23.1
PettingZoo 1.23.1 Release Notes:
This release is a small hotfix to fix compatibility issues with Shimmy and other small bugs.
Bug Fixes:
- Fix bug in API test
test_action_flexibility()
(#986)- Fixes tests for Shimmy's OpenSpiel wrapper
- Remove
ParrellEnv.seed()
(#987) - Update RLlib requirements (#992)
- Note: RLlib's PettingZoo wrapper is currently broken, but will be fixed with ray-project/ray#34696 and ray-project/ray#32999
Documentation Updates:
- Add info about aec and parallel APIs to homepage (#985)
- Create CITATION.cff (#990)
- Added Carla gym to third_party_envs.md (#991)
Full Changelog: 1.23.0...1.23.1
PettingZoo 1.23.0
PettingZoo 1.23.0 Release Notes:
This release finishes the process of standardizing the PettingZoo API to fully match Gymnasium. The deprecated env.seed()
method has been removed in favor of env.reset(seed=seed)
, and the return_info
argument from reset()
has been removed—info is now always returned on reset.
New features include full support for serialization using Pickle, and updated testing: pickle tests, improved API test, and re-written seed test (matching Gymnasium). The library has also been updated to use pyproject.toml
, to make installation more consistent and reliable, and to comply with PEP 621 standards.
This release includes significant documentation updates: full installation and usage examples for each environment type (Atari, Butterfly, Classic, MPE, SISL), 9+ new third-party-environments, new action masking documentation, new LangChain tutorial, updated CleanRL, Tianshou, and RLlib tutorials, and more.
Breaking Changes:
To ensure full consistency between the PettingZoo and Gymnasium API’s, the following changes have been made:
The deprecated environment seed()
method has been fully removed.
- To seed an environment, call
env.reset(seed=0)
The return_info
argument has been removed from the reset()
function.
- Calls to
reset()
will now always returnobservation
andinfo
.
New Features and Improvements
- Action masking is now supported using either
observation[action_mask]
orinfo[action_mask]
, with documentation and examples (#953) - Replace setup.py with pyproject.toml (#875)
- Remove
return_info
argument fromreset()
(#890) - Add type hinting for utils and base environments (#964)
- Add
aec_wrapper_fn
to matchparallel_wrapper_fn
(#879) - Update SISL Waterworld environment to increase maximum acceleration, for smoother behavior (#882)
- Update MPE simple_spread agent reward (#894), update all MPE envs to update position before velocity, matching the original paper (#970)
Bug Fixes:
- Rename
BaseParallelWraper
toBaseParallelWrapper
(fixed typo) (#876, #908) - Removed casting actions to int in parallel_to_aec conversion (#975)
- Fix broken Tianshou tutorial and update dependencies (#980)
- Fix an issue where MPE envs would render black screen when using the
rgb_array
mode (#874) - Fix failing CI tests in GitHub workflows (#886)
- Fix minor linting issues with pre-commit hooks (#835)
- Resolve a large number of pytest warnings (#897)
- Remove unnecessary lines in MPE code (#891)
- Update Tianshou and CleanRL tutorials to work with the new API changes (#984)
Documentation Updates:
- Add full installation and usage examples for each environment type (#906)
- Update Third-Party Environments with two new custom board game environments (gobblet-rl and cathedral-rl) (#907)
- Add full documentation for wrappers (including Shimmy compatibility wrappers) (#904, #942)
- Add LangChain tutorial (#979)
- Updated EnvironmentCreation tutorial (#903, #972)
- Updated Tianshou Tutorial (#980)
- Update README with getting started information (#950)
- Add installation instructions to Getting Started documentation page (#968)
- Update docs contributing README (#883)
- Update homepage to include video demonstrating environments, cleanup homepage text, add logo (#954, #960)
Full Changelog: 1.22.3...1.23.0
1.22.4
This release has been yanked due to breaking API changes. We are working hard to address this in the next release.
What's Changed
Bug Fixes:
- Fix CI issues by @pseudo-rnd-thoughts in #886
- Fix pre-commit hooks @jjshoots in #835
- Fixing warnings by @reginald-mclean in #897
- Fix typo: BaseParallelWraper renamed to BaseParallelWrapper by @mikcnt in #876 and @jjshoots in #908
- Fixed: black screen rendering for MPE env in rgb_array mode by @cibeah in #874
- Remove unnecessary lines in MPE by @sushant1212 in #891
- New Features and Improvements
- Replace setup.py with pyproject.toml by @jjshoots in #875
- Remove
return_info
argument fromreset()
by @jjshoots in #890 - Breaking change: calling
reset(return_info=True)
will now throw an error - Done to match Gymnasium (link)
- add aec_wrapper_fn by @Kallinteris-Andreas in #879
- Waterworld increase maximum acceleration by @jjshoots in #882
- Update MPE simple_spread agent reward by @sushant1212 in #894
Documentation Updates:
- Add a new CONTRIBUTING.md for documentation by @mgoulao in #883
- Add usage examples for each environment type by @elliottower in #906
- Update third_party_envs.md by @elliottower in #907
- Add updated favicon to documentation website by @mgoulao in #880
- Fix typo in EnvironmentCreation tutorial by @elliottower in #903
Full Changelog: 1.22.3...1.22.4
1.22.3
What's Changed
- Waterworld_v4: Fixed incorrect pursuer being selected when adding rewards by @TheMikeste1 in #855
- Remove AEC diagrams from environments pages by @mgoulao in #856
- Add information about MAgent2 standalone package by @dsctt in #857
- Switch flake8 from gitlab to github by @RedTachyon in #858
- workflow fix by @WillDudley in #867
- Versioning by @mgoulao in #865
- Bump pillow from 9.2.0 to 9.3.0 in /tutorials/Ray by @dependabot in #859
- https://github.com/Farama-Foundation/PettingZoo/security/dependabot/3 by @WillDudley in #869
- wrappers documentation: get
to_parallel
from utils.conversions by @AndrewRWilliams in #870 - support Python 3.11 by @WillDudley in #872
New Contributors
- @TheMikeste1 made their first contribution in #855
- @dependabot made their first contribution in #859
- @AndrewRWilliams made their first contribution in #870
Full Changelog: 1.22.2...1.22.3
1.22.2
What's Changed
- Fixing for Issue #840 by @BolunDai0216 in #841
- fix #845 by @WillDudley in #846
- added GitHub Issue Forms as proposed in #844 by @tobirohrer in #848
- Changed reward logic in Waterworld by @BolunDai0216 in #843
- ENH: add gui to chess by @younik in #842
- change paradigm of parallel api loops by @WillDudley in #847
- Remove magent docs artifacts by @dsctt in #850
- tianshou tuts fixed by @WillDudley in #852
- Overhaul env creation guide by @WillDudley in #838
- Fix: set render_mode in tianshou tutorials (#853) by @RaffaeleGalliera in #854
New Contributors
- @tobirohrer made their first contribution in #848
- @RaffaeleGalliera made their first contribution in #854
Full Changelog: 1.22.1...1.22.2
1.22.1
What's Changed
- Docs Update 2 by @mgoulao in #817
- Remove average total reward from environments pages by @mgoulao in #821
- Rename core to AEC by @mgoulao in #822
- Add Google Analytics tag by @mgoulao in #825
- Remove MAgent content by @dsctt in #823
- This updates the setup and other things by @jjshoots in #829
- Wd/tutorials ci by @WillDudley in #831
- update logo, favicon, and fix broken links by @mgoulao in #832
- Wd/tutorials ci by @WillDudley in #833
- Bug fixes for Issue #818 by @BolunDai0216 in #836
- Update docs by @mgoulao in #837
- Fix ref to Gymnasium by @dsctt in #839
Full Changelog: 1.22.0...1.22.1