OpenSpiel 1.4
This release adds new games, bug fixes, and process + support changes.
Support and Process changes
- Added (partial) Python 3.12 support: building & testing of wheels only (also distributed on PyPI)
- Added building and availability of Apple Silicon (
arm64
) binary wheels on PyPI - Removed support fpr Python 3.7 due to EOL June 2023
- Upgraded versions of supported extra packages (JAX, PyTorch, TF, etc.)
- Added
ml-collections
as a required dependency
Games
- Added Dots & Boxes
- Added Chat Game (python)
- Added MFG crowd avoidance game
- Added MFG periodic aversion game
- Modify Predator-Prey MFG to take in initial values
- (Not yet complete) Add partial implementation of Yacht
Algorithms
- Removed PyTorch NFSP (see #1008)
- Remove unnecessary policy reload in outcome sampling MCCFR (see #1115)
- Rewrite Stackelberg equilbrium solver using cvxpy (see #1123)
Examples
- Training TD n-tuple networks on 2048
Improvements and other additions
- Added a
build_state_from_history_string
helper function for debugging - GAMUT generator: expand the set of games provided by the wrapper
- Add exclude list in game simulation tests for games that are partially complete
- Refactored all games into individual directories
- Changed 2048 to exclude moves that don't change the board from legal actions
- Introduced number of tricks and change order of information in bridge observations (see #1118)
- Added missing functions for C++-wrapped TabularPolicy to pybind11
- Added missing functions to (CorrDevBuilder and C(C)E*Dist) to pybind11
- Added more examples to help debug game implementations
Fixes
- Backgammon: added the dice to the end of the observation vector
- Fixed uses of functions deprecated in NumPy 1.25
- Fixed float comparisons in playthroughs to default to 6 decimal places
- Fixed bug in entropy schedule in R-NaD (see #1076)
- Fixed bug in rho value (see #968)
- Fixed to actions of game definition of Liar's poker (see #1127)
- Fixed castling bug in chess (see #1125)
- Corrected include statements for efg_game (causing C++ DQN to not build)
Several other miscellaneous fixes and improvements.
Acknowledgments
Thanks to Google DeepMind for continued support of development and maintenance of OpenSpiel.
Thanks to all of our contributors: