[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FW: Communication between computer Go programs
> From: Heikki Levanto [mailto:heikki@xxxxxxxxxxxxxxxxx]
>
> : Rather than definitions of over-the-wire protocol what I
> would hope for is a
> : simple API for a Go program to use when playing other Go programs.
>
> I think we would need both. If we do not standardize what
> goes over the
> wire, other programs may not be able to talk this language.
> Remember that
> not all program(mer)s live in Windows environment, so
> providing just a DLL
> is of little value to some of us. An open-source implementation, with
> well-defined interfaces both to the wire and to the program
> sounds ideal to
> me.
>
Windows and DLLs were examples. I didn't mean to say Java and Linux and
others are not important which they are.
Agreed, without the low-level protocols two programs will not be able to
communicate. The problem I have is that (like many others I assume) I have
had to implement GMP myself. It is too low-level a protocol for every Go
program to have to implement. I don't know of any way to fully test my
implementation on the one PC I use.
> : Perhaps you would need 8 functions to do the following:
> : o Register / deregister program instance
> : o Send / receive start of game
> : o Send / receive move (sent as a SGF formatted string?)
> : o Send / receive end of game
>
> I am not sure of what the (de)register stuff is supposed to
> do, something
> DLL-specific?
>
I was thinking of the registering as a way for the program instance to
indicate it was running and ready to receive start of game messages. For
the GMP protocol this might not do anything. For a CORBA based protocol it
might add you to a naming service?
> I would like to add
> - for connections
> o Establish a connection to a server at a given address
> o Wait for a connection (at a given port)
> - for human-human playing
> o send a comment
> - for go programming
> o send debug commands (and receive debug output)
> (same as comments above?)
> - for go servers: various things, like lists of active
> games, results,
> etc.
>
> I would also like to point out the advantages of making the protocol
> extensible, so that new features can be added later. Of
> course this will
> have to be designed in a way that programs can always
> communicate with the
> minimal set of features, and ignore the stuff they do not know about.
>
>
> - Heikki
>
For a general protocol those are all good features. I was hoping for a
reduced protocol / API which would serve for two programs to communicate,
and be simple enough to be cheaply implemented.
Peter.