Chess Engines - Cutting through the confusion Part II


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


  
   it's private   

by ChangeDetection

Introduction

In Part one, we mentioned that by sharing common protocols you can import engines to different interfaces. In this issue we will examine in greater detail the history of the main protocols ,the differences between the two protocols and what it means to the user. We will then end with a small discussion of the types of adaptors available that allow you to adapt one type of engine into another. On top of all this theory and history, a graphical guide to the use of Winboard engines in Winboard,Arena,Scid and Chessmaster is also available. Similarly, the use of UCI engines in Fritz and Arena will be covered. But first let us begin our discussion with the dominant chess engine protocol today - the Winboard protocol.

The King of the Hill

As mentioned in part 1, the Winboard protocol1 is one of the two main open chess communication protocols in use today. The Winboard protocol was first "born" (more by accident than design) in Sept 93, and has grown from strength to strength since then.

The formal name of the protocol is actually  "Chess Engine Communication Protocol" (as titled in the protocol document)  , however today it is more commonly known as the Xboard or Winboard engine communication protocol or even shorter Xboard/Winboard protocol. The name "Winboard" in the protocol,  of course comes from the fact that the idea and support for the protocol first came from Winboard which is one of the most popular chess playing clients at freechess.org. Similary chess engines that support the Winboard protocol or known as Winboard compatible engines or Winboard engines.

Today  there are almost 200 released Chess engines with Winboard support as well as dozens of free and commercial interfaces (e.g databases,FICS clients,PGN readers) that support Winboard engines.
Below is a sample of some interfaces that support Winboard engines.

Arena
Scid
Chessmaster

Some interfaces that support the Winboard protocol
Top row from left to right : Arena, Chess Partner, SCID
Second row from left to right: Chessmaster ,Chess Assistant, Chess Academy


The Winboard protocol comes in 2 "favours", Protocol I and Protocol II (released in Dec 2000 and supported in Winboard 4.2.1 and up). A small incremental change, Protocol II supports a few additional features including  the use of SAN (standard algebraic notation) , Ping Pong commands, use of setboard instead of edit etc.

From the point of the user though, the differences are not very important, as the protocol is designed to be backward compatible and most interfaces that support Winboard protocol II  will run engines that support protocol I as well2.

In terms of engines that support Protocol II, the numbers are still small (though growing) compared to protocol I. Some examples of Chess engines that support protocol I as well as II are Crafty,Comet,Yace,Sjeng etc. Generally such engines support protocol I as well, so they should work fine in interfaces with only Protocol I support3 .

As of March 2003, discussion has being going on about implementing Protocol III for almost 2 years. Among the proposed changes include the ability to define secondary time controls. Unfortunately this has not being implemented in Winboard (the interface) itself, but many others interfaces like Chessmaster and Arena have gone ahead to support secondary time controls.

A not so brief history of Winboard and Chess engines

Warning : This section is a recounting of the history of Winboard and the protocol, for those who are not interested, you can skip to the next section without missing much. In fact, this is a rehash of a much longer article on history of Chess engines protocol.   A timeline of the events below is also available.

Despite the importance of the Winboard protocol today, the birth of the Winboard protocol was purely accident. Back then, Winboard  like most programs of the time was  designed as a interface for only one engine , in this case GNUChess. However several programmers noticed that Winboard and GNUchess were separate programs and several people thought of the idea of connecting their own chess programs in place of GNU Chess. One of the first to do so was Shay Bushinsky (co-author of Junior, WCCC 2002, WMCCC multiprocessor 2001 winner and other awards), in November 1994. He emailed Tim Mann questions on how to do it, and it was from these questions that an  ad-hoc engine protocol was created. The current Chess engine protocol (which sets out the "language" all chess engines must "speak" to talk to Winboard)  is the direct descendent of that first email answer.

Why would programmers of other chess engines want to use Winboard?  One of the reasons was convenience. To many programmers the challenge of coding a chess program lay in tinkering around with the Chess playing Algorithms to get the strongest possible program. In contrast, the other parts of a chess program that involved building a interface to interact with the user (draw a chessboard, update the board, response to user input) was boring  but seen as a necessary evil. Untill Winboard came along that is. Now all they had to do was to concentrate on the chess playing portion and Winboard would provide the rest!

Another reason was that by that time Winboard had already implemented support for Internet Chess Servers (ICS).
In 1993,The Chess engine helper used in Winboard to run chess engines known as zippy, began life has a bot that merely shouted zippy the pinhead quotes. As Tim Mann recounts4 this was in retaliation for a bot , Norm which shouted  Norm Peterson lines from the "Cheers" TV show. Eventually Zippy was adapted to allow GNUchess to play online. This development made it attractive to create Winboard engines since this created a easy  way for chess programmers to subject their chess creations to the stiff online competition against unpredictable human chessplayers.

The last and perhaps most important reason why Chess programmers wanted to join the "Winboard family" was that as more and more Chess engines supported the standard, the number of engines one could test against in Winboard increased. In particular, one of the first to do so was Crafty which was acknowledged as the leading freeware chess program.  Winboard made it easy for budding Chess programmers and testers to run automated matches against other Winboard engines to gauge the strength of their creations. With a few clicks, you could leave your computer unattended, and let 2 Winboard engines bash each other up, come back a few hours later and look at the results. This was far superior to the  alternative of manual testing of course.

Crafty and Comet battle it out in Winboard.

Crafty and Comet battle it out on Winboard automatically.


Much to the amazement of the author of Winboard, the momentum of the  "Winboard movement" quickly snowballed thanks to the efforts of several enthusiasts and pioneers like Frank Quisinsky and Djordje Vidanovic (who probably started the first Winboard related sites for engines testing) who popularised Winboard among users and programmers alike. Being Winboard made pitting chess engines against each other easy, many users began to run "tournaments" and publishing their results, trying to figure out which engine was the strongest. Crafty was probably the first free Chess engine that supported winboard in '96 and by Jan '97 there were some 17 known free engines that supported the protocol, 50 by June 2000 , the 100 engine mark was breached somewhere in June 2001 and there are  over 170 (almost all free) by year end 2002.

Once the number of free Winboard engines had reached a critical mass, other commercial programs began to see the advantage of leveraging on this  phenomena, and they too made their interfaces Winboard compatible. By Feb 2000, pioneer commercial software  like Chess Assistant, Chessbase ,Chess Vision among other interfaces  had already began to support Winboard engines. The Winboard protocol's greatest success was in Nov 2002, when even Chessmaster , the world's best selling software began to support Winboard engines. At one stroke, millions of users around the world was introduced to the use of Winboard engines. The Winboard era had arrived.

Below is a graph (drawn from the work of  Gunther Simon) showing the increase in number of free Winboard engines through the years up to the end of 2002. Graph showing the increase in number of Winboard
Graph charting the number of Winboard engines over the years

The Problem with adaptors

While many other interfaces managed to support Winboard engines without any major problems, it was unfortunate that the very first commercial software to do so ran into huge controversies. In Dec 1998, Fritz 5.32 was released with great excitement. It was the first chessbase program to support Winboard engines. Fritz 5 and earlier version was already known for it's support of other Chessbase programs like Hiaracs,Junior and Nimzo (using another closed and private communication protocol - chessbase protocol) and it was expected that the  addition of Winboard support would usher in a period of unprecedented automated testing among professional and amateur programs.

This excitement was tempered somewhat by the knowledge that the use of Chess engines was strictly one way. Through the use of a "Winboard adaptor" you could use Winboard engines in Fritz 5.32 but there was no equal avant adaptor that could allow you to adapt Fritz 5 engine to be used in Winboard. Still, the opportunity to test Winboard engines against Fritz engines was an exciting one.

Unfortunately, within a month of the release of Fritz 5.32, a huge outcry erupt in both the Computer Chess Club and
rec.games.chess.computer5. Testers found that the Winboard adaptor was designed very badly and gravely weakened the Winboard engines.

The technical details are somewhat complicated,  in essence the chessbase gui sends a "new" command each turn to the engine, which makes the engine think that there is a new game. It will then resend all the moves for the game up to that point. This goes against the established protocol and for good reason since this resending of moves  weakens the adapted engine as  it loses all the information stored in the hash tables up to then. There are other serious flaws as well, but this was the major sticking point.

Despite years of debate, no one really knows why Chessbase has refused to fix this problem . Some speculated darkly about conspiracies to weaken the performance of free Engines to make their own commercial engines look better in comparison others defended Chessbase by pointing out that the engines were not weakened in analysis of positions , which was the main purpose of allowing Winboard engines to run in Fritz, i.e to allow a second opinion and it was not anticipated that users would try to run engine versus engine matches.

Whatever the reason ,this all became moot, when in Jan 2002, Chessbase while reorganising their webpages , quietly dropped offering the Winboard adaptor for download without any explanation. At the same time, rumours began circulating that with Stefan Meyer-Kahlen  (author of Shredder and Universal Chess Interface Protocol) joining the chess team, Chessbase would begin to support the Universal Chess Interface (UCI) instead. This duly happened in Feb 2002, with a update for Fritz 7.

This is hardly the end of the Winboard protocol of course, but Winboard now has a new rival.

Enough theory, show me how!

Okay, so you are not interested in all that history and theory. You want to learn how to use Winboard engines. You can find the instructions here in Using Winboard engines - a graphical guide.

This section has gone on long enough already and space restrictions do not permit me to elaborate more on other significant events in Winboard history. Next, we will cover UCI engines.





1.  Purists would no doubt insist that the correct name of the protocol is the xboard protocol or at least the Winboard/xboard protocol and accuse this site of being too "Windows specific". Technically they are right, since xboard, the unix brother of Winboard was first. But today the popularity of Winboard far eclipses that of xboard, and I shall adopt the convention of calling the protocol the Winboard protocol. It's just a name anyway.

2. As of writing March 2003, there are some teething problems in Arena with regards to supporting some Protocol 1 engines. In Winboard, sending the -protover 1 command will force Winboard strictly into Protocol 1 mode if necessary.

3.The only chess engines which I'm aware of which supports only Protocol 2 but not 1 are chess engines Mint and King of Kings (versions older than 2.0). Such chess engines might fail to work in Chess interfaces with only protocol I support.

4. Drawn from Frank Quisinsky's interview with Tim Mann

Rec.games.chess.computer  thread entitled  Fritz 5.32. How disruptive to other engines?