Skip to content

PettingZoo 1.23.0

Compare
Choose a tag to compare
@elliottower elliottower released this 15 May 19:38
· 143 commits to master since this release
bb9625f

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 toreset() will now always return observation and info.

New Features and Improvements

  • Action masking is now supported using either observation[action_mask] or info[action_mask], with documentation and examples (#953)
  • Replace setup.py with pyproject.toml (#875)
  • Remove return_info argument from reset() (#890)
  • Add type hinting for utils and base environments (#964)
  • Add aec_wrapper_fn to match parallel_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 to BaseParallelWrapper (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