[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Communication between computer Go programs



Peter.Smith@xxxxxxxxxxxxxxxxx wrote in lsd.compgo:

: 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. 

Ideally, the same protocol could be used for
  - two programs playing a game
  - one program playing against a human
  - two humans playing over a network connection
  - one human playing against (someone on) a go server 
  - one program playing against (someone on) a go server

: 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 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


--
Heikki Levanto  LSD - Levanto Software Development   <heikki@xxxxxxxxxxxxxxxxx>