Saturday, September 19, 2026

ChessKISS 2.0 arrives before the end of the summer

Three days left until Autumn (well, here it's still summer for at least another 30 days). To celebrate it (...), I've been quite busy over the last month creating a much better (still amateur) chess engine.

The result is version 2.0, which I believe is quite an advanced version of a chess engine that still needs tuning (WIP).

So, what's new since 1.9?

  • Performance improvements everywhere (move generator, hash generator, Quiescence)

  • Improved SEE

  • Better king defense/attack

  • Lazy SMP with worker voting

  • Improvements in repetitions, threats, killer moves and move generator

  • In threat evaluation, reverse the order of the pieces (minor > major)

  • Better time management

  • Some values tuned

  • Added evasion pruning in Quiescence

  • New endgames: KQ vs KP, KP vs KP, KRB vs KR, KRN vs KR, KQ vs QRB

  • Added rook vs bishops in EvalUndeveloped()

  • Added singular extensions

  • New settings: CPU=0 // auto and Debug=0 // default

  • Added pondering

  • Fixed a long-standing bug where a move from a missed aspiration window could be used

  • Refactored cache code

  • LMR table is now dynamic rather than having only two entries

  • Improved outposts for bishops and knights

  • More use of bitboards in TEvaluation.EvalPassers() and TEvaluation.EvalPawnRace() instead of loops

  • Improved check extension performance

  • PawnOn7thExt extension on PV is now ONE ply (previously half a ply)

  • Scores are now returned rather than beta

  • GenerateAttacksDefends() is now fully implemented with bitboards

You can download it here: ChessKISS 2.0


No comments:

Post a Comment