Axelrod icon indicating copy to clipboard operation
Axelrod copied to clipboard

New Games

Open marcharper opened this issue 5 years ago • 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)

marcharper avatar Apr 12 '20 18:04 marcharper

Another one for the list:

  • Coordinated Cooperation - based on this paper https://www.frontiersin.org/articles/10.3389/fevo.2018.00062/full (I've got a bunch of code set up for this here: https://github.com/drvinceknight/coord_coop)
  • 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?

drvinceknight avatar Apr 14 '20 15:04 drvinceknight

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

reytchison avatar Jul 14 '20 00:07 reytchison

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.

marcharper avatar Jul 17 '20 03:07 marcharper

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

marcharper avatar Nov 19 '21 19:11 marcharper

#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

alexhroom avatar Apr 20 '23 08:04 alexhroom