[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

3. Using GNU Go


3.1 Getting Documentation

You can obtain a printed copy of the manual by running make gnugo.pdf in the ‘doc/’directory, then printing the resulting file. The manual contains a great deal of information about the algorithms of GNU Go.

On platforms supporting info documentation, you can usually install the manual by executing `make install' (running as root) from the ‘doc/’ directory. This will create a file called ‘gnugo.info’ (and a few others) and copy them into a system directory such as ‘/usr/local/share/info’. You may then add them to your info directory tree with the command install-info --info-file=[path to gnugo.info] --info-dir=[path to dir]. The info documentation can be read conveniently from within Emacs by executing the command Control-h i.

Documentation in ‘doc/’ consists of a man page ‘gnugo.6’, the info files ‘gnugo.info’, ‘gnugo.info-1’, ... and the Texinfo files from which the info files are built. The Texinfo documentation contains this User's Guide and extensive information about the algorithms of GNU Go, for developers.

If you want a typeset copy of the Texinfo documentation, you can make gnugo.dvi, make gnugo.ps, or make gnugo.pdf in the ‘doc/’ directory. (make gnugo.pdf only works after you have converted all .eps-files in the doc/ directory to .pdf files, e.g. with the utility epstopdf.)

You can make an HTML version with the command makeinfo --html gnugo.texi. If you have texi2html, better HTML documentation may be obtained by make gnugo_ovr.html in the ‘doc/’ directory.

User documentation can be obtained by running gnugo --help or man gnugo from any terminal, or from the Texinfo documentation.

Documentation for developers is in the Texinfo documentation, and in comments throughout the source. Contact us at [email protected] if you are interested in helping to develop this program.


3.2 Running GNU Go via CGoban

There are two different programs called CGoban, both written by William Shubert. In this documentation, CGoban means CGoban 1.x, the older program. You should get a copy with version number 1.12 or higher.

CGoban is an extremely nice way to run GNU Go. CGoban provides a beautiful graphic user interface under X Window System.

Start CGoban. When the CGoban Control panel comes up, select “Go Modem”. You will get the Go Modem Protocol Setup. Choose one (or both) of the players to be “Program,” and fill out the box with the path to ‘gnugo’. After clicking OK, you get the Game Setup window. Choose “Rules Set” to be Japanese (otherwise handicaps won't work). Set the board size and handicap if you want.

If you want to play with a komi, you should bear in mind that the GMP does not have any provision for communicating the komi. Because of this misfeature, unless you set the komi at the command line GNU Go will have to guess it. It assumes the komi is 5.5 for even games, 0.5 for handicap games. If this is not what you want, you can specify the komi at the command line with the ‘--komi’ option, in the Go Modem Protocol Setup window. You have to set the komi again in the Game Setup window, which comes up next.

Click OK and you are ready to go.

In the Go Modem Protocol Setup window, when you specify the path to GNU Go, you can give it command line options, such as ‘--quiet’ to suppress most messages. Since the Go Modem Protocol preempts standard I/O other messages are sent to stderr, even if they are not error messages. These will appear in the terminal from which you started CGoban.


3.3 Other Clients

In addition to CGoban (see section Running GNU Go via CGoban) there are a number of other good clients that are capable of running GNU Go. Here are the ones that we are aware of that are Free Software. This list is part of a larger list of free Go programs that is maintained at http://www.gnu.org/software/gnugo/free_go_software.html.


3.4 Ascii Interface

Even if you do not have any client program, you can play with GNU Go using its default Ascii interface. Simply type gnugo at the command line, and GNU Go will draw a board. Typing help will give a list of options. At the end of the game, pass twice, and GNU Go will prompt you through the counting. You and GNU Go must agree on the dead groups—you can toggle the status of groups to be removed, and when you are done, GNU Go will report the score.

You can save the game at any point using the save filename command. You can reload the game from the resulting SGF file with the command gnugo -l filename --mode ascii. Reloading games is not supported when playing with CGoban. However you can use CGoban to save a file, then reload it in ascii mode.

You may play games with a time limit against GNU Go in ascii mode. For this, the Canadian time control system is used. (See http://en.wikipedia.org/wiki/Byoyomi and http://senseis.xmp.net/?CanadianByoyomi.) That is, you have a main time to be followed by byo-yomi periods. After the main time is exhausted you have a certain number of moves to be made in a certain number of seconds. (see section Invoking GNU Go: Command line options)


3.5 GNU Go mode in Emacs

You can run GNU Go from Emacs. This has the advantage that you place the stones using the cursor arrow keys or with the mouse, and you can have a nice graphical display of the board within emacs.

You will need the file ‘interface/gnugo.el’. There is a version of this distributed with GNU Go but it only works with Emacs 21. Most Emacsen are Emacs 22 however. Therefore you should get the latest version of gnugo.el by Thien-Thi Nguyen, which you can find at http://www.gnuvola.org/software/j/gnugo/ or http://www.emacswiki.org/emacs/gnugo.el.

You will also need some xpm files for the graphical display. You can either use those distributed by Thien-Thi Nguyen (at the first URL above) or those distributed with GNU Go, either the file ‘interface/gnugo-xpms.el’ or (for high resolution displays) ‘interface/gnugo-big-xpms.el’.

Load the file ‘interface/gnugo.el’ and ‘interface/gnugo-xpms.el’. You may do this using the Emacs M-x load-file command.

When you start a game with M-x gnugo, you will first see an ascii board. However typing `i' toggles a graphical board display which is very nice. This is a pleasant way to play GNU Go. You may get help by typing C-x m.


3.6 The Go Modem Protocol and Go Text Protocol

The Go Modem Protocol (GMP) was developed by Bruce Wilcox with input from David Fotland, Anders Kierulf and others, according to the history in http://www.britgo.org/tech/gmp.html.

Any Go program should support this protocol since it is a standard. Since CGoban supports this protocol, the user interface for any Go program can be done entirely through CGoban. The programmer can concentrate on the real issues without worrying about drawing stones, resizing the board and other distracting issues.

GNU Go 3.0 introduced a new protocol, the Go Text Protocol (see section The Go Text Protocol) which we hope can serve the functions currently used by the GMP. The GTP is becoming increasingly adopted by other programs as a method of interprocess communication, both by computer programs and by clients. Still the GMP is widely used in tournaments.


3.7 Computer Go Tournaments

Computer Tournaments currently use the Go Modem Protocol. The current method followed in such tournaments is to connect the serial ports of the two computers by a “null modem” cable. If you are running GNU/Linux it is convenient to use CGoban. If your program is black, set it up in the Go Modem Protocol Setup window as usual. For White, select “Device” and set the device to ‘/dev/cua0’ if your serial port is COM1 and ‘/dev/cua1’ if the port is COM2.


3.8 Smart Game Format

The Smart Game Format (SGF), is the standard format for storing Go games. GNU Go supports both reading and writing SGF files. The SGF specification (FF[4]) is at: http://www.red-bean.com/sgf/


3.9 Invoking GNU Go: Command line options


3.9.1 Some basic options


3.9.2 Monte Carlo Options

GNU Go can play Monte Carlo Go on a 9x9 board. (Not available for larger boards.) It makes quite a strong engine. Here are the command line options.


3.9.3 Other general options


3.9.4 Other options affecting strength and speed

This single parameter ‘--level’ is the best way of choosing whether to play stronger or faster. It controls a host of other parameters which may themselves be set individually at the command line. The default values of these parameters may be found by running gnugo --help.

Unless you are working on the program you probably don't need the remaining options in this category. Instead, just adjust the single variable ‘--level’. The following options are of use to developers tuning the program for performance and accuracy. For completeness, here they are.

The preceeding options are documented with the reading code (see section Reading Basics).


3.9.5 Ascii mode options

For more information about the following clock options see See section Ascii Interface.


3.9.6 Development options


3.9.7 Experimental options

Most of these are available as configure options and are described in Other Options.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Daniel Bump on February, 19 2009 using texi2html 1.78.