Developing Match Hosts

"The only legitimate use of a computer is to play games." (Eugene Jarvis)

Hosting a match involves a lot of moving pieces. You need to find a game, and find players that are ready to play. Once you have those, you need to communicate with the players, handle timeouts and illegal moves, track the state of the match, and publish it somewhere, so everyone can easily view it.

Fortunately, it's easy to get started, with the help of GGP.org projects.

Building upon GGP Base

GGP Base is a set of Java libraries and apps that help you build GGP match hosts. It provides a common infrastructure to build on, taking care of busy work like communicating with players, parsing GDL rules, representing the game as a state machine, determining which moves are legal, and so on.

GGP Base also includes built-in support for publishing to GGP.org match services, so that everyone involved can view the match online as it happens, and so researchers can include it when doing bulk analyses of the historical match archives.

Publishing via GGP.org Match Services

GGP.org Match Services lets you easily publish matches to GGP.org, so they can be watched live in the GGP.org viewer and included in historical match archives. If you're using GGP Base, it includes built-in support for publishing matches to GGP.org; otherwise, you can use an HTTP POST request to directly send matches to GGP.org for publishing.

Furthermore, if you sign all of your matches using a cryptographic key that's unique to your match host, GGP.org match services will recognize that they all came from the same hosting system, and do several useful things, including computing statistics for the players on your server, displaying a timeline of the most recently played matches, determining the relative difficulties of the games being played, etc. To see this in effect for a match hosting system that's not based on GGP Base, look at the GGP.org viewer pages for the Dresden GGP Server.

This is the same service that Tiltyard uses to publish matches!