OpenSpiel 1.1.0
This release adds some major functionality: new games, new algorithm, several fixes and new features.
Support and APIs
- Windows: native build via Microsoft Visual Studio (experimental)
- Rust API
Games
- Amazons
- Morpion Solitaire
- Gridworld pathfinding (single-agent and multiagent)
- Linear-Quadratic games (mean-field game)
- Pig: Piglet variant added
- Quoridor: 3-player and 4-player support added
- Utlimate Tic-Tac-Toe
Algorithms
- AlphaZero support for games with chance nodes (Python and C++)
- ADIDAS approximate Nash equilibrium solver by Gemp et al. '21
- Boltzmann DQN
- Deep Online Mirror Descent (for mean-field games)
- Expectiminimax (C++)
Mean-field Games
- Deep Online Mirror Descent
- Best response value function (instead of only exact)
- Allow specifying learning rate in fictitious play
- Routing game experiment data
- Softmax policy
Bots
- WBridge5 external bot
- Roshambo bots: expose to Python
Fixes
- Chess SAN notation
get_all_states
: support added for games with loops- Hex and DarkHex bug fixes for even-sized boards
- MCTS sampling from the prior when 0-1 visits specified (Python and C++)
- Pig: 2D observation tensor,
ActionString
,MaxChanceNodesInHistory
- Stones n' Gems serialization fix
Miscellaneous
- Added
SpielFatalErrorWithStateInfo
debug helper - Refactored policies computed by RL into a shared
JointRLAgentPolicy
- Custom info state resampling function for IS-MCTS
- Hidden Information Games Competition tournament code: make optional dependency
- Upgrade versions of abseil and OR-Tools and versions in python extra deps
- Python dependency on scipy
- Poker chump policies
Acknowledgments
Thanks to DeepMind for continued support of development and maintenance of OpenSpiel.
Thanks to all of our contributors: