Skip to content

Add Parameterized N-Player Social Dilemma Games with Dynamic and Stochastic Payoffs #1431

Description

@sriramsowmithri9807

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    contribution welcomeIt's a nice feature! But we do not have the time to do it ourselves. Contribution welcomed!

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions