Axelrod-Python/Axelrod

New Games

marcharper opened this issue ยท 5 comments

Some new games to consider supporting, and what the API will look like:

  • Prisoner's Dilemma variants, e.g. Optional Prisoner's Dilemma, PD with punishment
  • General asymmetric nxn matrix games, e.g. asymmetric PD, rock paper scissors, matching pennies, diner's dilemma, etc.
  • Ultimatum (see branch)
  • "Guess 2/3-rds of the average" aka beauty prize game
  • Public goods games -- shared value pool
  • n-player games
  • Volunteer's_dilemma
  • Ideally tournaments and Moran processes could themselves be (multiplayer) games, which would also allow e.g. Moran processes of Moran processes (example )

For adding a new game type (in 5.0+) we should consider some baseline requirements:

  • at least a few concrete strategies should be given
  • ideally at least one parameterized or evlovable strategy (like the FSM players)

Another one for the list:

  • ideally at least one parameterized or evlovable strategy (like the FSM players)

Perhaps "ideally" is the key word here as perhaps this would be a pity if it became a hurdle. What do you reckon?

I'm interested in contributing a new game. Which of the ones listed would be good for a programmer with some Python experience?

I'd appreciate some degree of collaboration on the game. I would also be happy to work on a new game that is already being built. Thank you

Hi @reytchison ! We're sort of in the middle of refactoring / generalizing significant portions of the library to be able to support additional games. I think it might be a bit difficult to jump in at this stage given the knowledge of the library needed to do so, but you might try some of the other issues, or implementing a few strategies listed in #379 to understand the library better. Then once we're a bit further along you can pick a new game to implement.

Alternatively, you could start playing with a new game, such as a 3x3 game like Rock-Paper-Scissors, to see what changes will be needed for the library to support it. But I'd still recommend something easier first to get familiar with the library.

Quantum prisoner's dilemma: https://www.nature.com/articles/srep06286

#1413 adds the ability for creating matrix games of different sizes, and a tutorial on how to implement them; I also wrote a quick code implementation of Rock-Paper-Scissors available here: https://gist.github.com/alexhroom/bea19c0bec62a08838bb6c8c4c949a6a