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:
- 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?
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