Skip to main content

2025-12-19

Experiences With Analyzing My Chess Games

From time to time, I play games on Chessiverse, a site that features bots that play like humans. I like to play without a clock. I also like to analyze the games I play, like this one.

I can load it into scid, a nice tool that works on Linux, and has an option to analyze with Stockfish. This produces a output like the following.

example SCID analysis

Counting, I see one blunder, two mistakes and two inaccuracies by me and a lot of noise. The lines calculated seem to go nine moves deep, the “+/-” notation means something diferent from “-+”, but I’m not 100% sure. It’s too much.

The analysis tools on the top chess web sites are friendlier, but also include a lot of distractions. For myself, I just want to find the places where making the right move could have changed the result of the game. I’m not a newbie, but also not a strong player, so I usually have at least one bad blunder that I should try to learn from.

The review tool I wrote requires a bit of setup, but once it’s running, I can paste the PGN and get a minimal analysis. In the case of this game, that means I went through the moves (or fast forward using the “Next mistake” button) until I got to this position, where it’s move 16 with White to move.

chess position

The tool told me:

16.Rd3 played. Try a better move for white.

It took me a few guesses to find a good move and even longer to figure out why I was going wrong. It turns out to be a frequent blind spot of mine: I will often neglect to think through what my opponent is trying to do. Here, my opponent has just moved their king out of check in response to my move of my knight from c3 to b5. I moved that knight because my opponent chased it away with b4. I should have thought “why is my opponent forcing my knight away?”, the answer to which is obvious in retrospect. That knight was guarding the e2 square and my opponent wants to play Ne2+ next, forking my king and rook. I don’t want to trade away my opponent’s knight for any of my pieces that could take it (knight, bishop or rook), because they’re all valuable. Moving the dark square bishop brings it to a safe square where it guards the critical e2 square. I can afford to drop the f3 pawn. ( 16.Bc4 Nxf3+ 17.Kg2 Nd4 18.c3 bxc3 19.bxc3 Nxb5 20.axb5 would be fine, even winning.)

ETA The main advantage of the tool is that is shows fewer errors so that you can hopefully concentrate on the most significant ones. As this is based on the engine evaluation, it’s not going to find anything subtle. If you get ground down in a positional slugfest, this tool most likely will have little to offer.

I will say that in the ideal case, I should first go through the game myself, without any assistance, highlighting what I consider the highlights or (when I lose) the lowlights. Also, I should try to re-create what I was thinking about, what threats I was worried about, what attack I was hoping to build up to, etc. The idea is definitely, once the top mistakes are surfaced, to understand better how they happened and come up with ideas for preventing the same thing happening again. So I would say it is good to deploy the tool as the second phase of analysis.

By the way, I want to give a shoutout to chess-image-generator, which proved the easiest way to generate the image used above. I needed to install some dependencies before installing it.

sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
var ChessImageGenerator = require('chess-image-generator');

var imageGenerator = new ChessImageGenerator();
var fen = 'r4b1r/p3nBpp/1k3p2/1Np1p3/Pp1nP3/4BP2/1PP2P1P/2RR2K1 w - - 2 16';
imageGenerator.loadFEN(fen);
imageGenerator.generatePNG('position-at-move-16.png');