Chess Engines - Cutting through the confusion Part II


Home |Articles | Links | Guestbook| Chat | Bookmark|
Monitor page
for changes


  
   it's private   

by ChangeDetection

The UCI challenge

As mentioned in the last section , Chessbase began supporting the UCI protocol in 2002. Why did the company choose to do so? Before understanding this question let us take a closer look at this protocol. The UCI protocol was born on Nov 28,2000. It's authors were  Stefan Meyer-Kahlen  and  Rudolf Huber.

Like the Winboard protocol it was free to use without license fees. UCI's  main advantage was that it was a new protocol built from the scratch, and.Winboard on the other hand was constrained by the need to keep new versions of xboard working with old versions of GNU Chess, to make it easier to compare the play of old and new gnuchess versions. and Tim Mann didn't "foresee the need for a clean protocol to be used with other chess engines in the future." This Tim Mann explains " so the communication protocol is very ad-hoc" It was built on a totally different principle from Winboard protocol. Unlike the latter, UCI was a stricter protocol that closely monitored the actions of the engine.

However, while Winboard protocol itself had a ready made user base due to the popularity of Winboard as a chessplaying client, there was no equalavant for UCI.  At that time, the only interface that supported it was the commercial Shredder 5.

Initially support for UCI was poor. There was only one UCI interface and it was commercial and less then a handful of engines supported UCI compared to the hundreds that supported Winboard. This greatly reduced the benefit of implementing UCI.  A programmer who took the plunge and implemented UCI into their engine, would find that it was mostly pointless (leaving aside the fact that you had to pay to get the UCI interface because the only one was commerical), because few other engines could support UCI, so this meant fewer engines to spar against. It was kind of like being the first person on the block to get a phone, who could you call?

It was a classical Chicken and Egg problem, No one would support the UCI protocol in their interface because there weren't enough UCI engines to make it worth the effort. On the other hand, no one felt the need to implement UCI for their engines because there was not enough user demand because only 1 interface supported UCI. However  when Fritz 7 started supporting UCI, in Jan 2002, it gave the UCI protocol a big boost., since by supporting UCI and dropping Winboard support (which was buggy anyway) it's bought in a established  pool of chessbases users who became UCI users overnight.


                                                 Create UCI dialog box in Fritz

Dialog box for importing UCI engines into Fritz.

With this deadlock broken, many chess engine programmers began to support UCI as well as Winboard, because supporting UCI was the easiest way to import their engine into Chessbase without problems (compared to using the Winboard protocol anyway). 


 
Number of UCI engines (free and commercial) released since Dec 2002

The growth of UCI engines has being rapid since then. It took about 24 months (Nov 2000 to Dec 2002)  for 12 UCI engines to be released but  in slightly over 12 months (Feb 2002 to March 2003), there are now 40 UCI engines!  Websites have also sprung up supporting UCI engines,such as this excellent one by Alex Schimdt (notice the similarity to sites listing Winboard engines by Thomas Mayer and Leo) which maintains lists of all UCI engines.

 

Which protocol is better?

This is a highly technical question that I'm not qualified to answer.But here are some statistics.
   
Protocol Winboard Universal Chess Interface "Chessbase"
Date established About 94-95  Nov 2000 97/98?
Source Engine.inf, no licensing required UCI technical documentation, no licensing required Not available,closed protocol
Author Tim Mann Rudolf Huber and Stefan Meyer-Kahlen Frans Morsch?
Free Chess Engines  More than 150 About 35  Free native compiled winboard engines (Comet,Crafty,Goliath,Exchess, Faile,Inmichess,List etc)
Commercial Chess Engines  Gandalf,Nimzo2000,Patzer,Lampchop,
 Capture,The King (Chessmaster), Sjeng
Shredder 5/6/7, SOS ,Sjeng Patzer,Capture,Gandalf,Lambchop Fritz,Junior,Shredder , Tiger, Nimzo,Hiracs,List, Anaconda,Crafty,Comet, plus "Young talents"
Notable commercial interfaces Chessmaster 8000+,Chess Assistant 6, Chessbase gui (but see later) and more Shredder 5/6 , Chess Assistant 6/7 and Fritz 7/8 Fritz, Hiracs,Junior etc
Date established About 94-95 2000 ?
Others NA Support multi-variation mode (Chess engines can show top 2 or 3 lines) Winboard engines are weakened using adaptor

There are also certain number of features that may make UCI easier to use. Due to the UCI design, it is possible to set up the configuration of standard options (eg hash tables, endgame tablebase files etc) for all Chess engines at one go. This is compared to the Winboard protocol , where usually you have to set up each engine individually.

For a more in depth  discussion about the possible future of Winboard versus UCI. refer to my article on UCI versus Winboard.

Still some chess engine authors have began to support both protocols, mainly because the UCI protocol is designed to be easy to convert from the winboard one. Yace for example has both a UCI and winboard mode and is supported in the same exe file. Others like Gandalf,Anmon supports both protocols, but a different exe file is needed.

Adaptors

So what happens if the interface and the chess engine you want to use does not share the same protocol? In such cases, you will have to use the adaptors. Adaptors can be seen as "translators" which convert the commands sent by the chess engine to the interface (and vice versa) from one language to another.

Some of the adaptors that are available come with the Chess interface eg (ucitowb available with Shredder classic) others are free for download from the company's site and others are third party extensions. In the next article, I will share some tips on when and how to use articles. For now though let me introduce you to the most important adaptors known to me

UCI to Winboard

Winboard to uci

Winboard to chessbase adaptor

As of Jan 2002, it is not available on the chessbase site. Note as far as i know fritz 7 (and prior versions up to and including Fritz 5.32) still work with the adaptor.

It is well known that the adaptor for winboard engines is flawed such that winboard engines will be greatly weakened when used to play games (but probably not in analysis). The technical details need not concern us, but this flaw is of great importance when you want to play engine versus engine matches.This does not apply chessbase natives of course.

Because of this problem,if you are using fritz 7 (that supports UCI) , you might want to use the UCI mode (if available). See later

Note: Some other less common adaptors include Chess genius's Wbkonvertor and Shredder's  Classic's wbadaptor which are needed before you can use Winboard engines. It's unclear what the winboard engines are being adapted  into (another native closed protocol??, or just some tiny adjustments to make winboard engines run better in the interface?).

Conclusion

We have come to the very end of this long article. In the next article , we will focus on the art of using  adaptors.