[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Go Protocols
At 04:10 PM 1/4/2001 +0100, you wrote:
Hi!
I'm relatively new to computer go (and go as well) and just started to
write an engine. Now the question of what protocol to use. I know two,
that both I'm not happy with:
a) Go Modem Protocol
I've translated the gmp.c to java and it works (more or less), I can
connect to cgoban. But my implementation seems somewhat unstable. I
inserted some debug-code. With debug-code it works, but I have an odd
feeling (something with timing seems to be wrong). Also I'd prefer to
setup my engine via the protocol, which isn't possible. With cgoban I
can't even test the undo-feature. An other drawback is, that it isn't
ascii based.
The protocol supports undo, so cgoban must not implement the full protocol.
b) NNGS/IGS-Protocol
I havn't internet connection at home, so I'd need my own server what I
think isn't worth the work. I havn't found any description of the
protocol, too.
The protocol is not documented :) It's ascii, but you have to reverse engineer
it yourself. I've written two clients, and it's not too hard to figure
out. NNGS source
code for a server is available.
An other drawback of both of them is, that they aren't simple to use.
So I thought of creating my own protocol, but that has the drawback
that it will not used widely.
Only by you, I think :)
This in mind, I wonder if there are better protocols out there.
Properties I'd wish for a protocol are:
Server based (Server starts and controles the engine(s)).
Ascii (Easier to debug for humans, will give the chance of
simulating an engine via telnet or stdin/stout)
Simple (Why making complicated when not needed.)
Extendable (If possible I'd like to start special features of the
engine from the server rather than interact with the
engine directly)
Do you know any, that suits this (or part of this)? I've seen, that
gnuchess uses a protocol, that looks like something I'd use (but
that's for chess ;-).
The modem protocol is very different from this since it had very
different objectives:
Peer to Peer: Two people playing over a modem with no other communication.
Low bandwidth for 1200 baud connections or lower
Error tolerant, since modem connections were very unreliable
Simple: it's about as simple as possible with the above constraints
Extendable: yes.
It was invented before the internet was available to people at home :)
The IGS protocol meets all of your criteria, I think. I don't understand
why you
want to invent a server based protocol, but you don''t want to write a
server :)
David Fotland