I watched some Komodo endgame play and what he is capable of is just horrible. From nice advantage with pawn up and activity he gives up two pawns ending in some miracle fortress position. Who can blame him when he knows everything about the endgame (7 man position for example using 6man tablebase) in a few seconds, knowing it is 0.00 everywhere, but still, is this the best chess engines can do with technical endgames? I see no imagination in his endgame play, no problem creation for oponent, just random moves not making his position worse in theoretic terms. Clearly he would lose many points playing this way with any human being incapable of precise play. Playing another perfect oposition they don't lose anything but still not sure I like such a design.

As far as I understnad engines, contempt has nothing to do with this problem, is there another setting that can help here?

Edit: example position

2k5/7R/r5p1/3K4/3P4/7P/8/8 b - - 0 1

1...g5 2.Ke4 Kd8 3.Ke5 Ra3 4.Rh6 Ke7 5.Rh8 Re3+ 6.Kd5 Kf6 7.Kc5 Kg7 8.Rh5 Kg6 9.Rh8 Kg7 10.Rb8 Rxh3 11.Rb2 g4 12.Rg2 g3 13.d5 Kf6 14.d6 Ke6 15.d7 *
  • 1
    As far as I know, engines are (currently) optimized for best play and not to play for opponent blunders. What you ask, could be implemented by playing lines where the opponent has to make "only moves", but since few people enjoy playing against computers I guess there is not much of a market for it. Jan 25, 2017 at 11:28
  • Please give us the game and then we talk. We need to make sure it's not you who is misjudging the position.
    – SmallChess
    Jan 25, 2017 at 11:49
  • Unfortunately I'm two days out without computer so I can't format game better, but posted some example game. Have a lot of such examples where I really don't like the engine play, quite serious percentage. Time control 2min+2sec using syzygy 6man.
    – hoacin
    Jan 25, 2017 at 12:26
  • Indeed a bit strange play, particularly letting out the king with 4. Rh6. Are your other examples also with 7 pieces? Perhaps if the engine cannot see a win it is happy to change to a 6man endgame where it can play perfectly? On the other hand it avoided a draw by 3-fold repetition.... Jan 25, 2017 at 13:44
  • You see the same phenomenon just in general play. I get so frustrated when I have a good attack going and the computer starts playing randomly because it sees a mate-in-several. It doesn't see any difference between losing on the next move or seven moves later - but I don't usually see the mate.
    – pokep
    Jan 25, 2017 at 17:53

2 Answers 2


The problem with an engine playing a drawn position with tablebases is that it has no concept of making life difficult for the opponent. All their moves are perfect in the sense that they don't turn a drawing position into a losing one -- not losing is guaranteed. But it has no concept of trying to win, and no way to decide between several moves that all lead to yet another drawn position, because in theory there is no difference.

If you turn off the tablebases, you get the normal engine play. It won't be perfect, but still usually much better than humans, and it uses an evaluation function that rewards material advantage, passed pawns, active pieces, and so on. That's probably what you want.

  • But even without tablebase, the engine does not have the notion of "problem creation for the opponent" (in drawn positions), which is what OP is asking. Jan 25, 2017 at 13:25
  • 2
    In practice that's the effect of the evaluation function though. Jan 25, 2017 at 13:28
  • 2
    Yes, for instance it rewards material advantage and active pieces. It's harder for the opponent to play a pawn down than a pawn up, even though both may be a theoretical draw. It's the whole idea of an evaluation function -- we've found out that selecting moves this way leads to wins against humans often, so apparently it induces mistakes. Jan 25, 2017 at 13:47
  • 1
    Yes sure, material advantage and piece activity etc are all objective factors which are taken into account in the evaluation function. But I (and perhaps OP as well) was wondering about something else. If the evaluation function gives equal score for various positions there could still be a difference between these positions for a not-perfect human player (e.g. because it is very tactical vs. obvious draw or because he would have to play very accurately vs. basically any move draws). Jan 25, 2017 at 14:49
  • 1
    There is no specific part only to look for things that are hard for humans, or where accurate play is needed. Basically the evaluation function can only look at the specific position, not at further moves, it must use only things that can be quantified, and it has to be really really fast to calculate. Jan 25, 2017 at 14:55

I think @RemocoGerlich is correct, and I'm here to add a real-life example. The point is that a chess engine would like to transpose a position into a known endgame.

There is also a technical explanation from Syzygy's author in the reference (nobody understands tablebase better than him!).

Reference: http://talkchess.com/forum/viewtopic.php?t=62837

Although black easily wins in the following position, Stockfish with 6-piece Syzygy would give the move:

1...Qe3+ 2.Kd5 Qxd3+

enter image description here

  • The reported moves appear to be random and absurd, but they're correct
  • Stockfish would try to transpose to a known tablebase endgame as quickly as possible. While it does that, it'd play non-human moves
  • If you turn tablebase off, Stockfish would do something else such as trying to checkmate the White king with the queen. Stockfish would play 1...Qc5 without tablebase, and that's also how a human would do.
  • This Qe3+ is weird for human but it is something I accepted within my work, engine gets maximum points possible from the game and he can show us winning process in less obvious endgames like building a bridge and later probably Q vs R endgame as it will like to throw away rook at some point :) The real problem is Kd5 response. I like (don't mind) the part where engine knows he will play perfectly but dislike the one where he thinks the same about his opponent. The first creates a little alien games but the second makes them garbage.
    – hoacin
    Jan 26, 2017 at 8:05
  • @hoacin I understand your point, but the whole point of an engine is to assume perfect opponent. That's how they are so strong! That's how alpha-beta work.
    – SmallChess
    Jan 26, 2017 at 8:08
  • @StudentT That's not quite true (or at least that's not how I'd phrase it). The point of alpha-beta is that it optimizes the worst-case result; an opponent who plays at worse than perfect won't perform 'better' against such an engine, they'll produce a result worse than they would have if they were playing perfectly. Jan 27, 2017 at 0:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.