Tournament logo

2011 International Computational Billiards Championships

View games
Past Tournaments
Stanford Billiards

[Overview] [Software Description] [Software Documentation] [Software Download]

Software overview

Each software agent executes independently on its own machine. A game server coordinates and runs the tournament, matches, and individual games. When it is an agent's turn in a game, the server will contact the agent and request a shot, passing it the information required for the agent to shoot. The server will coordinate multiple games at the same time, to enable multiple separate agents to be calculating shots at the same time (for different games). The client code necessary and a skeleton agent (written in C++) are provided so the only necessary work is to implement the agent.

Software Description

To play two AI's against each other, we have chosen to adopt the client-server model. The server will run a 'game control' program that will instantiate game play, as well as shoot the cue with the given properties supplied by each AI at the appropriate times. In order to expedite game play, we will allow multiple games to occur at once, even between the same two AI's on the same machines. (This way, both can (almost) always be calculating a next shot.)

The server interacts with the clients. A fully functional client has been provided, implemented in C++, and it will handle all necessary communications with the server.

The server logs all information into a database, which allows an efficient analysis of the data after the tournament.

The physics library resides on both the server as well as the client and should be used to calculate shot trajectories. The AI's will use it to evaluate potential shots, and the server will use it to calculate the AI's chosen shot and give the appropriate player the set up for their turn.

Software Documentation

Software Download

The (open source) code for the client, physics library and server are available here.

Contact Information

If you have any suggestions or questions, please email: