Skip to content

3.4.0

Compare
Choose a tag to compare
@kelseyde kelseyde released this 19 May 11:58
· 484 commits to main since this release

Calvin 3.4.0 is released and comes with an estimated ~43 ELO strength gain in self-play.

Score of Calvin DEV vs Calvin: 713 - 437 - 1046  [0.563] 2196
...      Calvin DEV playing White: 377 - 188 - 533  [0.586] 1098
...      Calvin DEV playing Black: 336 - 249 - 513  [0.540] 1098
...      White vs Black: 626 - 524 - 1046  [0.523] 2196
Elo difference: 43.9 +/- 10.5, LOS: 100.0 %, DrawRatio: 47.6 %

Calvin 3.4.0 comes with the following new features and improvements:

Faster move generation: 8438359

  • Instead of calling make/unmake move to check legality of generated king moves, just remove the king from the board and check if the destination square is attacked
  • Store masks, magics, shifts and attacks in a single lookup array during sliding piece move generation, instead of in separate arrays.
  • Use int for Move instead of short - gain from decreased memory does not outweigh cost of constant casting to int
  • Small optimisations in Bitwise, PinCalculator and RayCalculator classes
  • Move generation code refactored and javadoc added

UCI info output: 9df6b81

  • Calvin now outputs info via UCI while thinking.
  • Depth, score, nodes, think time, NPS, and principal variation are now included.

Faster quiescence search: 6661997

  • only use MVV-LVA score for move scoring during the qsearch, instead of the complete move ordering score.

Improved Texel Tuner: da2ec36

  • Texel tuner is now multi-threaded leading to a significant speed up in tuning.
  • All evaluation params re-tuned simultaneously, leading to a small ELO gain (~5 ELO)

Fine-tuned late move reductions: affd96e

  • Dynamic reduction value calculated for LMR (credit to Lynx chess engine for inspiration for the formula).

Small search parameter optimisations: 188e653, 270e7bb, 7f02d3a

  • Aspiration window margin reduced to 25cp.
  • Null-move pruning margin reduced to 0cp.
  • Futility pruning min depth reduced to 4 from 6.

Calvin 3.4.0 is available compiled in Java 21 (default), or Java 17.