Chapter 3. Compatibility
Prev |  | Next

## Chapter 3. Compatibility

GoGui will work with all programs that can understand the most basic commands of version 1 or 2 of the Go Text Protocol.

## Required Commands

It is required that the Go program can handle the following commands:

- boardsize (boardsize, clear_board)
- black, white (play)
- genmove_black, genmove_white (genmove)

The commands in parentheses are used if the program supports the protocol_version command and responds with 2.

In particular the Go program is not required to support the loadsgf command. GoGui translates all moves, setup and handicap stones into a series of black, white (play) commands.

## Optional Commands

The following other commands are used by GoGui:

- name
- final_status_list dead
- gg-undo
- genmove_cleanup
- help (list_commands)
- kgs-genmove_cleanup
- komi
- scoring_system
- time_settings
- undo
- version
- quit

If the Go program does not understand them, you will still be able to play games, but you cannot use all of the functionality of GoGui.

### Note

The command scoring_system area/territory (from an early draft of GTP version 2) is used for setting Chinese/Japanese rules, if the command is supported by the program. Otherwise the rule settings are quietly ignored.

The following GoGui specific GTP extension commands are used if supported by the program:

gogui_analyze_commands

  See Chapter 7, Analyze Commands.

gogui_interrupt

  See Chapter 9, Interrupting Commands.

gogui_sigint

  See Chapter 9, Interrupting Commands.

gogui_title

  For providing a window title, which may be game specific, or include a player name that is not known at program creation time. The title is queried and set after a new game is started.

play_sequence

  This is an extension to the standard play command which can take a sequence of moves. If the Go program supports it (together with GNU Go's gg-undo for multiple undo), then navigating in games will be much faster, because only a single command is used instead of a large number of play and undo commands). Note that the command line length can become large for this command; the Go program should not use a limit for the command length. The Go program is expected to return a failure and not to change its current board state if it cannot execute all of the moves in the sequence.

Prev |  | Next
Chapter 2. Programs | Home | Chapter 4. Main Window