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

RE: [computer-go] Computer Go Server



On Wed, 2005-02-16 at 17:57, Ben Shoemaker wrote:

> 
> I understand that the match command supports size/time settings and is how
> one "user" initiates a game request to another user.  What we are trying to
> figure out are methods for the server to initiate games between random
> pairs of participating programs.
> 
> I only suggested creating more "ladders" as a means of grouping programs
> for automatic play.  Once joining a "ladder", the program would just wait
> for the server to initiate games.
> 
> Currently I don't see how the server would know which programs are availble
> for a match, and under what settings.

It is easy: the server "knows" which players are logged in,
and which of these are not currently involved in a game.
[ and which are "open" for match requests ]

> 
> Running multiple versions of the server to increase the number of ladders
> available seems like a much worse "solution" than modifying the code, IMO.
> 

Maintaining an M*N*K list of player*player*time-settings is a too
big problem, IMHO. Could be handled by a separate "tournament-manager"
process.

> Another way to approach this problem would be to leave the server as is,
> and build "opponent search and match request" functionality into something
> like gnugoclient (for gtp engines) which would manage finding opponents and

That would be my line of thought, too. see below

> issuing match requests with reasonable size/time settings.  This would
> leave it up to each program to randomize it's opponent selection.  It may
> also generate lots of match request overhead on the server for all the
> mismatch game requests, but that may not be too much of a problem.

Overhead for (failed) match-requests is low, as long as they are not
repeated.

My nngs<-->gtp bridge currently does something like this:
0) login/passwd
1a) answer match requests (maybe decline if the parameters dont suit me)
1b) get list of available players ("who" command), which are open
    (optionally) check if they are on my "wanted opponents" list
    create a match-request, and send it.
2) exec/pipe the program and play the game (bridging the appropriate
parts of the communication, and detect the game end)
3) kill child and goto 1

This will require no additional tweaks to the server, and would work on
any server.
NB the "list of wanted opponents" could be obtained from another source.

AvK


> 
> Ben Shoemaker.
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Yahoo! Mail - Find what you need with new enhanced search.
> http://info.mail.yahoo.com/mail_250
> _______________________________________________
> computer-go mailing list
> computer-go@xxxxxxxxxxxxxxxxx
> http://www.computer-go.org/mailman/listinfo/computer-go/

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/