========================================================================== Document History: August 26, 2006 Updated GGSA paragraph October 2, 2001 Initial version October 3, 2001 score command example, game scoring explained, move undo Send comments and suggestion to mic@research.nj.nec.com ========================================================================== GGS How-To ========== Here is a brief introduction aimed at getting you ready for playing rated games on GGS using plain telnet or GGSA. 1) CONNECTING TO GGS You have two choices of connecting to GGS: either by using the raw telnet protocol ("telnet ftp.nj.nec.com 5000") or via the Java applet GGSA, which I strongly recommend (How to run GGSA will be discussed below). You will be asked for your User-ID and password, which you may choose freely. 2) GGS COMMANDS GGS's functionality is similar to other known text-based game servers. The main difference is that it supports a couple of different games, not just one. So, connecting to GGS means to establish contact with the "central server" which is merely a message passing system without any game functionality. The central server lets you send text messages to other clients using the "tell" command. Example: tell mic How does this thing work? This command sends the message "How ..." to user "mic". For many commands GGS provides short aliases which makes your life as telnet user easier. Here are some examples: who (alias w) get a list of all connected users tell (alias t) send a message to a user yell (alias y) send a message to the .chat channel finger (alias f) information on user quit (alias q) quit GGS . sends a message to your last recipient , sends a message back to the user who just talked to you "A" gives you a list of all system aliases. You can also define your own aliases using the "alias" command. Example: alias tmic tell mic $ "tmic " will then expand to "tell mic " ($ denotes the rest of the input). Aliases are also very useful when it comes to playing games via telnet. More about this later. The central server also provides a set of variables for each user which are listed with the "finger" command. A typical record looks like this: login : mic dblen : 100.0 = 1,139 / 1,139 name : Michael Buro info : http://www.cs.ualberta.ca/~mburo email : mic@research.nj.nec.com since : Tue 02 Oct 2001 08:39:30 EDT idle : 00:00:00, on line : 00:42:53 host : 138.015.162.020 othello.nj.nec.com sock : 22 @ 48261 S(325/325) R(0/0) E(0/0) bell : +t +tc +tg -n -nc -ng -ni -nn verbose: +news -ack -help -faq vt100 : - hear : + groups(-) : _admin _client channs(-) : .chat .ggs .ggsa .help notify(+) : * ignore(-) : Some of the entries can be changed by the user. For instance: info sets the info variable vt100 (+|-) turn vt100 format on or off (either + or -) notify (+|-) + will inform others of your arrival/departure notify + * + will inform you about arriving/departing users bell (+|-)t + issues a bell when a users talks to you verbose -ack -help -faq turns off annoying messages (see http://external.nj.nec.com/homepages/igord/central-var.txt for more details) You can learn more about GGS commands and aliases issuing the "help" and "help aliases" commands or visiting http://external.nj.nec.com/homepages/igord/gsa-ggs.htm. 3) REGISTRATION What is necessary for playing tournament games is to get registered. This is because only rated games are stored by GGS in case of disconnects and only registered players can play rated games. In order to get registered you need to connect to GGS and find an administrator. Igor ("igor") and myself ("mic") are usually around at EST working hours. Connect with your chosen User-ID and password and let one of us know that you would like to be registered. If you use telnet you'd issue a command like "t mic Hi, I would like to be registered". On GGSA you would switch to mic's or igor's talk context by clicking on the User-ID in the upper left list and type the message+ in the input line. 4) PLAYING GAMES Currently you can play Amazons, Checkers, Chess, Go, Hex, Othello and Phutball games on GGS. Each game is handled by a game service which from the central server's perspective is just another client. This means that users can use the tell command to talk to the services to start and play games. The service IDs are /ams, /cks, /cs, /go, /hex, /os and /phb. Similar to the central server each service stores user variables which can be viewed using the "finger" command. To issue commands to a fixed service aliases come to the rescue of telnet users (GGSA users won't need them because the applet generates game related commands itself). The first step is to define a global service tell command like this: ms /ams ("make service /ams") This will expand "ts" to "tell /ams" in the future. Then ts f ("tell service finger") displays your Amazons service information: ams: finger mic login : mic dblen : 100.0 = 855 / 855 level : 2 open : 1 client : + trust : - rated : - bell : -r +p -w -n -ns -nn -nt -ni -nr -nw -ta -to -tp vt100 : - hear : + play : stored (-) : 0 notify (+) : * track (+) : * ignore (-) : request(-) : : watch (+) : accept : decline: Type Rating@StDev Inactive AScore Win Draw Loss 10 2001.3@102.6= 2.11:35:30+@101.1 -13.3 110 0 280 12 1978.3@271.7= 214.07:49:08+@256.2 -11.2 4 0 1 14 1841.3@124.5= 613.11:15:50+@ 59.5 -22.7 55 0 58 6 1691.0@136.2= 682.07:17:50+@ 78.7 -3.6 5 0 42 To get this list GGSA users simply switch to the /ams talk context by clicking on /ams in the upper right list and then issue the "f" command in the input line. Before a rated game can be played the open variable - which indicates the maximum number of simultaneous games you can play - needs to be set to at least 1 and the rated flag needs to be true: ts open 1 ts rated + GGSA users can use keyboard input "open 1" and "rated +" in the /ams talk context, or use the menus (Service -> Amazons), (Amazons -> Open 1), (Amazons -> Rated). Telnet users want to set "client" to false in order to receive an ASCII representation of the boards (GGSA users: don't mess with the client variable, GGSA needs it to be set to true). ts client - Games are started by first issuing a match request to another player which describes the game setup and timing conditions. GGSA users simply double-click on the opponent in the upper left list which pops up a game request window. Telnet users have to issue a command like ts ask 10k 90:00 foo asking player "foo" to join a 10x10 komi Amazons game with 90 minutes on each clock for all moves. User "foo" receives the following game request message (on GGSA a game request window will appear): /ams: + 1947.3 mic 01:30:00//00:00 10k R 2001.3 foo If player "foo" accepts the request by issuing ts accept the game will be started. At this point GGSA will open a game window. To input a move press the left mouse button over the amazon you would like to move, release the button over the to-square, and then click on the hit-square. The move is then sent to the service and the board is refreshed when the board update message from the service arrives, which can sometimes be confusing when the connection is slow. After inputting the first move in komi games GGSA prompts for the komi value which is defined as the player's estimation of the final game score for the player to move. E.g. if you think black to move will win by 3 moves, you enter 3 in the input line. If you think black to move loses by 4 moves you input -4. That's all. Telnet users will receive an ASCII representation of the board. Moves are issued by the play commands such as t /ams play D1-D7-G7/3.0 or tp D1-D7-G7/3.0 when in Amazons mode (after issuing "ms /ams"). The number given after the "/" is the evaluation of the board from the side-to-move perspective. It only needs to be given with the first move of komi games. The default value is 0. 5) WATCHING OTHER GAMES The Game-IDs of all running games are displayed by the "match" command: ts match or tm To start/stop observing a game issue to+ resp. to- GGSA displays a list of all running games. Clicking on one of the associated lines lets you observe that game. You can even send kibitz messages to players and observers quite easily. 6) CONTINUING INTERRUPTED GAMES In case a player is disconnected from GGS during a rated game the current game state is saved. The game can be resumed by first finding out the saved game ID using ts stored (or just "stored" in the GGSA /ams context) then issuing an ask command with the ID of the game you would like to resume. For example: ts ask .2704 (or just "ask .2704" in the GGSA /ams context) 7) UNDOING MOVES Moves can be taken back by mutual "ts undo " commands. GGSA users can issue an undo request from the game window menu. 8) SHORTCUTTING GAMES At any time games can be ended using either the "resign" or "score" commands: ts resign ts score "resign" ends the game immediately with maximal loss (score: -NxN where N is the edge length) for the issuing player. Alternatively, both players can agree on a score to end a game prematurely. For this, they both send their score suggestions to the server. If the values match, the color-normalized average is taken as the score before the komi is applied. Example: Komi from Black's perspective: +4 (meaning: if Black's score is 4 before applying komi, the game is scored as a draw, if black's score is >4 he wins) Black thinks he wins by +5 (before komi!); he sends "ts score 5" White thinks she loses by 6 (-"-) ; she sends "ts score -6" The scores match and the normalized game score before komi is 5.5 for Black. Taking the komi into account the game ends with a score of 1.5 for Black. Once all regions are owned by single players the Amazons server will start making score suggestions based on the number of reachable squares, the color to move, and the number of implicit pass moves (see below) without taking the komi into account. GGSA prints the score suggestion into the input field. The user only needs to press to submit it to the server if he agrees. Please note that this score suggestion is just an approximation which assumes that both players can fill their regions entirely. If there are territorial pins, degenerated areas - or your confused opponent is likely to generate them :-) - it is prudent to keep playing to maximize your score. 9) HOW AMAZONS GAMES ARE SCORED ON GGS The original rules of Amazons state that the first player without legal move loses. GGS generalizes this notion quite naturally by counting the spare moves the winning player has. So the objective now becomes winning big rather than just making the last move. Every single move counts. This transforms Amazons into a game with a sufficiently large range of scores which is necessary for reasonable komi bidding. As usual the score can be viewed as a payment from the losing to the winning player. Thus, score(game, black) = - score(game, white) Here is the precise score definition the Amazons server uses: The game ends when neither player has a legal move. The score s for black is then the result of the following computation: s = #implicit pass moves so far if (pass color == black) s = -s An implicit pass move is counted whenever - after a regular move by one player - the other player has no move left. N.B.: when the game has ended the number of implicit pass moves is at least one. Examples: (X = black, O = white, # = blocked, - = empty) a) terminal positions: ######## ### ### 1. #OOOXXX# #X# #O# X made last move, no previous pass -> score(X) = 1 ######## ### ### ######## ### ### 2. #OOOXXX# #X# #O# O made last move, no previous pass -> score(X) = -1 ######## ### ### c) short endgames: To Move score(X) = s ######## ### #### 1. #OOOXXX# #X# #O-# O 0 ######## ### #### ######## ### #### #OOOXXX# #X# ##O# - -1 ######## ### #### To Move score(X) = s ######## ### ##### 2. #OOOXXX# #X# #O--# O 0 ######## ### ##### ######## ### ##### #OOOXXX# #X# ##O-# O -1 ######## ### ##### ######## ### ##### #OOOXXX# #X# ###O# - -2 ######## ### ##### To Move score(X) = s ######## #### #### 3. #OOOXXX# #X-# #O-# O 0 ######## #### #### ######## #### #### #OOOXXX# #X-# ##O# X 0 ######## #### #### ######## #### #### #OOOXXX# ##X# ##O# - 1 ######## #### #### 10) USING A GRAPHICAL FRONT END Although aliases make GGS handling using telnet less miserable, I strongly recommend GGSA. Once running, it eases game playing considerably and lets you chat and observe other games quite easily. Please visit http://www.cs.ualberta.ca/~mburo/ggsa/ggsa.html to download GGSA and to read the documentation. 11) HELP Each service provides help files that can be reached by sending the help or help commands to it.