AlphaZero paper which introduced the engine which allegidly outperformed stockfish mentioned the following:

These programs evaluate positions using features handcrafted by human grandmasters and carefully tuned weights, combined with a high-performance alpha-beta search that expands a vast search tree using a large number of clever heuristics and domain-specific adaptations.

In particular I am interested in a claim about features handcrafted by human grandmasters. The paper didn't provide any examples, neither it references anything here. To make the question less ambiguous, let's narrow the scope of programs to just a couple of best performing families of engines (stockfish, sugar, komodo, houdini)

So my question is: what kind of hand-crafted features do top performing family of engines use to evaluate a position?

  • 1
    You're a programmer right? Why not look at evaluate.cpp in Stockfish source code?
    – SmallChess
    May 21, 2018 at 4:14

1 Answer 1


The paper is right. Traditional chess engines use a set of tedious hand-crafted features for positional evaluation.

I'd say nothing surprising, to name a fews (I can't name everything):

  • Mobility bonus
  • Outpost bonus
  • Attack bonus
  • Rook on the seventh rank
  • Material advantage
  • Minor pieces behind pawn


If you take a look at the source code, it's quite complicated. Difficult programming for something that is understood even by chess beginners.

What about replacing the entire file with a deep neural network? Training a network is easier than tweaking those numbers in the file.


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.