CGOS - A Go Server Just for Computers
Hosted by boardspace.net
through July 2008
CGOS keeps things simple. It is not a full featured game server such as The Kiseido Go Server which in addition to playing GO can be a place to socialize. Instead, CGOS focuses on the basics of simply letting computers play each other.
With CGOS, instead of deciding whether to make, accept or decline challenges, the server manages the scheduling of games. This is a feature of CGOS which allows fair pairings of matches and relieves a human operator from making these decisions. The idea is that you put your program on-line and then come back a few hours or days later knowing that your program will have played a variety of opponents.
Here are the details:
Time Control is 5 minutes Sudden Death.
No suicide allowed.
Positional Superko is used.
The game is over after 2 consecutive passes and then no further stones are removed.
This is not designed to deal with network lag in a "fair" way, if your program is running on a fast reliable network it will still have an advantage, however this should improve the situation where a program on a slow network continues to lose time on the clock when the local program is actually playing instantly.
Your program should be compatible with the CGOS Rules of Play mentioned in the previous section. In particular, if your program does not play out the game it will probably lose because after 2 consecutive passes, the game is scored and all remaining stones are considered alive.
Once your program speaks GTP, download the client script and documentation (currently there is no documentation but if you run the client without any arguments a usage message will appear) The latest client is version 0.98
|Platform||Engine Client||Viewing Client|
|32 bit linux on x86 hardware||cgosGtp-linux-x86_32.tar.gz||cgosview-x86_32.zip|
|64 bit linux on x86 hardware||cgosGtp-linux-x86_64.tar.gz||cgosview-x86_64.zip|
|Windows OS on x86||cgosGtp-win.zip||cgosview-windows.zip|
|Mac OS-X (universal)||cgosGtp-darwin.zip||cgosview-darwin.zip|
|A note for Windows users: If you choose the Multi-platform starkit route, please note that there are 2 types of tclkit's for your platform. One is built with TK support (for GUI application) and is probably not the one you want, although it can be made to work if you know what you are doing. The one you want will have a name like tclkitsh instead of tclkit or some variation of this.|
The cgosGtp client needs to be run on the command line and it will display example usage. It requires a configuration file but a sample configuration is generated automatically for you if you pass the appropriate command line option to this program.
The viewing clients that are available are primitive prototypes, which may be improved over time, or be completely rewritten. However, they work quite well and are very convient for viewing games as they are being played.
To use them, you must specify a server and port. Here is an example for observing games on the 9x9 server using the windows viewing client:
cgosview.exe cgos.boardspace.net 6867
Currently CGOS uses 3 separate servers to allow playing on different boardsizes - a 9x9 server, a 13x13 server and a 19x19 server.
Here are the details of each server:
The viewing client (at the moment) defaults to a defunct 19x19 server, so it will not operate properly unless you pass in the correct command line options. As mentioned above the clients section, you must pass in the correct server and port.
The following link provides temporary instructions on how to connect to the 19x19 server and assumes a Windows operating system but the basic process is very similar for Unix and Mac's. However it may be somewhat out of date as the latest client software is configurable. Nevertheless, there is still some useful information here:
Connect program to 19x19 server.
Over time many suggestions have been implemented and some will be implemented in the future.
For instance one possible scheduling algorithm is to schedule players as soon as they become available. The problem with this approach is that programs tend to become available in pairs - when a game between two players is complete those same two players suddenly become available and get paired together again. A situation we would like to avoid happening too often.
So CGOS uses a simple pairing system that is fair. Games are scheduled in discreet rounds where each available program is paired with another program by strength. As previously mentioned, CGOS attempts to match stronger player with other strong players and weak players with weak players. Each round begins a few seconds after all games of the previous round are complete.
The ELO system uses a constant usually called the K-factor (also described in the wikipedia). There are many articles on the web about which K-factors should be used under various scenario's. The K-factor determines how much your rating can change as the result of a single game, the lower your K-factor the less effect a single game will have on your rating.
In CGOS, each player has a K-factor (the constant in the ELO formula) that decreases with each game played until it reaches a fixed lower bound of 3.0. New players start with a very high K-factor and an arbitrary rating near the median of all the players. However the K-factor used to update a players rating after a game has completed is a function of the players current K-factor and his opponents K-factor. This is to ensure that players with high K-factors (and thus low rating confidence) will have very little impact on their opponents ratings. Likewise, each players K-factor is decreased after each game in proportion to the opponents K-factor. So if you play a new unrated player the result of that game will have little impact on your rating and your K-factor will not be reduced much.
A common problem with rating systems is rating inflation/deflation. Without controls in place, a rating pool will tend to drift up or down, similar to how an economy can suffer from inflation or deflation, because the number of rating points in a population is more or less fixed. With human population pools this can happen when younger players rapidly improve because their rating points have to come from the other players.
CGOS tries to solve this problem by the presence of one or more anchor players. An anchor player is a player that has a fixed rating and is almost always available for games on the server. At the current time there is one player called FatMan with a fixed ELO of 1800 on the 9x9 server and Gnugo-3.7.10 at level 10 serves as the anchor player on the 13x13 and 19x19 server, also with a fixed ELO of 1800. In a potential inflation or deflation situation these anchor players act as a stable presence to keep things in check. For example in an inflation scenario, players with inflated ratings would be brought back down to reality when they play an anchor who is not inflating with them. The anchor player effectly absorbs or removes points from the rating pool. In a deflation scenario, beating the anchor player adds points to the population.
CGOS distinguishes players by the confidence it has in their ratings. If a player has a low confidence rating (high K-factor) his rating appears with a question mark after it, and is not to be trusted. Once it reaches reasonable confidence it appears with no question mark after the rating and can be considered reasonably stable. Although this is not visually indicated, the confidence continues to increase until the K-factor reaches 3.0. In most cases, full confidence is achieved by the time 200-300 games have been played.
The following table can be used to predict the probability of a win by the higher rated player, given some specified ELO rating difference between two players.
Other Go Servers that support Go-playing Bots
Sensei's Library contains much information on Go and Computer Go.
A CGOS section in Sensei's Libarary which describes some of the program that play on CGOS.
John Tromp has make some interesting contributions to Computer Go