google-deepmind / google-deepmind/open_spiel
Add Parameterized N-Player Social Dilemma Games with Dynamic and Stochastic Payoffs
- Dominant language
- C++
- Stars
- 5.5k
- Forks
- 1.2k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 4
Description
**Description**
OpenSpiel currently includes several matrix and social dilemma games that are primarily limited to fixed 2-player settings with static payoff structures. While these are valuable for theoretical analysis, many real-world multi-agent reinforcement learning (MARL) problems involve:
- More than two agents
- Changing payoff dynamics over time
- Stochastic or noisy rewards
This issue proposes adding a parameterized social dilemma game that generalizes existing matrix games to better support modern MARL research and benchmarking.
**Proposed Change**
Introduce a new game, tentatively named param_social_dilemma, with the following capabilities:
**1. Variable Number of Agents (N-Player)**
- Support configurable agent counts (N ≥ 2)
- Maintain compatibility with OpenSpiel’s simultaneous-move game API
**2. Dynamic Payoff Matrices**
- Allow payoff matrices to:
- Change across timesteps or episodes
- Be generated from parameterized functions
- Enable experiments on non-stationary environments
**3. Stochastic Rewards**
- Add optional reward noise (e.g., Gaussian or discrete distributions)
- Useful for robustness and exploration studies
**4. Python API Exposure**
- Expose all parameters via the Python interface:
- Number of agents
- Payoff configuration
- Stochastic reward settings
**Implementation Location**
**Core game logic:**
`open_spiel/games/`
**Python bindings and API:**
`open_spiel/python/games/`
**Tests and examples:**
```
open_spiel/tests/
open_spiel/python/examples/
```
**Potential Deliverables**
- New game implementation: `param_social_dilemma`
- Python bindings with clear documentation
**Unit tests covering:**
- Different agent counts
- Deterministic vs stochastic rewards
- Example script demonstrating MARL usage
**Willingness to Contribute**
I’m happy to take this up and iterate based on maintainer feedback, starting with a minimal version (static N-player game) and progressively adding dynamic and stochastic extensions.
Contributor guide
Assessment
This issue has not been assessed yet.