Maven build and Executable jar

The TAG project is configured with a maven pom.xml to build the key artifacts, and pull in the necessary dependencies. This should all work out of the box with a mvn install. Two artifacts are generated by the maven build:

  • ModernBoardGame-1.0-SNAPSHOT.jar This is the main library (95 MB) that contains the TAG code. Non-executable.

  • TAG.jar (450 MB) This is the executable ‘fat’ jar with all dependencies. The usage for running this is:

         java -jar TAG.jar <ENTRYPOINT> <args> 
    

    There are several supported entry points, not all of which are documented here (see the code at core.TAG for latest details). The main three useful ones (with documentation on this site) are:

    • RunGames. This is the main process to run tournaments of games between agents, or have one agent play a game against itself to generate trajectory data.

       java -jar TAG.jar RunGames config=TournamentConfig.json
      
    • ParameterSearch. This will tune the parameters of an agent, or the parameters of a game.

      java -jar TAG.jar ParameterSearch config=ParamSearch.json
      
    • FrontEnd. This is the main visual access that allows any game to be played by a human on (an often rudimentary) GUI.

      java -jar TAG.jar FrontEnd
      

Any generated jar does not include the full contents of the data directory, which contains game-specific assets - either graphical (png/jpg) for the GUI, or configurational (json) for precise set up, such as the card details in pandemic. When a jar is run you may need to ensure that a copy of this data directory is installed wherever you are running the jar.

There is also a Docker image available for TAG that gets around any need to worry about java installs (or the data directory contents), however this cannot be used to run the GUI due to Docker restrictions that we have not yet worked out how to bypass.