In what way do major chess engines differ from one another?

Do they all use the same algorithm and the same evaluation function, differing only in parameters/weights?

1 Answer 1



  • I'm confident both Houdini and Komodo are in C/C++, the best language for speed optimization.
  • I'd be very surprised if they don't use alpha-beta/nega-max. This is standard in chess programming.
  • I don't know about board representation in Houdini and Komodo, but bitboard is good and fast. Stockfish uses that, and I think it's common for all strong engines.


Lot's of possibilities (I can't list everything):

  • How to prune/reduce the search tree?
  • How to evaluate a chess position?
  • What about quiescence search? Do you want to extend your search horizon?
  • Bitboard? Mailbox? How do you want to represent the internal board?
  • Multithreading support?
  • Programming language. C++? Java?
  • Operating systems optimisations such as large pages?

While all chess engines I'm aware of use alpha-beta/nega-max, their implementation could be significantly different.

No. They don't all use the same algorithm and the same evaluation function. Visit https://chessprogramming.wikispaces.com/Home, and you'll appreciate the complexity in chess engine programming.

  • Could you give concrete examples for some of the strongest engines (stockfish, Houdini, Komodo,....)? I understand that there are lots of possibilities, but perhaps some of those possibilities are better than others and are therefore preferred in the stronger engines!? Oct 18, 2017 at 21:17
  • @user1583209 Komod and Houdini are closed source. Thus, not possible to say anything for their algorithms. We can only get their analysis, but we don't know the details.
    – SmallChess
    Oct 19, 2017 at 0:06
  • @user1583209 Any concrete example will just give you a different move, different principal variation, different score. But, you'll never know why because no source code for Houdini and Komodo. Is that what you want?
    – SmallChess
    Oct 19, 2017 at 0:07
  • I had the hope that at least a few things were known about closed source engines. For instance you state that all engines use "alpha-beta/nega-max". How about "bitboards", ....? Probably the strong engines are not written in Java either!? Oct 19, 2017 at 12:23
  • @user1583209 I'm not able to find an example. I'll try to find an example if nobody else answers this question.
    – SmallChess
    Oct 20, 2017 at 2:33

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.