If you want to LEARN how chess engine works, what method could be better rather than building your own engine from scratch? YES, it would take years. YES, it would take a very hard work, YES, it's might be reinventing the wheel.
But you'll learn much better that way. You'll learn what actually work and what didn't. You'll make mistake and you will learn from that. Something that you cannot get by "improving" already strong engine. You'll learn what actually make a strong engine strong, and a weak engine weak.
And more importantly to computer chess, you can come with your own original idea. If you just improving already strong engine, you'll too affraid to change something that already work great. For me, what you did to Glaurung (and other derivater) is just rename xxx, optimizing xxx, that's hardly called something new.
If you read computer chess forum archive, in the past a lot of interesting idea appear. Botvinnik-Markov extension, some kind extension that related to previous moves, and many others. I have my own original idea too, none of them actually work. But who know, someday, someone will come with very original idea that can easily beat Rybka. Now, every programmer seems to just follow Fruit formula : late move reduction, extension only on PV nodes, etc. That didn't give anything new to computer chess, except a few hundred elo points improvements.
mcostalba wrote:Actually I don't know how to answer this question, I'don't know what is better to SEE, but I'm quite confident on what for me it is better to DO.Peter Aloysius wrote: Now I would like to ask, wouldn't it be more interesting to see a lot of different engines, each with it's unique strength and weakness, each with unique different playing style, each with different original idea, rather than watching a few 3000+ derivatives with very similiar playing style compete each other?
Starting a chess engine from scratch is an interesting and attarctive idea:
1) Have your name associate to an original engine
2) See your engine to grow up in elo when you add new features (mostly new for your engine, not for chess software literature)
3) Have the pride to see you engine to compete and win
Perhaps I am a bit strange, but I don't care _ANY_ of the three points above.
I have started with Glaurung just because I wanted to LEARN how a chess engine works. IMHO the best way to learn is to read the source of a well made engine. I modified a bit the source because you learn better if you rewrite (with same functionality), as for school books you learn better if you highlight or add personal notes.
The idea of writing form scratch is not attractive to me because the first two years I will probably pass the time reinventing (actually recopying) the wheel: NULL move, futility, king safety, bitboards, etc. etc. you name them.
After two years I would perhaps start with the novelities I am able to find. For me is more attractive to go hunting for new directions now, and this is possible only if you work above an already exsisting engine and more powerful and high quality is the engine the better.
I understund that people that see this activity in a more competitive way can be upset by a derivative/clone come from nowhere, that's the reason I would prefer Stockfish be dropped. It is not a competitive effort for me. It is a learning effort. On the other side a private engine suffers IMHO two strong weak points:
- Does not have the feedback from peers
- Does not have an independent evaluation/testing