The Shredder chess program for Linux

Virtual Master


Shredder 9 promises world championship chess on your home computer. We took a look at the new Linux version of the famous Shredder chess tool.

By Mirko Albrecht

www.sxc.hu

Bits and bytes are now a common part of the chess world: big-iron mainframes can even force a tie out of a grandmaster, and world champions like Gary Kasparow use chess computers to "do their homework."

In the past, Linux users who were interested in playing chess had fewer options than Windows users, and most of the available Linux chess programs assumed a fair amount of technical prowess (see the "Linux and Chess" box). The arrival of Shredder 9 for Linux is a great new opportunity for Linux users to explore the possibilities of computer chess.

Linux and Chess

A number of engine-only chess resources exist for Linux (see the "Chess Engines and GUIs" box) - first and foremost, what is probably the most powerful open source program, Crafty [2] by Professor Robert Hyatt. The program typically loses out to commercial competitors in the world rankings, although it has secured a place in the top 40.

The other engines are fair enough for a quick game, but not suitable for serious tournament competitors due to the lack of analysis features.

Things become even worse when you look at the GUIs. Most GUIs are restricted to giving you a visual chessboard, so you don't have to play a blind match against the computer.

The Scid [3] chess database is a welcome exception to the rule: it's feature-richness make it a genuine alternative to commercial Windows programs. However, Scid is not suitable for competition games, as it does not have a timekeeping feature. The Knights program for KDE, and a few other GUIs, have this ability, but have nothing in the line of analysis or database functionality.

José Chess [4] is a Java program that is worthy of note. The program has an option for adding openings. José Chess is probably the most promising candidate of all future open source chess GUIs at the present time.

Chess Engines and GUIs

The chess engine is the core element of any chess program; this is where the game playing intelligence resides. A GUI that gives you a graphical representation of the board, and visualizes the game, is needed to help you control the engine. The most popular engines for Linux include Crafty, Phalanx, Gnuchess, and older versions of Sjeng and Fruit. Linux GUIs include Knights, Xboard, José Chess, or Scid.

Two different protocols are available for integrating an engine with a GUI: the WinBoard compatible protocol, and the Universal Chess Interface UCI - the latter is by Shredder developer, Stefan Meyer-Kahlen. Most engines and GUIs from the open source scene simply support the WinBoard compatible protocol. More recent GUIs, such as José Chess, support both WinBoard and the UCI. The Polyglot [5] interface helps you integrate UCI engines with WinBoard compatible GUIs.

The Power of Three

In the Windows world, the Shredder 9 UCI engine is the undisputed reference application and a leader of all major world rankings. Shredder has won ten computer chess world championships, and the Shredder Classic interface is regarded by chess experts as one of the most clear-cut and sensible GUIs on the market. Chess engine progammer Stefan Meyer-Kahlen recently set off to diversify his empire by creating Linux and Mac OS X versions of Shredder 9.

In October, Meyer-Kahlen starting selling the Linux and Mac OS X Shredder counterparts on his homepage [1]. In all, you will find three versions of the Shredder computer chess application: the starter version, Shredder Classic Linux, costs US$/EUR 29.95 and comes with the slower Shredder Classic engine. The mid-range Shredder 9 engine will set you back US$/EUR 49.95, and Deep Shredder 9 for Linux, which gives you more performance on SMP or multicore computers, comes at a cost of US$/EUR 99.95.

All three versions come with the Shredder Classic GUI and are available by download from the Shredder website only. The site does not offer boxes with media and manuals.

Stefan Meyer-Kahlen wrote the engine in C and compiled it directly for Linux. The engine runs natively, but it is slightly slower than its Windows counterpart, according to the vendor. This is due to less than perfect GCC optimizations, says the developer. Java was used for the GUI, probably to support versions of Shredder 9 for Mac and Shredder 9 for Linux without having to reinvent the wheel.

Setting Up Shredder 9

After purchasing Shredder 9, a mail message with a registration number and link to the Shredder 9 download is sent to you. The download is a 4 MB tarball. After untarring, you can launch the program by running the accompanying start script, Shredder9 - assuming you have a working Java installation, version 1.4 or newer.

On launching the program, you are prompted to select a language and then restart. The program comes up with a tidy GUI, which is divided into four panels. These panels are the windows for the chess board, a clock, the game status, and the engine area (Figure 1).

Figure 1: The Shredder interface combines chess board, clock, game protocol, and engine controls in a single GUI.

After a few moves, you might notice that the GUI is a bit sticky. On our lab systems (Athlon XP 1600+; Intel Centrino 1.5 Mhz, both with 512MByte RAM) the GUI reacted very slowly. An update promised by Stefan Meyer-Kahlen last November removed most of the original GUI version's worst bugs, such as disappearing pieces, but this update failed to bring the GUI up to speed.

TIP

The board in Figure 1 shows a well-known checkmate problem: black is looking to convert his pawn, which has advanced well up the board, to force white to concede. It's white's turn. Do you see a way out of this tricky situation?

Missing Features

Many features offered by the Windows version of Shredder are still missing from the Linux version. Although large online endgame databases exist, the Linux version can't connect to them. And the Linux version also lacks many of the clever analysis options available to the Windows version.

The program's game database does not let you search for games by position and stops at 2000 records, which prevents serious use, considering that hundreds of thousands of games are quite normal. Although Shredder for Linux allows you to integrate various UCI engines, the program lacks a mode where two engines can play each other, in contrast to the Windows version. The program even lacks a print function for printing completed games including diagrams.

This said, Shredder 9 for Linux does have a 100MByte collection of openings, which you can download as a 27MByte compressed file after buying a registration key. The engine window gives you an overview of possible moves.

The Linux version comes without a manual, but well-organized menus make the program functions easily accessible to users, assuming you are familiar with the game of chess. Right clicking the notation window takes you to a palette for quick game commentaries. The Mode window takes you to the possible playing modes.

The Analysis entry will continue to analyze a game for the best possible move for as long as you let it. Shredder Linux supports multiple variant analysis. If you are eager to learn more about the game, you can enter complete variant paths and play the options against various engines. You can promote useful variants to main variants, and drop poor variants. If so desired, Shredder will point out possible dangers by showing you a red arrow, or point out promising moves by displaying a green arrow ([Ctrl]+[T]).

Game Options

If you play at club level, you may be interested in a Shredder option that allows you to play chess games with tournament-style rules based on a preset schedule. For instance, you can use Shredder to play blitz chess with time penalties, or you can play longer games with more time checks. Shredder users can even assign themselves a Human bonus - this feature is quite a good idea when you consider how long it takes to move chess pieces by dragging the mouse.

Shredder 9 is also useful for beginners and occasional players. The Mode | Levels menu allows players to limit the strength of your computerized opponent. The strength is measured in the normal unit ELO (Figure 2).

Figure 2: Shredder 9 supports several time options and lets you restrict the computer's strength.

At the lowest playing levels, the program even imitates typical human errors. Other chess programs typically devalue their pieces at beginner and fun levels, and additionally, some chess applications make aggressive moves with the queen. Shredder 9 takes additional steps to simulate the play of an inexperienced human.

The lowest level (1000 ELO) should even give occasional players an opportunity to beat the machine. At this level, Shredder even "overlooks" the common checkmate fields g7 and h7 after the opening. But I'm fairly confident that Linux Magazine does not have too many readers who could beat Shredder 9 without any restrictions.

Functions and Features

The GUI has all the functions you would expect of a chess GUI, including the ability to rotate and scale the board, to review and replay moves, to input games, or to store the game in various databases.

You can modify the table size in File | Options | Engine options if required. Simply put, this is the memory space for storing the calculations performed by the engine. The value should not be more than half of your computer's total physical memory. Permanent Brain specifies whether Shredder will use the CPU for calculations all the time, or just when it is the program's move.

If you intend to use other programs while waiting for the engine to make a move, you can enable the Engine with low priority option.

As previously mentioned, Shredder will work with other engines, as long as they support the UCI protocol. If you are a keen player, you might additionally like to try out the commercial Fruit 2.2.1 (29 Euro) [6] engine, which was recently released for Linux and is also one of the most powerful chess engines in the world.

Figure 3: Shredder 9 supports alternative engines, as long as they support the UCI protocol.

Conclusions

Despite the slow GUI, Shredder 9 for Linux is a powerful chess tool that left me with a good impression. It definitely gives you more in the line of features than a combination of, say, Xboard/Crafty or Knights/Crafty, although it cannot compete with the feature-richness of the Scid chess database. On the other hand, the Shredder Classic interface is a lot easier to handle.

The most annoying thing about Shredder is the fact that Linux chess players have to make do with a subset of the functions the Windows version offers, although the asking price is the same. When I pointed this out to Stefan Meyer-Kahlen, he simply replied that the Linux version has only been on the market for a couple of weeks, whereas the Windows version was first released over 10 years ago.

INFO
[1] Shredder 9: http://www.shredderchess.com/
[2] Crafty: http://www.cis.uab.edu/hyatt/hyatt.html
[3] Scid: http://scid.sourceforge.net
[4] José Chess: http://jose-chess.sourceforge.net
[5] Polyglot: http://theorie.physik.uni-wuerzburg.de/~arwagner/chess/shredder.html
[6] Fruit: http://www.fruitchess.com