Evolution of a Go program

About the development of Moyo Go Studio, software to (help) play the Oriental game of Go. Go is a two-player zero-sum game of perfect information. It is considered much harder than Chess. Currently, in spite of enormous effort expended, no computer program plays it above the level of a beginner.

Saturday, April 08, 2006

Small Things That Make Me Happy

This is from a poll on www.godiscussions.com.
"Other" includes SmartGo, MFOG and BiGo.

I want to thank all those who made favorable comments about Moyo Go Studio on that new forum. People have been pointing out that this is just the beginning, with Moyo Go. It has been available for much less than a year. I had a day time job at the time of launch and the half year that followed - now I am working full time on it.

The most interesting aspect is the fact that I do not play Go above beginner level but this summer I will dedicate as much time as possible on study and play, to go hand-in-hand with a TsumeGo module. I will concentrate on Go problems because whatever I do in my life is subordinate to my Go programming. However much I am fascinated by the game itself, the bulk of my time should still go to more "technical" issues of supporting and building my software. This winter I bought piles and piles of Go problem books, books about TsumeGo, Tesuji, I printed a toner cartridge on Tree searching techniques and especially, I have been thinking, thinking, thinking.. Solving TsumeGo is a hard problem. I want to approach it in a novel way. Moyo Go has "stolen the show" with its pattern system, what I want is a similar "bang" with its TsumeGo solver, so that noone can ignore this software any more. This means it might take a long time before there will be a TsumeGo solver, but it will be a good one :)

A TsumeGo module, combined with the pattern system and the influence module I already have (the influence module is the fastest delta-based semi-Bouzy function I could design, it is an order of magnitude faster than Bouzy but essentially the same and uses only one iteration to calculate the force fields of influence), will be enough to start entering Moyo Go into online computer Go competitions. I have patience. My main interest lies not in Go databasing or pattern expertise, my interest lies in making the world's strongest Go program.

All this work on the current Moyo Go is just a stepping stone for a Go-playing program. Moyo Go's pattern system is intended as a Joseki library and plausible move sorter. But since I approached this endeavor as a self-funding excercise, I am growing the program organically.