[gtp] draft_v2
William M. Shubert
wms@igoweb.org
18 Jul 2002 09:39:34 -0700
--=-pewNGb2ZS2B90fA//0IY
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
On Thu, 2002-07-18 at 03:00, A van Kessel wrote:
People actually play 8x8 ? I'll give NNGS a peek.
Run on the KGS server's SQL game database:
mysql> select from_unixtime(date_stamp/1000),black,white from games
where board_size = 8 and owner is null;
+--------------------------------+------------+-----------+
| from_unixtime(date_stamp/1000) | black | white |
+--------------------------------+------------+-----------+
| 2001-02-01 05:43:23 | faz | Sean2win |
| 2001-02-07 13:45:41 | Lantu | sencha |
| 2001-04-25 12:38:04 | jefounet | atadano |
| 2001-05-30 05:23:07 | JJ | kaz |
| 2001-06-21 15:37:25 | nickwild | dezomb |
...
| 2002-07-10 13:05:28 | bgoodwin | pinhead |
| 2002-07-10 13:23:49 | bgoodwin | touyo |
+--------------------------------+------------+-----------+
117 rows in set (3.35 sec)
So people do play 8x8, just not very much (117 games out of about
400,000 in the 2+1/2 years that KGS has been around).
I think, communicating a vertex in %c%u format is pretty standard.
Just stay with the hurd...
paperware,IGS,NNGS: %c%u
GMP: %u
SGF: %c%c
Kiseido: Propriety ?
KGS sends all coordinates as two bytes, "\0\0" beang the lower left,
"\22\22" (two 18's) being the upper right and "\377\377" being a pass.
But overall, I think this is all pretty unimportant - GTP should be
implemented in whatever way makes sense for GTP, not in whatever way
matches some server protocol. After all, if you are connecting GTP to a
server, converting the vertex format will not be any difficulty.
I am not aware of any free-handicap implementation. Just passing
will do for most cases.
But, the real reason for wanting it in the protocol, is
cause of the HA[] in the game record, I guess. For the rest,
the position can just be set up (by AB[],AW[], play)
, and komi set seperately.
KGS does indeed implement free handicaps for Chinese and New Zealand
rule sets and players are using it. It seems to me that the GTP handicap
system is both complex and restrictive. Why not just have a "handicap
<n>" command, which specifies the handicap; then for fixed handicap,
follow that with a series of "play b <location>" commands; for free
handicap, follow the "handicap" command with a series of "genmove b"
commands? That seems simpler to implement and more flexible, because now
the arbiter in a game can do the handicap any way it seems right, the
protocol no longer forces a particular handicap placement system. The
only real need of the "handicap <n>" command at all is so that programs
can (if they choose) move differently for the 1st handicap stone of 5
vs. the 1st move of a non-handicap game.
Another thing that really stood out to me as troublesome (other than the
protocol telling you where your handicap stones have to be) is the
"time_settings" command. It only supports canadian time and it is not
very extensible. Canadian is AFAIK only common on the IGS/NNGS/etc. go
servers, nowhere else in the world is it the dominant go clock system,
so making it the only time system for GTP seems bizarre. At the very
least shouldn't there be an argument specifying the time system? For
example "time_settings canadian 30 10 25". Then in later versions of the
GTP spec if necessary we can add "time_settings japanese" or
"time_settings ing" or whatever and it will cleanly fit alongside the
older canadian system.
--=-pewNGb2ZS2B90fA//0IY
Content-Type: text/html; charset=utf-8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/1.0.2">
</HEAD>
<BODY>
On Thu, 2002-07-18 at 03:00, A van Kessel wrote:
<BLOCKQUOTE>
<PRE><FONT COLOR="#737373"><FONT SIZE="3"><I>People actually play 8x8 ? I'll give NNGS a peek.</FONT></FONT></I></PRE>
</BLOCKQUOTE>
<FONT SIZE="3">Run on the KGS server's SQL game database:</FONT>
<BLOCKQUOTE>
<FONT SIZE="3"><TT>mysql> select from_unixtime(date_stamp/1000),black,white from games where board_size = 8 and owner is null;</FONT></TT>
<BR>
<FONT SIZE="3"><TT>+--------------------------------+------------+-----------+</FONT></TT>
<BR>
<FONT SIZE="3"><TT>| from_unixtime(date_stamp/1000) | black | white |</FONT></TT>
<BR>
<FONT SIZE="3"><TT>+--------------------------------+------------+-----------+</FONT></TT>
<BR>
<FONT SIZE="3"><TT>| 2001-02-01 05:43:23 | faz | Sean2win |</FONT></TT>
<BR>
<FONT SIZE="3"><TT>| 2001-02-07 13:45:41 | Lantu | sencha |</FONT></TT>
<BR>
<FONT SIZE="3"><TT>| 2001-04-25 12:38:04 | jefounet | atadano |</FONT></TT>
<BR>
<FONT SIZE="3"><TT>| 2001-05-30 05:23:07 | JJ | kaz |</FONT></TT>
<BR>
<FONT SIZE="3"><TT>| 2001-06-21 15:37:25 | nickwild | dezomb |</FONT></TT>
<BR>
<FONT SIZE="3">...</FONT>
<BR>
<FONT SIZE="3"><TT>| 2002-07-10 13:05:28 | bgoodwin | pinhead |</FONT></TT>
<BR>
<FONT SIZE="3"><TT>| 2002-07-10 13:23:49 | bgoodwin | touyo |</FONT></TT>
<BR>
<FONT SIZE="3"><TT>+--------------------------------+------------+-----------+</FONT></TT>
<BR>
<FONT SIZE="3"><TT>117 rows in set (3.35 sec)</FONT></TT>
</BLOCKQUOTE>
<FONT SIZE="3">So people do play 8x8, just not very much (117 games out of about 400,000 in the 2+1/2 years that KGS has been around).</FONT>
<BLOCKQUOTE>
<PRE><FONT COLOR="#737373"><FONT SIZE="3"><I>I think, communicating a vertex in %c%u format is pretty standard.</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>Just stay with the hurd...</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I></FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>paperware,IGS,NNGS: %c%u</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>GMP: %u</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>SGF: %c%c</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>Kiseido: Propriety ?</FONT></FONT></I></PRE>
</BLOCKQUOTE>
<FONT SIZE="3">KGS sends all coordinates as two bytes, "\0\0" beang the lower left, "\22\22" (two 18's) being the upper right and "\377\377" being a pass. But overall, I think this is all pretty unimportant - GTP should be implemented in whatever way makes sense for GTP, not in whatever way matches some server protocol. After all, if you are connecting GTP to a server, converting the vertex format will not be any difficulty.</FONT>
<BLOCKQUOTE>
<PRE><FONT COLOR="#737373"><FONT SIZE="3"><I>I am not aware of any free-handicap implementation. Just passing</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>will do for most cases.</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>But, the real reason for wanting it in the protocol, is</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>cause of the HA[] in the game record, I guess. For the rest,</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>the position can just be set up (by AB[],AW[], play)</FONT></FONT></I>
<FONT COLOR="#737373"><FONT SIZE="3"><I>, and komi set seperately.</FONT></FONT></I></PRE>
</BLOCKQUOTE>
<FONT SIZE="3">KGS does indeed implement free handicaps for Chinese and New Zealand rule sets and players are using it. It seems to me that the GTP handicap system is both complex and restrictive. Why not just have a "handicap <n>" command, which specifies the handicap; then for fixed handicap, follow that with a series of "play b <location>" commands; for free handicap, follow the "handicap" command with a series of "genmove b" commands? That seems simpler to implement and more flexible, because now the arbiter in a game can do the handicap any way it seems right, the protocol no longer forces a particular handicap placement system. The only real need of the "handicap <n>" command at all is so that programs can (if they choose) move differently for the 1st handicap stone of 5 vs. the 1st move of a non-handicap game.</FONT>
<BR>
<FONT SIZE="3"></FONT>
<BR>
<FONT SIZE="3">Another thing that really stood out to me as troublesome (other than the protocol telling you where your handicap stones have to be) is the "time_settings" command. It only supports canadian time and it is not very extensible. Canadian is AFAIK only common on the IGS/NNGS/etc. go servers, nowhere else in the world is it the dominant go clock system, so making it the only time system for GTP seems bizarre. At the very least shouldn't there be an argument specifying the time system? For example "time_settings canadian 30 10 25". Then in later versions of the GTP spec if necessary we can add "time_settings japanese" or "time_settings ing" or whatever and it will cleanly fit alongside the older canadian system.</FONT>
<BR>
</BODY>
</HTML>
--=-pewNGb2ZS2B90fA//0IY--