gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] Go


From: bump
Subject: Re: [gnugo-devel] Go
Date: Fri, 7 Jan 2005 06:17:04 -0800

> I was just interested in how long it took you to
> develop the first version of Go (i.e. approx how many
> hours total).
>
> Also, how much manpower did you have at the time?
>
> Sorry if my questions are a little too personal.  I am
> interested for the purposes of estimating how much
> time is put into creating such a program.
> Thank you for your time and I look forward to hearing
> from you.

What do you mean by ``the first version of Go?''
Here are the contents of GNU Go 2.4 AUTHORS:

> The author of GNU Go 1.2 was Man Lung Li. This program is derived
> from his work.
> 
> GNU Go 2.0 was released in April 1999. Its authors were Daniel Bump
> and David Denholm.
> 
> GNU Go 2.4 was released in September 1999. Authors of GNU Go 2.4 are
> Daniel Bump, David Denholm, Jerome Dumonteil, Nicklas Ekstrand, Gunnar
> Farneback, Nils Lohner, Douglas Ridgway, Tommy Thorn, Thomas Traber,
> and Inge Wallin.
> 
> Douglas Ridgway contributed the CGI html interface in interface/html.

There was an existing GNU Go written by Man Lung Li and
Wayne Iba between 1998 and 1995, which were the release
dates of GNU Go 1.0 and 1.1. You'd have to ask Man Li
about that.

Although we started with GNU Go 1.1, little of the
original program is recognizable in GNU Go 2.0. The
main idea of GNU Go 1.1 was a pattern matcher, and
this was changed by the addition of a graphical
pattern database. 

GNU Go 1.2 patterns look like this:

pattern 1: 230   connect if invaded
           012
*/
   {{{0, 0, 2},
     {0, 1, EMPTY},
     {1, 0, 3},
     {1, 1, 1},
     {2, 0, EMPTY},
     {2, 1, 2}}, 6, 8, 82},
/*

GNU Go 2.0 patterns look like this:

# pattern 21

|??.??
|...*.         hane if attached
|..OX.
|.....
|...X.

:8,82,0,0,0,0,-,0,NULL

The 2.0 database looks like the modern one. GNU Go 2.0
added a pattern compiler which made it possible to add
patterns quickly. While 1.2 has 24 patterns, GNU Go
2.0 has 751. It also has ancestral dragon.c and
reading.c. It could read ladders at least.

GNU Go 2.0 was written between October 1998 and April 1999
by myself and David Denholm. The project was started by
me. I called the project Liberty but Jan van der Steen
leaned on me to change the name because he had written an
sgf editor by the same name. There is still a file called
liberty. The program was solicited for the FSF by Stuart
Cracraft and became GNU Go.

A similar project called Baduki was developed by
a single person Lim Jaebum around the same time.
GNU Go and Baduki were tuned in friendly competition
against each other.

Gunnar Farneback and others started working on the project
near the end of the 2.0 release. We weren't actually able
to open up the project for others until David Denholm's
employer signed a copyright assignment to the FSF. For
this reason there were about 3 months when we made no
releases but developed the program in secret. Finally
the copyright assignment came through after David found
the right paralegal to lean on and we started publicizing
our code. I suppose it is OK to tell this story since
he works for a different company now.

I think Gunnar started with us around March 1999 and
contributed a few patterns to GNU Go 2.0. Basically, 2.0
was developed by two people, David Denholm and
myself. (You may say that I learned C programming from
David Denholm though I never met him in person.)

After 2.0 in the summer of 1999 it became a major
effort. Gunnar became a big contributor.  In
addition to Gunnar, Inge Wallin, Jerome Dumonteil
and Tanguy Urvoy were major contributors.  Nils
Lohner got us started with autoconf.  GNU Go 2.4
came out in September 1999 and was a lot stronger
than 2.0. It added dragon.c and tried to
understand life and death by static analysis.

After 2.4 we made a fork, and I maintained the 2.5 line
leading to 2.6 while Gunnar maintained the 2.7 line
implementing a lot of the features of modern GNU Go.
I think 2000 is the year the program really took shape.
The owl code (originally called mouse.c), influence
code, gtp and other features were added in 2000.

Gunnar was the main author of the 2.7 line.
He had a lot of help. By 2000 a lot of people
were working on the project, like Teun Burgers
and Trevor Morris. It took about a year to write
GNU Go 3.0.0. Arend Bayer and Paul Pogonyshev
came later but they can also be considered main
authors of GNU Go 3.4 and 3.6.

Dan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]