How to Use a Chess Engine? Your Quick & Effective Guide
A chess engine is a major component in DecodeChess’s service. While our goal is to use chess engine recommendations to create a learning experience and to put aside its primary purpose of functioning as an “answer sheet”, it is still important to familiarize ourselves with some basic chess engine terminology. So in this short article, we will go over all the popular questions that might arise when you use a chess engine for the first time, be it on DecodeChess, or on other websites.
The basic Stockfish analysis option on DecodeChess
How Does a Chess Engine Work (for dummies)?
In order to start answering questions about how to use a chess engine, we better get have a minimal understanding of what a chess engine is!
A chess engine contains a Search Function that can calculate millions of possible continuations from a given position and an Evaluation Function that operates as a knowledge base to estimate different positional factors. The combination of those two components allows finding what is considered to be the best move to play per any position. Please note that the engine’s recommendations hold for both White and Black. That is, at any given position, the engine calculates the best move per each opponent.
Nowadays, programming a chess engine is not as difficult as it used to be in the end of the 20th century, mainly thanks to the huge technological leaps that took place ever since. There are tens of chess engines today, some written by a single person, some written by teams of programmers.
What Does the Engine’s Score Mean & What are Centipawns?
The Evaluation Function evaluates positions in hundredths of a pawn (hence centipawn). Pieces are assessed for their relative strength in potential exchanges with the following approximate values:
Pawn = 1
Knight or bishop = 3
Rook = 5
Queen = 9
When a chess engine presents a numerical score for a given position, it assigns positive values to indicate an advantage for white, and a negative sign to indicate an advantage for black. For example, +0.56 means white is up by 0.56 of a pawn or 56 centipawns, if you will. a value of 0 means equality.
**With a pinch of salt**
Chess engine results are prone to inaccuracies: for any given best move recommendation, take into account a 0.15-0.2 centipawn deviation.
DecodeChess’ game map indicating White’s decisive advantage in numerical and graphical representations.
How Do I Interpret the Engine’s Score?
The engine’s score basically tells us which side has the advantage, given that both sides were to play their best possible moves throughout the game.
In other words, if at a given position white has an advantage of +1.4, then unless white makes a mistake, it should win the game even with black playing flawless all the way to the end.
In addition, while the basic evaluation of the score is based on piece/material advantage, one does not necessarily have to be “up a piece” in order to have an advantage. The evaluation function also factors other components that determine whether a position is in favour of one side over the other.
DecodeChess in action
What is Depth and Should I be Worried About it?
Depth indicates how many plies ahead in the game the chess engine was able to “see”, with
a ply being is a move made by one opponent (B/W).
Generally speaking, we can say that the greater the depth, the more accurate the score and the prediction. However, other factors come into play here and they are too technical for the purpose of this article.
For example, (+0.77 ; depth 18) means white is up 77 centipawns after calculating 18 plies ahead. But it doesn’t mean that all possible 18-ply variations are being checked, and thus there may be cases (though not frequently) that the chess engine will miss a good variation.
Depth can be affected by a few factors:
- The type of chess position in hand – the more good options (for example opening), the lesser the depth.
- The strength of the computer on which the engine is running.
- The amount of time allocated for the analysis.
- The engine itself (Stockfish, Houdini, Komodo, etc.).
- The number of variants that were requested.
What’s the Difference Between Blunder, Mistake, and Inaccuracy?
Inaccuracies, mistakes, and blunders are all numerical deviations from the best move, measured in centipawns. There may be more than one convention for the exact values per each term, but for the case of DecodeChess, we can say that:
Inaccuracy (?!) ~ loss of 40 centipawns
Mistake (?) ~loss of 90 centipawns
Blunder (??) ~loss of 200 centipawns
Good move (!) = in DeocdeChess this will be prompted when a non-trivial good move was played.
Move 40.Ra1 by Anand, taken from Anand-Kamsky 1995 (1-0), as seen on DecodeChess’s game map
What Chess Engine is Being Explained by DecodeChess?
DecodeChess explains the moves of Stockfish, which is considered to be one of the top chess engines in the world. It won the 2018 computer chess championship on chess.com and appears on the analysis boards of leading chess websites, including lichess, chess.com and more.
DecodeChess uses Stockfish in several ways, and depth changes from one case to another:
- For the Decoding process – during a single Decode process, our algorithms use Stockfish hundreds of times in various depths, and at the same time allocate substantial CPU efforts to finding the best move.
- Computer opponent – here there’s no need for extensive depth since the game is against a human with far inferior calculation capabilities. In addition, our human-like computer opponent is actually programmed to not make full use of the engine’s playing strength and to focus on finding more “human” moves.
- For basic analysis (just the moves, no explanations) – we run the engine for several seconds which is enough to reach a depth of between 14-50, depending on the position. If you’re really interested in a more accurate position, recurring clicks on the fish icon will increase the depth even more.
Hopefully, you now know a bit more about how to use a chess engine. Now it’s time to take your chess engine analysis experience to the next level!