Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How long to build your chess engine

Author: Tord Romstad

Date: 12:09:50 01/06/04

Go up one level in this thread


On January 06, 2004 at 13:44:08, Russell Reagan wrote:

>On January 06, 2004 at 13:34:31, Tord Romstad wrote:
>
>>This is *way* too pessimistic, IMHO.  Writing a top engine is of course
>>an enormous task, but creating something that plays legal and mostly
>>sensible moves is only a moderatly complicated task.
>>
>>If you know the basic theory when you begin, writing a simple engine
>>should take something like a couple of months in a low-level programming
>>language like C or Java, and a couple of weeks in a high-level language
>>like Lisp.
>
>If you don't worry about the speed of your program at first, you can get
>something up and working that plays sensible moves very quickly. I know this
>from first hand experience. I've wasted years trying to write the absolute
>fastest code :)
>
>Do yourself a favor (the original poster), and don't worry about how fast your
>program is at first. Worry more about learning how game playing algorithms work
>and implement them and experiment with them. Once you become familiar with this
>stuff, you can learn some clever methods for how to do things efficiently and
>make your program fast, and you can probably rewrite your program completely in
>a very short time (a few days or weeks, depending upon how much time per day you
>can spend programming).

This is very good advice.  Almost all beginning chess programmers (including
myself when my engine was very young) overestimate the importance of speed.
In fact, I would claim that there is no reason to spend much time on
low-level optimisation before your engine is within 100-200 points of the
top engines.  Before you reach that stage, there are much easier ways
to improve your engine.  It is much better to concentrate on implementing
and tuning chess knowledge and on improving your search.  Making your
engine 50% faster (as measured by nodes/second) without sacrificing
knowledge, portability, readability or ease of modification is usually
really hard.  Improving the average branching factor slightly is much
easier (in the early stages of development), and also much more effective
(because the improvements are exponential rather than linear).

Sometimes I even feel that incompetence is an advantage when doing computer
chess programming.  When you don't know how to program, you are forced
to focus on high-level stuff, which is where the greatest scope for
improvement is found.

Tord



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

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