Some bugs just don't want to be squished, so learn to love them.

TAG: Terraforming Mars

Download

The code for running Terraforming Mars in TAG is publicly available in the TAG Github repository.

You can also download a .jar executable file here: DOWNLOAD.

Paper PDF: DOWNLOAD.

Abstract

Games and Artificial Intelligence (AI) have had a tight relationship for many years. A multitude of games have been used as environments in which AI players can learn to act and interact with others or the game mechanics directly; used as optimisation problems; used as generators of large amounts of data which can be analysed to learn about the game, or about the players; or used as containers of content which can be automatically generated by AI methods. Yet many of these environments have been very simple and limited in scope. We propose here a much more complex environment based on the boardgame Terraforming Mars, implemented as part of the Tabletop Games Framework: a very large and dynamic action space, hidden information, large amounts of content, resource management and high variability make this problem domain stand out in the current landscape and a very interesting problem for AI methods of multiple domains. We include results of baseline AI game-players in this game and in-depth analysis of the game itself, together with an exploration of problem complexity, challenges and opportunities.

How to run

Jar Executable

Simply run the executable downloaded above. This will directly load the game Terraforming Mars, with a human (player 0) playing against an MCTS player (player 1) with full observations of the game state for the human player.

Find instructions for playing the game in the application. Alternatively, full game rules are available here.

Framework

** Needs Java 8 or newer. **

  1. Download or clone the code from the TAG Github repository.
  2. Open this in your IDE of choice (IntelliJ is recommended). This is a Maven project, therefore please load it within the Maven framework in order to correctly get all the necessary external packages.
  3. From the root of the project, find the class Game.java at the following path: src\main\java\core\Game.java.
  4. Find the main method at the bottom of this class. Here you can modify different parameters for different runs.
  5. Make sure that the game parameter in the function (the first argument) is set to Terraforming Mars.
  6. Run the Game.java class.

Alternative

If you wish to explore different modes to run the framework, check out the src\main\java\evaluation package, and the TAG Wiki entry for running the framework.