gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] interested in helping GNU go


From: Gunnar Farnebäck
Subject: Re: [gnugo-devel] interested in helping GNU go
Date: Sun, 27 Nov 2011 23:43:18 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111114 Icedove/3.1.16

On 11/23/2011 12:11 PM, Joe Lee wrote:
Hi.

I heard a lot of good things about the GNU Go program for a while now
(maybe a couple of years?? wow!). Personally, I'm a 1 Dan go player and
also an experienced programmer. I have also worked with AI algorithms as
well as framework-based and engine-based projects. If anything, I could
do some documentation, test for bugs and provide feedback, and do some
coding contributions myself (after I become comfortable with the GNU Go
framework). I would love to contribute to the project, especially
because I enjoy Go and because I have an engineering/programming background.
*What do I need to do and prepare to get started? Thanks!

The development has admittedly been rather slow the last few years so fresh contributors would be most welcome.

To get started with the code I recommend first digging into board.c for the central board logic code. Then the rest of the core board stuff making up libboard in the build, hash.c, boardlib.c, and printutils.c.

After that it's instructive to study the low-level tactical reading code in reading.c and see how it interacts with cache.c and persistent_cache.c.

Next a good place to enter is genmove.c, which in turn calls functions in worm.c and dragon.c to build up the internal representation of the understanding of the board. This also involves more advanced reading functions in owl.c, readconnect.c, and semeai.c plus a lot more.

To see the whole chain of code the main function is in interface/main.c, which in turn calls different playing interfaces, of which interface/play_gtp.c is the most important. The latter is also the basis for the regression testing in the regression directory. The regressions can be run in several ways but most features are in the regress.pike script.

However, the most important part of the code when it comes to potential for gaining playing strength is in montecarlo.c. Today Monte Carlo techniques are the key to a strong go program and GNU Go has quite a bit of catching up to do.

An important part of the development infrastructure is the http://trac.gnugo.org site.

Welcome.

/Gunnar



reply via email to

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