For SnailChess, if the excitement of getting close to Rybka ever come, it's rating is 700elo.I wonder how many of you have had the same frustrating experience as me.
When i started writing my engine, Pupsi, it was steady improvements for roughly a year and a half! It was wonderful! Thrilling! Exciting!
If Pupsi is at about elo 2500 - 2550, then my comments below would not be for you.
I) There is no secret in writing a chess program of GM level, say 2500, as there are open sources like Crafty, Fruit, Glaurung, Slowchess etc.. so in this sense it is very easy. The difficult part is only the coding.
The significant parts of a chess program are:-
Search
=====
1) root search
2) full search
3) QS
4) move ordering
5) transposition tables (or + pawn hashing)
6) null move
7) SEE
8) extension, reduction, pruning ,etc
Evaluation
======
whatever.
Hypothesis:- if everything above is "well done" and follow what are conservatively recommended, the program will have about and elo of at least 2500.
1) If each of the above 8 parts of search are implemented less than "optimal", and with simple assumption:-
3% penalty,Final Strength = 0.97 ^ 8 x 2500 = 1959.
2% penalty,Final Strength = 0.98 ^ 8 x 2500 = 2126
What if pupsi does not have SEE! ( x 0.95)
What if evaluation means a multiple of 0.9 to 1.12?
2500 * 0.9 = 2250
2500 * 1.12= 2800
At least such calculations show how badly bugs may kick in! Or whether evaluation is critical.
2) testing search - if we can do a cut and paste graft of Crafty's evaluation into our program and just play it against Crafty, it is almost a certain test of an engines's search. I think it is rather difficult and I have not found a way to do so.
3) testing evaluation - this part should be simple. We graft our evaluation into Fruit and then it would be crystal clear if it is ok.
Best Regards,
Rasjid