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