Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Beginner Chess Programmer

Author: Joel

Date: 09:20:30 04/30/03

Go up one level in this thread


Hey Magoo,

I started working on my chess engine some 6 months ago, and can perhaps tell you
a bit about my experience which might help you.

Someone before mentioned about going slow, and I cannot agree more. I have been
gauging the playing strength of my engine against others which you can find at
http://wbec-ridderkerk.nl/, and my guess is that a lot of the engines in the
range 90-130 have some major bugs.

My program was significantly better than the engines in that range when I only
had a beancounter evaluation and an alpha beta search with reasonable (not
exceptional) move ordering. To be precise, transposition tables, killer moves,
history heuristic and MVA/LVA to order the captures. Of course I also had a
quiescient search as well). The only extension I had back then was the check
extension. Oh, and I had a 30K opening book which probably did me more harm than
good. (too many gambits that my eval couldnt even pretend to understand :)

My NPS was nothing amazing either, around 500K on a Athlon 2100+.

Some of the engines my program was beating had all this extra stuff like
null-move pruning, windowing, SEE to order captures, bigger books, etc etc. My
only explanation for this is that they must be riddled with performance
affecting bugs.

With that in mind, go slow, and test everything _very very_ thoroughly.

Obviously there is some major problems with bits of your engine.

I would think it wise to take a step back, and turn off everything you have done
now, test each component, and slowly put all the pieces back together.

Perhaps you might want to try these suggestions:

Unless your running on a very, very old machine, your NPS is terrible. Something
in your implementation is done poorly, and should be fixed up.

Implement a "perft" command and thoroughly test your move generator. Make sure
it is working 100% before continuing.

Implement code which allows you to test different positions. You need this to do
the next part:

Once that is going, start with a minimax search. Get that working properly. Then
make it alpha beta. Get that working. Add history table, etc etc. Leave the
transposition table till last, and test that enormously - that thing has given
me some horrible bugs.

Just be thorough. I will promise you that it saves you time in the long run.

Regards,
Joel



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.