A small story from 1990 to 2015 :
A chess engine is a computer program designed to be used by many chess programs to evaluate a position. A chess engine analyzes chess positions and makes decisions on the best chess moves. Different engines have different playing strengths and often are designed to excel at specific types of evaluations, such as endgames. Today, chess engines can beat 99.9% of human players on modern hardware. Chess engines are not tested in a series of engine vs. engine battles.
Chess engines are good for analyzing games and using it as a playing partner. Chess engines support one or both major protocols called Chess Engine Communication Protocol, such as Tim Mann’s WinBoard (Windows)/XBoard (Unix), or Huber and Meyer-Kahlen’s Universal Chess Interface (UCI). Chess engines increase in playing strength each year due to the increase in processing power that enables calculations to be made to greater depths or ply in a given time. Some chess engines use endgame tablebases to increase their playing strength during the endgame.
A chess engine plays its best move by calculating thousands of positions a second. It is quick and accurate. The average player or beginner cannot do that. He must learn the various concepts and ideas of chess to understand a particular position. The improvement in chess depends on how well you understand a particular position.
A serious player uses computer engines to test new ideas in an opening or in a position, or for analyzing an old game or for preparing against an opponent. Computer engines look at several variations several moves deep to come up with an evaluation. An advanced multi core processor will provide better and faster results.
Different computer engines are good at different aspects of chess. Houdini is good for checking tactics quickly. Komodo is good for positional evaluation and evaluating middlegame positions accurately once the tactics are resolved. Stockfish is good for endgames and in seeing very deep tactics. Strong players use several different engines for checking and verifying.
The two components of chess analysis are search and evaluation. Search is the way that the engine ‘prunes’ the tree of analysis. Modern chess engines trim the list of possible moves dramatically to obtain greater search depth. Evaluation is the set of criteria used by the engine to decipher or evaluate each position encountered during the search.
When preparing for an opponent, serious players use a large chess database to find recent games of that player if that player has known chess games in the database. A chess engine is used to find mistakes or patterns to obtain an advantage in a game against that player.
The first thing a player needs is a chess graphical use interface (GUI). Shane’s Chess Information Database (SCID) is a nice, free GUI that can be used, along with the free Houdini 1.5a engine. ChessBase Light and Arena 3.5 are two other free GUIs. The commercial products include ChessBase, Fritz, Komodo, etc. All of these programs allow you to import and export games with the standard Portable Game Notation (PGN). You need a chess GUI that supports at least one major chess communication protocol (UCI, Winboard, or ChessBase).
Most chess engines do not have their own GUI, but rather console applications that communicate with a GUI, such as WinBoard (Arena 3.5) or XBoard. Arena can load and read Winboard or UCI files, but ChessBase/Fritz can only load UCI files. Arena also comes with several chess engines installed.
Analyzing with a chess engine is straightforward. Just load up a pgn game or select one from a loaded file of such games, highlight the move immediately preceding the point where you wish to begin analyzing and start the engine. Arena allows you to load up a pgn file or and EPD (Extended Position Description) position file.
You can also enter the moves you want to analyze and activate the chess engine analysis. For SCID, click on Tools > analysis Engine. SCID comes with some engines installed. Choose any of them. A chess analysis tab will show dumping the variations and giving it an evaluation. Each variation consists of depth, a numerical evaluation, and the variation moves sequence. The depth is the number of half-moves the engine was calculating (Depth=20 would be 20 half-moves or 10 moves deep). The numerical evaluation of the position is positive if the advantage is for White, negative if the advantage is for Black. Its measurement is usually down to a 1/100th of a pawn. A zero value means that the position is equal. A value of +1.0 would mean that White is better by the equivalent of one pawn.
The evaluation of the position are displayed for each move. These cause ranking of moves to change as the engine progresses through successive plies. Typically, move rankings change frequently early on, but eventually stabilize and only change by very minute amounts. When an initially lower-ranked move rises toward the top of the heap, it “bubbles up” and is displayed on the top line of the analysis window.
A chess engine helps a player to learn how to play an opening much faster than any other method. Once a player has mastered one sub-variation, he can move on to the next variation. The plan is to try and replicate the chess engine’s play over the board. If you use engines a lot in preparation, then it makes sense to play sharply when you can use the computer’s great power in calculation.
Despite the advantages of the chess engine, one still needs to think on one’s own as opposed to relying on the engine evaluation. The danger of overuse of engines by those who are inexperienced is real. Relying on a chess engine will not improve your play. The chess engine is not a replacement for thinking and improving your chess skill, but it will point out good and bad moves that a player may never have found on his own. If you want to improve, get an instructor. You don’t need a grandmaster, an “A” or “B” player will do. Ask them to help you analyze the game. This gives you reasons, not just answers. And it will help you learn how to analyze. If you rely on engines too much, it will give you answers without helping you understand the answers.
One of the biggest issues with chess engines for the average player is that, from time-to-time, the engine will suggest moves that do not make much sense. They don’t play like a normal human, and sometimes makes bizarre moves. Almost all chess engines play at grandmaster strength and is going to suggest moves the average player would never find. It is easy to say that a player can follow along with an engine’s analysis, observe its suggestions, and try to implement these moves in their own games. But when it comes down to it, the player did no really learn anything at all, and are deceiving themselves into thinking they have learned something from the chess engine.
A player should first spend time analyzing a position without the computer. Once he is satisfied with his analysis, use the chess engine to evaluate the position. Where the chess engine disagrees with the human analysis, try to understand why. An engine is really great for checking for blunders and finding tactical moves. The chess engine can be used to analyze previous games and find the turning point in the games. Chess engines are great at pointing out tactical errors, and that is where they provide the most value.
A chess engine can help average players to understand their mistakes in critical moments, but for most amateurs, their games were decided by blunders. Players should practice to prevent blunders and use a chess engine to understand some tactical and strategical plans. When playing a chess engine, remove all time controls. It is best to relax and take as much time as you need to think through all the intricacies of the position.
Using a chess engine while watching a chess game is very interesting. It gives you a much deeper insight in what top players actually can see and how accurately they evaluate positions. Many tournaments have a live feed that includes engine analysis of the games. At the highest level, in most cases when an engine recommends a particular line of play, the grandmaster plays the same way. The problem with the amateur is that there is no understanding or explanation of why that is the right line of play. There are also times when a chess engine will show that a game is totally winning for one player, but a Super Grandmaster rated over 2700 will miss the correct move and end up losing or drawing the game.
Even if a player comes up with a good plan, executes it successfully, and wins the game, it is always useful to run the moves through a chess engine. The engine will find tactical moves that could have changes the result of the game. When reviewing games with a chess engine, there may have been times where the player debated over two moves for a long period of time. The engine may pass right over that moment as inconsequential.
Many players find tactic trainers (chess problems) more rewarding than playing a chess engine. Playing a chess engine is a war of attrition with tight positional play fighting for tiny advantages, and not very fun. Playing human vs. human allows either or both players to make human errors such as overlooking a tactic or trying something risky, which may not work out. That is much more fun.
Using software to analyze your games is the primary use of computer engines by top players. After every official game they play, they will analyze their games and see where they did wrong and where they could do better. The chess engines are usually proficient in tactics and opening theory. If a top player finds that they did not play the strongest move in one of their positions, next time they will be aware of it and follow the move suggested by the engine. Usually this would happen once again in the opening because middlegames repeat very rarely if played against different opponents.
Learning from a chess engine, when you use it to analyzing your games, is by asking yourself what are the concepts and patterns and what are the positions of consequences that help you find the right move. When a chess engine proposes a move, your thought process should be on understanding how you would come up with the same move. Don’t just simply accept what a chess engine evaluates as the best move. You need to understand why it is a good move.
Chess engines increase in playing strength each year. This is partly due to the increase in processing power that enables calculations to be made to ever greater depths in a given time. Programming techniques have also improved, enabling the engines to be more selective in the lines that they analyze and to acquire a better positional understanding. Top players don’t play strong chess engines necessarily trying to beat it. They play the chess engines to help reinformce opening or endgame ideas.
A chess engine often uses a vast previously computed opening “book” to increase its playing strength for the first several moves up to 20 moves or more in deeply analyzed lines. Some chess engines maintain a database of chess positions, along with previously computed evaluations and best moves.
As engines become stronger, the openings played in over-the-board games have become much more tactical and precise. Top players prepare novelties in their opponent’s pet lines, generate huge trees of analysis, and then try to memorize all the different lines. Because some lines have been analyzed out (as deep as 35 moves), players have to find new ideas and try to get the opponent out of book. This has become much more important, especially when playing against an opponent known for his thorough preparation. Thanks to huge chess databases, players are much more aware of what lines have already been played. It would be hard to catch strong grandmasters in traps nowadays.
Some chess engines use endgame tablebases to increase their playing strength during the endgame. Endgame tablebases have enlarged the number of positions known to be theoretically won or drawn. The most widely used tablebases are the 6 piece Nalimov tables and the 7 piece Lomonosov tables (available to members on the ChessOK website). Complete tablebases consume a huge amount of hard drive space, in the terabyte range.
Top players spend a fair amount of time preparing openings and working on their weak areas. They use chess engines to draw up a repertoire, to test their memory of their repertoire, to go through tactical puzzles, to work on positional exercises, to review and analyze games, to compile statistics on their own performance in various openings, and to research their opponent’s openings and weak spots. It is nearly useless to play full games against the top engines, but some players use weaker chess engines as sparring partners for playing out positions or endgames. For computer engines, it is much harder to simulate a “human” style than just playing good. If you want to improve your play against humans, play against humans and use the engines to analyze your games.
Currently, the top three chess engines are Komodo 9.2, Stockfish 6 (open source), and Houdini 4. Other strong engines include Fritz, Rybka, Hiarcs, Junior, and Crafty. There are over 100 strong chess engines available on the Internet, many offered as free downloads. There are several rating lists for chess engines (CCRL, CEGT, IPON, SSDF). These ratings are derived primarily from engine vs. engine “timed” tournaments on identical hardware. Many of the free download engines are older, lower-rated versions of their more established programs. Some are free for a trial period, after which they must be purchased. Other chess engines are beta versions of new engines from little-known programmers trying to establish their brand in a highly competitive market.
Generally, you improve the most if you play against opponents slightly stronger than you. Chess engines are usually way too strong for most people. You need to adapt by upping your game and develop a positional understanding of the game.
Some players use their chess engine to play correspondence chess. In today’s correspondence chess, a non-engine player will lose to an engine-assisted player every time. Many sites where you can play chess online do not allow computer-assisted play. It is considered cheating, and if caught, usually means a ban from the site. Unlike conventional chess, when engine vs. engine play occurs, it is extremely difficult to recover from even one weak move. Once your opponent’s engine obtains a certain numerical advantage, it will steadily outplay your engine every time. The only time a human has to think when using an engine is where the top two (or more) ranked moves are identical, or nearly identical and the engine cannot break the tie, no matter how many plies have been examined.
The first record of the chess engine was around 1994. The Chess Engine Communication Protocol was designed by Tim Mann, author of XBoard. It was initially intended to communicate with the GNU Chess engine, which only accepted text input and produced text output. The protocol was called Winboard for Windows systems and XBoard for Unix systems.
The UCI standard was developed in November 2000. The standard was worked out by Stephan Meyer-Kahlen (1968- ), a German programmer. The UCI standard was presented by Rudolf Huber, a German computer scientist. The UCI protocol, a rival to the older XBoard/WinBoard Communication protocol, was used by only a few programs until ChessBase began to support this protocol in 2002.
In 1990 World Champion Anatoly Karpov lost to MEPHISTO in a simultaneous exhibition in Munich. MEPHISTO also beat grandmasters Robert Huebner and David Bronstein. MEPHISTO won the German blitz championship and earned an International Master norm by scoring 7-4 in the Dortmund Open.
In 1992 Kasparov played Fritz 2 in a 5 minute game match in Cologne, Germany. Kasparov won the match with 6 wins, 1 draw, and 4 losses. This was the first time a program defeated a world champion at speed chess.
In March, 1993 GM Judit Polgar lost to Deep Thought in a 30 minute game.
In 1994 WCHESS became the first computer to outperform grandmasters at the Harvard Cup in Boston.
In 1994 Kasparov lost to Fritz 3 in Munich in a blitz tournament. The program also defeated Anand, Short, Gelfand, and Kramnik. Grandmaster Robert Huebner refused to play it and lost on forfeit, the first time a GM has forfeited to a computer. Kasparov played a second match with Fritz 3, and won with 4 wins, 2 draws, and no losses.
At the 1994 Intel Speed Chess Grand Prix in London, Kasparov lost to Chess Genius 2.95 in a 25 minute game. This eliminated Kasparov from the tournament.
The 13th World Micro Computer Chess Championship (WMCCC) was held in Paderborn, Germany in October, 1995. It was won by MChess Pro 5.0 (by Marty Hirsch) after a playoff with Chess Genius (by Richard Lang).
The 8th World Computer Chess Championships were held in May, 1995 in Hong Kong. The event was won by Fritz, after it won a playoff game against StarSocrates.
In November 1995, Kasparov beat Fritz 4 in London with a win and a draw. He then played Genius 3.0 in Cologne and won the match with one win and one draw.
The 6th Harvard Cup Human Versus Computer chess challenge was held in New York in December, 1995. The Grandmasters won with a score of 23.5 to the computers 12.5 score. The computers scored 35%, a slight decrease in performance from 1994. Joel Benjamin and Michael Rohde had the best human scores with 4.5 out of 6. The best machine was Virtual Chess (I-Motion Interactive) with 3.5 out of 6.
In February 1996, Garry Kasparov beat IBM's DEEP BLUE chess computer 4-2 in Philadelphia. Deep Blue won the first game, becoming the first computer ever to beat a world chess champion at tournament level under serious tournament conditions. Deep Blue was calculating 50 billion positions every 3 minutes. Kasparov was calculating 10 positions every 3 minutes. DEEP BLUE had 200 processors.
The 11th AEGON Computer Chess Tournament (Mankind vs. Machine) was held on April 10-17, 1996 in The Hague, Netherlands. There were 50 masters, International Masters, and Grandmasters and 50 computers (most playing on HP Pentium-166 machines with 16MB of RAM). Yasser Seirawan won the event with 6 straight wins and no losses. The best computer was QUEST, with 4.5/6 and a 2652 performance rating. The machines won with 162.5 points versus the humans with 137.5 points.
The 14th World Microcomputer chess championship was held in Jakarta in October, 1996. It was won by SHREDDER, followed by FERRET.
On May 11 1997, DEEP BLUE defeated Garry Kasparov in a 6 game match held in New York. This was the first time a computer defeated a reigning world champion in a classical chess match. DEEP BLUE had 30 IBM RS-6000 SP processors coupled to 480 chess chips. It could evaluate 200 million moves per second.
In November, 1997 Junior won the 15th World Micro Computer Championship. The event was held in Paris.
In 1997, the Allen Newell Medal for Research Excellence went to several people involved in computer chess. Ken Thompson and Joe Condon won for their pioneering work on Belle, the first master in 1983. Richard Greenblatt won for having developed MacHack VI in 1967, the first Class C chess computer. Lawrence Atkin and David Slate won for developing CHESS 4.7, the first Class B and first Expert chess computer from 1970 to 1978. Murray Campbell, Carl Ebeling, and Gordon Goetsch won for developing Hitech, the first Senior Master computer in 1988. Hans Berliner won for all his work in computer chess. Feng Hsu won for developing Deep Thought, the first chess computer that performed at a Grandmaster level in 1988. Thomas Anantharaman, Michael Browne, Murray Campbell, and Andreas Nowatzyk won for their work on Deep Thought in 1997. Murray Campbell, A. Joseph Hoane, Jr, and Feng Hsu won for their work on Deep Blue which defeated Garry Kasparov in 1997.
In 1997 the $100,000 Fredkin Award went to the inventors of Deep Blue - Feng Hsu, Murray Campbell, and Joseph Hoane, of IBM. Their program defeated Kasparov.
The 9th World Computer Championship was held in Paderborn, Germany from June 14, 1999 to June 19, 1999. The winner was Shredder. This was also the 16th World Microcomputer Chess Championship, won by Shredder.
In 1999 the highest rated chess computer is Hiarcs 7.0, followed by Fritz 5.32, Fritz 5.0, Junior 5.0, Nimzo 98, Hiarcs 6.0, Rebel 9.0, MChess Pro 7.1, Rebel 8.0, and MChess Pro 6.0 (based on SSDF ratings as of Jan 28, 1999).
In August 2000, Deep Junior took part in the Super-Grandmaster tournament in Dortmund. It scored 50 percent and a performance rating of 2703.
In 2000 the 17th World Microcomputer Chess Championship was held in London. It was won by Shredder.
In August, 2001, Deep Junior won the World Micro Computer Championship. The event was held in the Netherlands.
In November, 2000, the Universal Chess Interface (UCI) was released. It was designed and developed by Rudolf Huber and Stefan Meyer-Kahlen. It has replace the older Chess Engine Communication Protocol (Winboard/XBoard).
In January 2002, Chessbase began supporting the UCI protocol, which soon became the standard.
From May 13 to May 18, 2002, a match between Grandmaster Mikhail Gurevich and Junior 7 was held in Greece. Junior won with 3 wins and 1 draw.
On July 6-11, 2002, the 10th World Computer Championship was held in Maastricht, Netherlands. The winner was Deep Junior after a playoff with Shredder.
In October, 2002, Kramnik drew a match with Deep Fritz in Bahrain with a 4-4 score. Kramnik won games 2 and 3. Deep Fritz won games 5 and 6. The rest of the games (1, 7, and 8) were drawn.
From January 26 to February 7, 2003, Kasparov played Deep Junior 7 in New York. The match ended in a draw. Kasparov won game 1. Deep Junior won game 3. The rest of the games (games 2, 4, 5, and 6) were drawn. This was the first time that a man/machine competition was sanctioned by FIDE, the World Chess Federation. Deep Junior took 10 years to program by Tel Aviv programmers Amir Ban and Shay Bushinksy. It can evaluate 3 million moves a second, and positions 15 moves deep.
On November 11-18, 2003, Kasparov played X3dFritz in New York. The match was tied 2-2. Fritz won the 2nd game. Kasparov won the 3rd game. Games 1 and 4 were drawn. It was the first official world chess championship in total virtual reality, played in 3-D.
The 11th World Computer Chess Championship was held in Graz from November 22 to November 30, 2003. It was won by Shredder after a play-off with Deep Fritz. 3rd place went to Brutus, which evolved into Hydra.
In 2003 the top chess computers were Shredder 7.04 (2810), Shredder 7.0 (2770), Fritz 8.0 (2762), Deep Fritz 7.0 (2761), Fritz 7.0 (2742), Shredder 6.0 (2724), and Chess Tiger 15.0 (2720).
The 12th World Computer Chess Championship was held at Bar-llan University in Ramat-Gan, Israel from July 4 to July 12, 2004. It was won by Deep Junior (programmed by Amir Ban and Shay Bushinsky). Shredder took 2nd place, followed by Diep. Shredder won the 12th World Computer Speed Chess Championship. Crafty took 2nd place.
In 2004, Hydra defeated GM Evgeny Vladimirov with 3 wins and 1 draw. It then defeated former FIDE world champion Ruslan Ponomariov (rated 2710) in a 2-game match, winning both games.
In June, 2005, Hydra beat Michael Adams, the 7th ranked chess player in the world. Hydra won 5 games and drew one game.
The 13th World Computer Chess Championship was held at Reykjavik University in Iceland from August 13 to August 21, 2005. It was won by Zappa (programmed by Anthony Cozzie). 2nd place went to Fruit. Shredder won the speed championship, followed by Zappa.
In 2005, a team of computers (Hydra, Deep Junior, and Fritz) beat Vesilin Topalov, Ruslan Ponomariov, and Sergey Karjakin (average rating 2681) in a match by the score of 8.5 to 3.5.
The 14th World Computer Chess Championship was held in Turin, Italy from May 24 through June 1, 2006. It was won by Junior, rated at 2800, with a score of 9 out of 11. 2nd place went to Shredder (2810), followed by Rajlich (2820).
In December, 2006, world champion Vladimir Kramnik was defeated by Deep Fritz, which won with a 4-2 score (2 wins and 4 draws).
The 15th World Computer Chess Championship was held in June, 2007, in Amsterdam and sponsored by the International Computer Games Association (ICGA). The winner was the USA program Rybka ("little fish"), programmed by International Master Vasik Rajlich, with a score of 10 out of 11 (defeating Shredder in the last round). 2nd place went to the USA program Zappa, programmed by Anthony Cozziem with 9 points. 3rd place went to Loop, with 7.5 points. Defending champion Junior, nor Fritz, did not participate. The German program Shredder won the blitz world championship.
In June, 2007, the "Ultimate Computer Challenge" was held in Elista. Deep Junior defeated Deep Fritz with the score of 4-2 (2 wins, 4 draws).
In August, 2007, Grandmaster Joel Benjamin played a match with Rybka in which Rybka played without one of its pawns (pawn odds). Rybka won the match 4.5 - 3.5 (2 wins, 1 loss, 5 draws for Rybka).
In December, 2007, Hiarcs won over tie breaks against Rybka, with a score of 5.5 out of 7 at the 17th International Paderborn Computer Chess Championship.
In January, 2008, Rybka defeated GM Joel Benjamin with a 6-2 score. Joel had White in every game. Also, every draw was scored as a win for Benjamin.
In March, 2008, Rybka and Dzindzichashvili drew 4-4 in their match. Rybka won 2, lost 2, with 4 draws. Dzindzichashvili had White every game and Rybka played without one of its pawns in every game.
The 16th World Computer Chess Championship was held in Beijing, China in September, 2008 and won by Rybka, followed by Hiarcs and Junior.
The 17th World Computer Chess Championship was held in Pamplona, Spain in May, 2009 and won by Rybka, followed by a 3-ways tie for 2nd between Shredder, Junior, and Deep Sjeng.
In 2009, Pocket Fritz 4 won the Copa Mercosur chess tournament with a 9.5 out of 10 score.
The 18th World Computer Chess Championship was held in Kanazawa, Japan in 2010 and won by Rybka, followed by Rondo and Thinker. The blitz tournament was also won by Rybka with 8/9 score.
From 2010, a new tournament was introduced, called the World Chess Software Championship. All chess programs had to run on machines with identical hardware specifications. The winner for 2010 was Shredder.
Rybka won the 30th Dutch Computer Chess Championship in Leiden, followed by Spike, Deep Sjeng and Hiarcs.
In June, 2011, the International Computer Games Association (ICGA) stripped Rybka of all its World Computer Chess Championship titles after discovering that Vasik Rajlicj, who programmed Rybka, incorporated and plagiarized elements of older programs (Crafty and Fruit), without attribution. Rajlicj violated the rule that each program must be the original work of the entering developers. Programming teams whose code from others must name all other authors, or the source of such code, in their submission details.
In 2006, the program “Rajlich” took 2nd-3rd place in the world computer chess championship. That has now been annulled. 2nd place now goes to Shredder and 3rd place goes to Zappa.
The 1st places and World Computer Chess Champion titles that was awarded to the program Rybka from 2007 through 2010 are all annulled, The revised titles are: 2007 – Zappa (World Champion); 2008 – Hiarcs (World Champion); 2009 – Junior, Shredder, and Deep Sjeng (Joint World Champions); 2010 – Rondo and Thinker (Joint World Champions. In 2011 and 2013, Junior won the World Computer Chess Championship. In 2015, Jonny won the World Computer Chess Championship, held in Leiden.
In 2010, Shredder won the World Chess Software Championship.
In 2011 and 2013, HIARCS won the World Chess Software Championship.
In 2015, Shredder won the World Chess Software Championship, held in Leiden. Its hardware was an Intel quad core i7.
Modern top chess engines that run on a regular PC are significantly stronger than Deep Blue that defeated Kasparov in 1997. Deep Blue was a dedicated computer for the sole purpose of playing chess. It could calculate 200 million chess positions per second. But today’s chess engines do not calculate that fast. But they are better than Deep Blue because their search tree pruning and position evaluation functions have vastly improved since the Deep Blue days. The chess engines that are free or cost less than $100 can beat 99% of all chess players, including Deep Blue. Today’s chess engines are capable of finding the best moves with significantly less work than Deep Blue was.