A van Kessel
Thu, 11 Jul 2002 15:25:13 +0200 (CEST)
> 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 ...