General Game Playing
Sign In

Assignments Notes Lectures Readings Resources Arena Piazza

Gamemanager is a web page that allows users to manage matches of custom games. You paste a rulesheet, (optionally) paste a stylesheet, and specify names and addresses of players; and Gamemanager does the rest.

Gamemanager can be found here.

The Gamemanager page has five interaction panes - Game, Match, State, History, and Communication. The page begins with the Match pane visible, and you can switch between panes by clicking the links at the top of the page.

The Game pane allows you to enter game rules and a Javascript stylesheet. The must be written in Prefix GDL. You can navigate through the rules using the scroll bar on the text area. Note that you can change the rules if you like. The stylesheet must be written javascript. The code must define a javascript function that takes a state as argument and produces a DOM fragment as result, which is then spliced into the DOM tree by the game player as the game progresses. (If you do not specify a stylesheet, the system reverts to standard GDL display for states.) Once you have supplied a rulesheet and a stylesheet, you click Initialize to move on to the Match pane.

The Match pane allows you to enter specifications for the match. The input boxes at the top of the pane allow you to specify a match id, a start clock, and a play clock. The game roster (below these input boxes) has one row for each role in the game. In order to play a match, you need to enter names and ip addresses of players for each of the roles. Pressing the Ping button sends an info message to each player to ensure that it is running. If the Gamemanager is able to connect with the player it places a green checkmark in the corresponding row of the roster. Otherwise, it places a red ex in that row. (In some cases, it just leaves the field blank.) Once you have established communication with all players, you can press the Setup button to set up the match. This will take you to the State pane.

The State pane is the main pane to use while managing a match. The current state of the match is shown below the command bar, using the game's stylesheet. The clock for the match appears below this. And the match controller is shown at the bottom. The first row in the controller is a list of roles in the game. The second row shows the name of the player assigned to the corresponding role. The third row shows the previous move of the player. The fourth row shows the current move. (Current moves are displayed only until the last player makes its move, after which they become previous moves.) The final row is a list of control buttons.

To run a match, press the Start button. The Gamemanager will send Start messages to all players. Their responses will appear in the Current Move row of the controller. After all players have responded and/or the start clock is exhausted, the Gamemanager will send Play messages to the players to initiate play. The moves of the players will be shown in the Current Move row. Once all players have responded or the play clock is exhausted, the Gamemanager will simulate the prescribed moves in the current state, update the state, place the Current Move into the Previous Move row, clear the Current Move row, and send the next message. Once the game is over, Game Manager will show the scores in the Current Move row.

If you wish to abort a match while it is running, press the Abort button. On the next cycle, the Gamemanager will send an Abort message to all players and terminate the match.

The Record button is used to record matches in Gamemanager in the case of tournament play and is disabled for other uses.

The History pane shows a history of moves made during the match. Using the arrow keys allows you to move forward or backward in history. Clicking on a row in the history table shows the state for the corresponding step.

The Communication pane shows a history of all play responses from players, with one communication per row. The first item is the step number, the second is the identity of the player, and the third is the player's move (or error in the case of an error). The Communication pane has limited value in ordinary game management; it is used primarily for debugging communication problems.

Comments and complaints to