Computer Chess Club Archives




Subject: Re: not using nullmove?

Author: Tord Romstad

Date: 09:32:55 02/15/04

Go up one level in this thread

On February 14, 2004 at 13:16:15, Christophe Theron wrote:

>What I have always tried to do is to hide the details of what's inside Chess
>Tiger (in order to protect my work a little bit) but still explain what my
>methodology (or work philosophy) was (in order to somehow give back to the
>I think it's important to have strong guidelines in your work. Some of them come
>from your knowledge of information processing in general (be careful not to
>create bugs, don't waste resources, never trust Microsoft...), and some of them
>are specific to the domain of chess programming and took me years to figure out.
>For example:
>* don't compute something in advance if you are not sure you will use it,
>because chances are that you will get a cutoff before you need it (remember it's
>just a guideline - sometimes you can break this rule).
>* you need a very accurate way of measuring progress, or you will not make
>progress at all.

Yes.  Measuring progress is the biggest problem of all, once your engine has
reached a certain level.  I am very frustrated and confused about the strength
of my latest development versions right now.  I have three different versions,
and version A beats version B, version B beats version C, and version C beats
version A.  In all cases, the winning margins are clearly statistically
I have no idea which version is the strongest, of course.

>* Any change can make your program significantly weaker. You need to test your
>changes (with the method you have built) very often.
>* People believe that chess is about evaluation, but actually it's all about
>search (I'm trying very hard to break this rule, because it must be wrong from a
>mathematical point of view, but it's really difficult).

Here I agree with Martin.  The evaluation function is my main tool for shaping
the tree, and improving the eval usually also improves the speed and
accuracy of the search.

>* ...
>And the last one, maybe the most important:
>* It's very unwise to believe that I have understood the essence of chess
>programming. Therefore, all I know about this domain can be wrong, including the
>above guidelines (but not this one)!


>What you say about my posts being vague is interesting. If I told you what I do
>in Chess Tiger:
>1) over the years, maybe all you would create is a Tiger clone.
>2) where would be the fun for you?
>3) how would you get a chance to invent new ideas and to push the limits of our
>field if you were busy implementing my ideas?
>I see many people busy studying the Crafty source code and spending a lot of
>time improving the speed of their bitboard stuff. I think they are wrong and
>they will go nowhere.

I think so, too.  Personally, I conciously try to make my engine as different
Crafty as possible.  Bob is a much better programmer than me, and if I tried to
copy his ideas I would just end up with a very inferior version of Crafty.  The
only way for me to create a reasonably strong engine is to do something entirely

>Computer chess needs a revolution. Chess programs at this time are just big
>calculators (mine included). It works, but it is so different from the way human
>players think that there must be a much better way.
>The wheel needs to be reinvented.

Fascinating stuff.  I agree about most of what you write, but at the moment
I don't have any clear idea about how to reinvent the wheel.


This page took 0.01 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.