[gtp] gtp-use

A van Kessel Adriaan.van.Kessel@rivm.nl
Thu, 11 Jul 2002 15:25:13 +0200 (CEST)


Jules: 
>  I was just wondering how wide spread the use of GTP currently is?

So do I.
Personally, I am using gnugo as a "reference implementation" for
GTP. I am writing a nngs <--> gtp interface (unix: pipe+fork+exec)
so that i can use nngs as primary interface for go-programs.
Since GMP over a network connection is silly, I think GTP is
a logical choice. Line oriented protocols are simple to construct
and debug. I would have liked a more smtp/nntp-like protocol,
with status/error-numbers instead of the "?number textstring" lines,
but the current format will do.

There are two things, I would like to be changed in gtp:
1) a reserved namespace for "local" additions, eg all commands
   starting with [xyz] are reserved for local command extension.
2) gnugo should *not* pollute the existing namespace with redundant
   commands. eg: genmove_black is equivalent to "genmove b". this
   is protocolbloat to avoid.
3) gnugo extends the error messages with descriptive text, eg:
   out_of_range: point d33 is outside the board.
4) some features still seem to bi missing : the equivalents of
   sgf MN, PL , some timecontrol.
5) at the moment, the protocol is practically stateless.
   this allows for the goprogram to accept and generate moves
   , without having a notion of a game (or gamestate).
   Maybe a "game" or "session" layer should be added in a
   next version of the protocol.

But: the current protocol enabels a program to functional with
only 5-10 gtp commands implemented, which allows it to focus
on making moves instead of changing pixels on a screen ...

AvK