is a new chess engine coming out very soon. You can download the beta version
of this engine today only. It's called Rybka, and it is a very knowledge based
You can download it from the following URL:
Here is the readme file from it's creator:
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
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.
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
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
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
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.
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
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.
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
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
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
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,
December 4, 2005
Your a Great Chess Player, but I play Great Chess.