CardStock is a General Game Playing engine for card games implemented in C#. Games are written in RECYCLE, a card game description language, and then simulations are run with random, simple, and complex AI players. CardStock can then analyze the games to determine heuristics about the games such as fairness, decisiveness, drama, or clarity, and generate transcripts of each simulation for further study.
We are currently in the process of abstracting and refactoring CardStock to allow for new game functionality and setting up a modular system for a tournament of AI players. Please check back for further progress on these issues.
There are currently 51 games coded in RECYCLE
- Adding
- Caterpillar (2p)
- Ninety Eight (4p)
- Catch and Collect
- Enchère (3p)
- GOPS (2p)
- Go Fish (2p) limited deck
- Turn the Tide (3p)
- Draw and Discard
- Golf Six (2-4p)
- Lost Cities (2p)
- Spite and Malice (2p)
- Exchange
- Fishing
- Scopa (2p)
- Stealing Bundles (2-4p)
- Poker
- Kuhn Poker (2p)
- Leduc Poker (2p)
- Press Your Luck
- Shedding
- Comet (2p)
- Crazy Eights (4p)
- Sane Eights (4p)
- Simon's Cat (4p)
- Trick Taking
- Avoidance
- Hearts (3-5p)
- Omnibus Hearts (4p)
- Broken Hearts (4p)
- Pure Hearts (4p)
- Grey Lady (4p)
- Black Maria (4p)
- Spot Hearts (4p)
- Knaves (3-4p)
- Polignac (4p)
- Slobberhannes (4p)
- Hearts (3-5p)
- All Fours
- California Jack (2p)
- Pitch (4p)
- Shasta Sam (4p)
- Others
- Agram (2-5p)
- Duck Soup (2p)
- Euchre (4p)
- German Whist (2p)
- Sheepshead (5p)
- Cheesheads (5p)
- Skittgube (3p)
- Spades (4p)
- Sueca (4p)
- The Bottle Imp (3-4p)
- Whist (4p)
- Avoidance
- Unique
- Open
CardStock
folder in the project using Visual Studio Code. - Install .NET Install Tool Extension
- Get .Net Core 9.0
- Install C# Dev Kit Extension
- Open the CardStock subdirectory
- Write up your game in RECYCLE in the
games
subdirectory. - Alter the
Program.cs
class to specify the name of your game. - Run the program in either Release or Debug mode.
- For Release mode, in the terminal type "dotnet run --configuration Release"
- Choose "Release Mode" to only see the results, or "Debug Mode" to see all game actions (better logs in the future).
- The Shape of Card Games Blog
- ReadTheDocs.io
- Automated Playtesting with RECYCLEd CardStock, Connor Bell and Mark Goadrich, Game & Puzzle Design Journal, Vol 2, Issue 1, July 2016
- Quantifying the Space of Hearts Variants, Mark Goadrich and Collin Shaddox, Advances in Computer Games 2021, November 2021