Developing Players

"... every game of skill is susceptible of being played by an automaton." (Charles Babbage)

General game playing is all about building computer programs that can learn how to play games they've never seen before, devising a strategy and choosing the right moves to win. But that's easier said than done -- there's a lot that these players have to do long before they get to choose their moves. They need to talk with game servers, interpret the rules of the game, keep track of what's happening in ongoing matches, determine what moves are available, and so on. And as a developer, you'll need a way to try out your players, run experiments, write tests, and figure out what's working and what's not.

Fortunately, there are GGP.org projects here to help.

Building upon GGP Base

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

GGP Base also includes tools for writing games and testing gamers. You can use these tools to verify that rulesheets contain legal GDL and describe valid games, to visualize and participate in matches, and to automatically run many matches between gamers and analyze the results.

When you use GGP Base to build your player, you get to focus on coming up with novel ways to analyze games and choose the best moves. GGP Base takes care of the rest.

Get started building your own player using GGP Base using this tutorial.

Or read about the GGP Base representation of the GDL language.

Learn more at the GGP Base project page. Questions? Ask on the ggp-base-discuss mailing list.

Playing on Tiltyard

Once you've built a player that you're proud of, register it with Tiltyard to play continuously against humans and computers around the world. This is a great way to test out your player on a wide variety of games, against a wide variety of opponents. As your player builds up a track record on Tiltyard, you'll be able to view statistics about which games your player performs well on, and which still need improvement.