Dominion AI

The development of AI for games such as Go, chess, and poker has made great strides in recent years, with AI now able to defeat some of the strongest human players. Relatively little work has been done on more modern games, which frequently feature the release of additional content and hidden information. Following the approach of the draftsim model, this problem can be approached by making "easy" decisions with a rules based model and answering the "hard" questions with learning methods.

An application of this approach is applied to Dominion, a popular and pioneering deckbuilding game released by Donald X. Vaccarino. The game revolves around building a deck containing action and treasure cards, which do useful things, and victory cards, which score points at the end of the game. A number of dominion simulators have been developed, however, these tools focus primarily on simple money strategies as opposed to the complex engine decks with flourish at higher levels of play.

I am currently working with a team of five Caltech graduate students on building more sophisticated AI for dominion, focused on blending rules-based and learning based decisions. I bring substantial competitive experience to the team as the top ranked dominion player, as well as winning the Dominion Online Championship.

An example of the interface for human-bot games is shown below:

Player-bot interface for dominion

Dominion interface for human-bot games implemented using the pygame python package.

A number of bots have been implemented in the pygame framework:

  • Random bot - baseline, makes all decisions randomly
  • Treasure bot - buys only basic treasure and victory cards
  • Big money bot - buys basic actions and treasures, empirical parameters
  • Village bot (in progress) - plays complex, multi-component engines

When purchasing cards, village bot seeks to maximize payload, defined as a function of coins, buys, cards gained, attacks played, cards trashed, and VP gained. The value of trashing junk cards increases early in the game, and the value of VP gaining is increased later in the game, as opponents begin to threaten to end the game. To simplify the payload computation, the mean field approximation is made to describe the distribution of additional +Cards, +Actions, and payload within a deck.

Decisions on how to play action cards are handled with a simple set of heuristics. Work has begun on implementing methods to determine the impact of individual buy and play decisions using Monte Carlo tree search and to examine the effect of overall model parameters on winrate using genetic algorithms. As work continues, it will be interesting to explore the range of effectiveness of rules-based and learning methods for dominion and to find the combination of methods best suited for practical application.