[computer-go] Collaboration project. Once again
Mark Boon
tesujisoftware at gmail.com
Wed Aug 2 06:16:55 PDT 2006
OK, here I go again. Slowly I start to get more time to do some
actual work at my computer. My office is still not ready yet and I'm
limited to 19Kbs-26Kbs dial-up internet, but those things will change
in the weeks to come. It's hard to concentrate on work when doing it
in the living-room with the little one crawling around. I'm getting a
little frustrated with my inability to do work for a much longer
period than I had planned, but I'll get there eventually.
I've also had little time to pursue capitalizing on my mobile version
of Goliath. I've had a few tentative contacts, but nothing
substantial materialized yet. So far the best option seems to be to
sell Goliath outright, including source-code in C and Java and any
intellectual property related to it. It would make a powerful move-
generator for any Go program, but I think its main worth would be as
a commercial application for mobile devices. I discussed this
possibility with a former business relationship, but I don't think
I'm getting anywhere with them. I feel it should be easy to find a
buyer somewhere in the Far East, but at the moment I don't feel like
making trips there for this purpose. The reason I find this
possibility tempting is that if I make a decent chunk of change on it
it would be more than enough to fund the project I'm currently
thinking of. The project I'll describe shortly. In the meantime, if
anyone would know of a party that would be interested in such a deal
I'd very much appreciate to hear it. I offer a 10% finder's fee to
anyone who brings me in contact with someone I close a deal with. 10%
of what I expect to be at least a six-figure amount should be
worthwhile for some to check their address-book?
My previous call for interest in a collaborative project has
sollicited a few responses. I think I can fairly say these were in
two categories: people with limited time freely offering their help
and people who are interested in exchanging ideas but who want to
pursue their own commercial project privately. Each group comes with
its own limitations with respect to collaboration. So I had to think
clearly for myself what I actually wanted to do and what I wanted to
accomplish with my project.
In the long run I think it only makes sense if my work results in a
new playing program. Such a program would have considerable
commercial value, but if I want to commercialize it it will be hard
to set up a good collaborative environment. But a playing program is
many years away, so commercialization is not an immediate concern of
mine, nor is finances. In spirit I very much like the idea of a GNU
Go project. But there are a few things that stand in the way of me
joining that project. A small reason is the C language. A bigger
reason is that I don't want to butt into that project knowing the
stubborn, opiniated, know-all smart-ass I can be and piss everyone
off that is currently involved in it. The biggest reason however is
the GNU license. Maybe someone with an academic position can afford
to work on a non-profit project for a long time, but generally I
think smart individuals should be able to profit financially from
their work and their clever ideas if you want to keep them involved
for years to come.
So what it boils down to is I want to do a completely free open-
source project. Free in the sense that anyody is free to take from it
and use any which way they see fit, whether it's for commercial
purposes or not. The only way it's not free is that initially I'll be
the only one deciding what will go into the project. But I'm sure
over time that will change too when others start to contribute
substantially. So what is it I'm planning to do?
What I'm planning to make as an open-source project is a position-
evaluation framework. There are many important parts in a Go program.
But central to it all, and the most differential, is the evaluation
module. Every accomplished programmer can make a good PN-search,
alpha-beta search, pattern-matcher, joseki library and more such
things. But the hard part is doing evaluation. Whether it's
evaluation of a life-and-death position or the evaluation of a board-
score. This is the area where I think current playing programs are
still severely lacking and where a lot of playing strength can be
gained. It's also an area where today much more is possible than one
or two decades ago using today's computing power. Yet I think there
are few projects or programs that really focus on this area. I think
GNU Go may be the only exception to that, anyone please correct me if
I'm wrong here.
I'm calling it a 'framework' because it's going to be designed so
that it will be very easy for others to slot in their own modules
that will enhance the evaluation. At least I hope it will be easy, as
that way I think I can attract people to try out their own ideas and
add them into the project. Also the purpose of the evaluation isn't
going to be completely fixed beforehand. By building in enough
modularization and flexibility I hope to accomplish a situation where
it will be easy to mix and match modules into evaluating for a
specific purpose. The two obvious ones are evaluating a board-
position to compute a score or positional value and evaluating the
status of groups. But hopefully, as the project progresses, different
purposes will be found later.
I don't have completely worked out yet how I'm going to realize this
project in practical terms. I'm still in the thinking stage and would
very much like to see input fom others and see if there's any
interest in such a project.
Expect more posts about this in the weeks to come. My hands are
itching to finally get started on something.
Mark Boon
More information about the computer-go
mailing list