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

Re: [computer-go] Moyoman, a Go playing program



> I  don't want  to  use a  private  extension, because  that loses  the
> benefit of being a standard, and  then users of my program are reduced
> to using lowest common denominator functionality.

I suspect that if you extended GTP to include debugging information it
would either  become a defacto standard  or even part  of the official
standard.  You should  at least check this with the  GTP guys, as that
would probably benefit everyone and  be a nice (extra) contribution to
make to the computer go community.

Sorry if we "beat you up."  I  can't honestly say that GTP is a better
fit even though I  implied this in my last email.  But  I do know that
you need to  have a GTP mode whether it's "native"  to your program or
not.

I can give you a few reasons why:

  1. You can play your program on KGS right now if you have GTP.  

  2. You can  play your  program right now  against my program  if you
     have GTP.   Ok, maybe nobody  cares about this,  but I do!   I am
     always looking for GTP programs to play against.

  3. How many games can your program win against the latest version of
     GNU Go in  a 2000 game sample?  I know the  answer for my program
     because  it's easy  to play  these games  automatically  with GTP
     testers that are available (I wrote my own.)

     You will want  to be able to answer questions  like this (even if
     you don't like the answer :-)   

  4. There is a very nice java interface called "gogui."  I downloaded
     it one  day and it  worked without any  changes because I  used a
     standard protocol.   I am  lazy and didn't  want to build  a user
     interface, fortunately, I don't have to!  But if I do, it will be
     GTP based.

     You will probably already have  your own interface, but it's nice
     to have options.  If your  interface is particularly nice, I will
     want to run my program on  your interface!  You need GTP so I can
     do this!
    
  5. You will generate far more interest in your project if people can
     download it and do all these things.


- Don








   Date: Wed, 7 Jul 2004 11:32:52 -0700 (PDT)
   From: David Weiss <dweiss51@xxxxxxxxxxxxxxxxx>
   Content-Type: text/plain; charset=us-ascii

   Don,

	I only posted this a few hours ago, and have
   already been beaten up by a number of people
   about GTP :-)  My comm.client package is meant
   to make it easy to write multiple clients for
   Moyoman, although it still needs some additional
   work.  I wrote an ASCII client just as a
   demonstration of this.  Writing a 
   GTP client which would communicate over a socket
   would be a very good idea.  My design does not
   preclude this, and should not require any
   additional work.  GTP is easy enough that it is
   probably just as easy to write new GTP code as
   trying to integrate anyone elses stuff, but that
   is a separate question which I can examine later.

   A strong case has been made in terms of
   incorporating third party tools.  At some point,
   I would like to see a standard protocol which
   allows for debugging information to be transmitted.
   If that is GTP, great.  I don't want to use a
   private extension, because that loses the benefit
   of being a standard, and then users of my program
   are reduced to using lowest common denominator
   functionality.

	In any case, I hope that you get a chance
   to check out Moyoman.  Thanks for your interest.

   --- Don Dailey <drd@xxxxxxxxxxxxxxxxx> wrote:
   > 
   > This sounds like a great project.   I have no time
   > to contribute right
   > now, but I will be watching closely.
   > 
   > You will have  to implement GTP, even  if it's a
   > layer on  top of your
   > own protocol.  It  seems like extra work for no 
   > reason, but mabye you
   > think  your new  wheel is  a lot  rounder for  your
   > purposes.   GTP is
   > designed to make it easy to  add private extensions
   > and it seem nearly
   > perfect for  an open source  MODULAR project.  GTP
   > makes  your program
   > instantly  modular with  respect  to many  tools 
   > that already  exist.
   > Whether it's your internal language  or not, someone
   > on your team will
   > be implementing it.
   > 
   > - Don
   > 
   > 
   > 
   >    X-Original-To: computer-go@xxxxxxxxxxxxxxxxx
   >    Date: Wed, 7 Jul 2004 07:15:00 -0700 (PDT)
   >    From: David Weiss <dweiss51@xxxxxxxxxxxxxxxxx>
   >    Content-Type: text/plain; charset=us-ascii
   >    X-BeenThere: computer-go@xxxxxxxxxxxxxxxxx
   >    X-Mailman-Version: 2.1.4
   >    Precedence: list
   >    Reply-To: computer-go
   > <computer-go@xxxxxxxxxxxxxxxxx>
   >    List-Id: computer-go
   > <computer-go.computer-go.org>
   >    List-Unsubscribe:
   >
   <http://hosting.midvalleyhosting.com/mailman/listinfo/computer-go>,
   > 	  
   >
   <mailto:computer-go-request@xxxxxxxxxxxxxxxxx?subject=unsubscribe>
   >    List-Archive:
   > <http://computer-go.org/pipermail/computer-go>
   >    List-Post: <mailto:computer-go@xxxxxxxxxxxxxxxxx>
   >    List-Help:
   >
   <mailto:computer-go-request@xxxxxxxxxxxxxxxxx?subject=help>
   >    List-Subscribe:
   >
   <http://hosting.midvalleyhosting.com/mailman/listinfo/computer-go>,
   > 	  
   >
   <mailto:computer-go-request@xxxxxxxxxxxxxxxxx?subject=subscribe>
   >    Sender: computer-go-bounces@xxxxxxxxxxxxxxxxx
   > 
   > 	This is to announce a new open source 
   >    Go playing program, Moyoman.  Moyoman is 
   >    implemented in Java, and will run on any platform
   > 
   >    with Java 1.4.  More information can be found at 
   >    http://www.moyoman.org, or
   >    http://sourceforge.net/projects/moyoman.
   > 
   > 
   >    Purpose: The purpose of this project is to create
   > 
   >    a program which is  rated at least 1 Dan on the 
   >    American Go Association scale.  A secondary
   >    purpose is to allow the end user to examine how 
   >    the program generates a move.
   > 
   > 
   >    Assumptions:
   > 
   >    1. It will take about 100 person years, or 1
   > million 
   >    executable lines of code to get to amateur 1 Dan.
   > 
   >    2. It is well understood WHAT needs to be built, 
   >    if not necessarily HOW to build it.
   > 
   >    3.  The main contributors to the strength of the 
   >    program will be software developers/testers, 
   >    AI researchers, and strong Go players without 
   >    programming experience.
   > 
   > 
   >    Design:
   > 
   > 	The strategy is divided up into components 
   >    called modules, which correspond to standard Go 
   >    concepts such as shape, life and death, or 
   >    the opening.  A module implements a well-defined 
   >    interface, so that there can be multiple 
   >    implementations of a given module type, and 
   >    module implementations of the same type can be 
   >    used interchangeably.
   > 
   > 	This approach allows for experimentation since 
   >    there can be multiple implementations of the same
   >    module type.  The program can play against itself
   > 
   >    with each computer player using a different set
   > of 
   >    modules, so that evaluation and testing of
   > modules
   >    can be automated.
   > 
   > 	Each module provides debugging information 
   >    which can be displayed graphically. This would 
   >    allow strong players to analyze the performance 
   >    of the program without requiring any programming 
   >    knowledge.
   > 
   > 
   >    User Interface:
   > 
   > 	Moyoman provides its own client, rather than 
   >    using a standard protocol such as GTP.  The
   > reason 
   >    for this is that each module provides debugging 
   >    information which the client displays
   > graphically.  
   >    This allows the end user to be able to examine
   > the 
   >    output of each module, and have a better
   > understanding
   > 
   >    of how the program makes its move.  This could be
   > used
   > 
   >    as a teaching tool, as well as a mechanism for
   >    allowing 
   >    strong Go players who are not programmers to
   > analyze 
   >    the output of the program and so enable the
   > developers
   > 
   >    to make it stronger.
   > 
   > 
   >    Knowledge Reuse:
   > 
   > 	There is often a tendency in projects of this
   >    type 
   >    to approach the problem fresh without considering
   > the
   >    work that has already been done.  There is a
   > great
   >    deal of work that has already been done on
   > computer Go
   >    which is in the public domain, most notably the
   > GnuGo
   >    program.  A life and death module could be
   > written for
   >    Moyoman using the life and death algorithm from
   > GnuGo,
   >    and one for shape, tactics, etc.  This would
   > provide a
   >    mechanism for bringing together much of the work
   > that
   >    has already been done into one place.  Where
   > competing
   >    approaches to the same subproblem have been
   > taken, the
   >    Moyoman program would allow them to be tested
   > against
   >    each other, or to be combined into something
   > stronger 
   >    than either approach used separately.  Developers
   > of
   >    modules using new ideas would then have a
   > benchmark to
   >    compare their work with.
   > 
   > 
   >    Strength:
   > 
   > 	Moyoman is currently very weak, even for a
   >    computer program.  It is probably somewhere
   > between 30
   >    and 40 kyu in strength.  With enough contributors
   > to
   >    this project, it can rapidly increase in
   > strength.
   > 
   > 
   >    Help Wanted:
   > 
   > 	If you are interested in contributing to this
   >    project, please visit http://www.moyoman.org or 
   >    http://sourceforge.net/projects/moyoman.
   > 
   >    Currently, we need:
   > 
   >    Software developers
   >    Software testers
   >    Technical writers
   >    Web Designer
   >    Graphic artist
   > 
   > 
   > 
   > 
   > 
   > 
   === message truncated ===




   __________________________________
   Do you Yahoo!?
   Read only the mail you want - Yahoo! Mail SpamGuard.
   http://promotions.yahoo.com/new_mail 

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