Calvin Chess - java chess engine
v.3.4.0:
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.
Comments
Post a Comment