Monday, October 19, 2026

ChessKISS 2.2, last version for a while?

After three intense months of development, I think ChessKISS has become a pretty strong chess engine. I've played countless games and run tournaments against previous versions, strong new competitors, and, of course, my own bugs. It's been a lot of fun — and stressful at times!

19/10/26 2.2

  • Added space evaluation to improve positional play.
  • Improved king safety, piece positioning, passed-pawn evaluation and threat detection.
  • Introduced a new ProbCut implementation, negative extensions and Internal Iterative Reduction (IIR).
  • Added a new unit bitbase and support for King and Pawn vs. King endgames.
  • Refined search extensions with depth-dependent limits. Single-reply extensions are now also applied to hash moves when evading check.
  • Improved repetition and draw detection throughout the search, including material draws, the 50-move rule and threefold repetition.
  • Added static evaluation to the search stack, keeping evaluation scores separate from history heuristics.
  • Removed lazy evaluation.
  • Improved quiescence search with a new mechanism for handling checks.
  • Tuned aspiration windows, late-move pruning thresholds and null-move reduction depths.
  • Changed parallel search scheduling: workers now search to a maximum depth rather than for a fixed amount of time, stopping when the main worker finishes.
  • Refined knight and pawn evaluation in the middlegame.

Downloaded at ChessKISS.zip

Saturday, October 10, 2026

ChessKISS 2.1, Autumn version

This version improves many things over 2.0, I guess now ELO is between 2500 and 2600, which is not bad at all.
  • Improved move generator performance
  • Improved EvalPawn(), EvalPawnRace(), and CalculateImbalance()
  • Improved Passed Pawn Extension
  • Added the null-move value to the TT
  • The oldest entry is now replaced when a cluster is full
  • Tried faster sorting methods
  • Added some tuned values (WIP)
  • Reuse checks in Quiescent Search when available
  • Tuned and/or tapered many parameters
  • Improved locality for some data structures
  • Fixed an issue in Eval_KNB_VS_K()
  • Improved Eval_KBB_VS_KN() performance
  • Fixed some nasty issues in Eval_KR_VS_KP()
  • Improved bishop and knight outpost evaluation
  • Improved passed pawn candidate evaluation
  • Fixed the isolated pawn penalty
  • GenerateKings() was not symmetric!
  • Improved the fifty-move rule and draw probability
  • No king safety checks in pawn endings
  • Slightly changed knight and bishop pair evaluation
  • Promotion is now taken into account for MVVLVA in the move picker
  • Check extensions now avoid search explosions by counting every two plies
  • Fixed a singular move issue
  • Added quiet-move pruning
  • Removed the pawn cache; bitboards are now used
You can download it at ChessKISS 2..1