Computer Chess Club Archives


Search

Terms

Messages

Subject: Rybka Read Me File

Author: ludicrous

Date: 02:02:08 12/05/05


Rybka v 1.0 Beta Readme
Dec 4, 2005


Thanks for agreeing to become a beta taster for Rybka 1.0. Rybka is a standalone
UCI chess engine which can be installed and run in any chess graphical front-end
which supports that protocol. If this last sentence is cryptic to you, it is
probably better that you wait until the fully documented and user-friendly Rybka
1.0 release in the middle of December 2005.

Brief Engine Specs

History: The Rybka chess engine began as a part-time project in March 2003 and
is now being developed full-time.

Aims: Rybka aims to have a fully knowledgeable evaluation function. This term
however has taken some abuse recently, so let me make something clear: chess
knowledge wins chess games. If it doesn't, it isn't knowledge.

Opening book: Not supported. An internal engine opening book contradicts my
sense of the proper separation between the database-oriented graphical front end
and the engine. However, if enough people scream for this, well .. :)

Winboard support: Ditto - not supported. This protocol contradicts my notion of
what an engine should do. However, if enough people scream for this ... :)

Endgame tablebase support: In principle, this also slightly contradicts my
notion of what an engine should do. Chess strength comes from themes and
principles, not memorization. However, enough people have screamed for this and
so endgame tablebases will be supported in the full Rybka 1.0 release.

Multi-processor support: Not present in Rybka 1.0, but at the top of the to-do
list for the next release. The emphasis will be on running smoothly on the
affordable multi-core desktop machines which are revolutionizing the personal
computer world.

Beta Distribution

We ask that the beta releases not be circulated except in cases where special
permission was given, as it was for example to all of the members of the CEGT
test team. Those interested in becoming beta testers are asked to please contact
us directly to get a copy.

Release Dates

Dec 2, '05: windows 64-bit Rybka 1.0 Beta
Dec 4, '05: windows 32-bit Rybka 1.0 Beta
Dec 16, '05: Rybka 1.0

64-bit & 32-bit releases

Rybka 1.0 represents the internal chessboard using bitboards - one bit for each
square on the board. Bitboards are nothing new - they date back to publications
from the Soviet Union in the 1970s - and the topic is a source of endless
discussion on the computer chess message boards. After 30+ years, we still have
no idea if bitboards are the most efficient way to represent chess knowledge.

For the users, there is one serious practical effect: like other bitboard
engines, and unlike non-bitboard engines, Rybka runs significantly faster on
64-bit systems than on 32-bit systems. For example, the following are the knps
rates for the two versions of the engine on my own test position sample on a 2.4
GHz Amd-64 machine:

32-bit Rybka 1.0 Beta: 104 knps
64-bit Rybka 1.0 Beta: 166 knps

This difference in speed should result in a difference in strength of between 25
and 50 rating points. I believe that it should be relatively bigger at shorter
time controls, and relatively bigger in sharper openings (ie. Sicilians) rather
then in more strategic openings (ie. Nimzowitch, French). The computer chess
community does not have very good data about this topic and I would be very
pleased if some testers investigated it further.

Testers are also of course free to decide for themselves how (if at all) to
distinguish these two different playing strengths.

User Features in Full Release

The Beta releases are missing several features which will be present in the full
release. These features are related to user friendliness and have no effect on
practical playing strength, so it is appropriate for Rybka 1.0 Beta versions to
represent Rybka 1.0 in rating lists. These features include:

1) Full support of UCI protocol ("go nodes", "go mate", "go searchmoves", etc)
2) Multi-variation mode
3) Tablebase support (I should say that it is only my personal opinion that
tablebases are not a playing strength feature - others may disagree)
4) Proper handling and reporting of mates

Beta Testing

In practice, Beta testing usually means Beta using. It certainly has meant that
in my experience as a Beta tester :) Nevertheless, we are interested in all
kinds of feedback. In particular, we are interested in:

1) Testing under all sorts of different conditions - different operating
systems, different machines, different GUIs, against different opponents,
playing on ICC or playchess, etc.
2) Statistically valid game-playing results, again under all sorts of different
conditions.
3) Comments about playing style or strength or even better, annotated games,
potentially for use on our web site (which is under construction).
4) Feedback about the "search direction" option, see section below for more
details.

Closer Collaboration?

We are also interested in finding chess and computer chess fans who would like
to participate more closely in our project. There are a number of possibilities
in this direction:

1) Opening book creation.
2) Official operation of Rybka in in-person and online tournaments.
3) More serious and technically open testing of Rybka versions and changes.
4) Porting of the engine to other platforms.

Please contact us if you are interested in any of the above.

I should also mention one other thing: we are planning to expand the project to
include a GUI which can properly display Rybka's chess knowledge. This will
probably also involve expanding the UCI protocol - but that's all another topic
for another day. In general I prefer to work with people I have worked with in
the past, under deadline pressure, etc. Nevertheless, if you are a talented
software developer with an interest in computer chess, don't hesitate to get in
touch with me.

"Search Direction" UCI Option

In general, chess strength is chess strength - each component of an engine
either makes it stronger, or weaker. At this point, it appears that there is one
potential exception to this in the case of Rybka, so I have decided to make it a
user option. The name of the option is "search direction", and there are four
possible settings:

1) Very Positional
2) Slightly Positional
3) Slightly Tactical
4) Very Tactical

The default setting is very positional. This is the version which I like the
best personally, and the setting also makes the most sense to me intuitively. It
vibes with the way I think search should be handled and where the priorities
should be placed. In addition, a 350 game head-to-head match at 40/10 time
control gave the following result:

Rybka 1.0 (Very Positional): 193.5
Rybka 1.0 (Very Tactical): 156.5

However, the very positional version gives slightly inferior results on tactical
testsuites. On a private tactical testsuite which I use, I got the following
result:

Rybka 1.0 (Very Positional) was faster: 11
Same depth: 30
Rybka 1.0 (Very Tactical) was faster: 56

Of course, tactical testsuites are a dicey business, but the above is a
significant result and it also agrees with my intuition regarding what should
happen. (That's why I use the names I use for these versions.)

In addition to these tests, each version also played a 150-game match against
Shredder 9. I'll keep the exact scores secret (that's what testers are for), but
the very tactical version scored 2.5% better than did the very positional one.
This itself is not that impressive for a 150-game match, but given the
head-to-head result, it does raise some questions. The most likely explanation
is that more games would flatten this phenomenon into nothing, but one could
also theorize that Rybka is relatively better positionally than Shredder anyway
and any tactical weakness just opens the door for Shredder's powerful search. If
so, it might further turn out that this phenomenon is limited to games at
relatively short time controls.

If any testers out there are looking for a more interesting project, getting to
the bottom of this would be extremely interesting for me.

One more note here: the intermediate "slightly positional" and "slightly
tactical" settings are almost completely untested by me - no games were played.
They represent two more neutral settings between the two tested extremes. There
are actually two separate quantities being adjusted internally, so "slightly
positional" goes to the tactical extreme on one and the positional extreme on
the other (bigger) one, and "slightly tactical" is vice-versa. Hence, it might
be that one of these two settings ends up being a sort of magical median -
although I doubt it.

Special Thanks

I hesitate to include this section because I know I'll forget people who have
been helpful in this project, but (with advance apologies to the omitted) here
goes:

Robert Hyatt - For Crafty. There is nothing like an open source program for
passing knowledge to the next generation.
Fabien Letouzey - For Fruit, which shattered a number of computer chess myths,
demonstrated several interesting ideas, and made even the densest of us aware of
fail-low pruning.
Tord Romstad - For making Fabien aware of fail-low pruning :-), and more
seriously for sharing in every way possible his considerable knowledge.
Eugene Nalimov - For his cryptic but somehow fully functional endgame tablebase
access code.
Uri Blass, Gerd Isenberg, Dieter Burssner, Vincent Diepeveen, Raschid Chan,
Anthony Cozzie, Mridul M* :), Thomas Gaksch, Peter Berger, Sandro Necchi, Ed
Shroeder, Amir Ban, Christophe Theron and every one else, past and present, on
the computer chess club: For sharing their computer chess knowledge despite the
fact that in principle computer chess is a competitive field.
Heinz van Kempen, Guenther Simon, Olivier Deville, Sergio Martinez, Claude
Dubois: for testing early versions of Rybka despite countless bugs and annoying
problems.
Alex Dumov, Gabriel Luca: for helping a Windows newbie get up to around
half-speed without excessive derision (or at least open derision :))
and Iweta: for being great! :) and a pretty good Rybka tester and web master to
boot

Happy testing, and best chess regards,
Vasik Rajlich
Budapest Hungary
December 4, 2005



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.