Casanchess - UCI compatible chess engine written in C++.
The NNUE evaluation is trained on millions of positions from auto-games and randomly generated FENs, evaluated with its own classical evaluation upto depth 7.
Author: Carlos Sanchez Mayordomo
CasanChess 1.0 what's new?
The first major release introduces support for Syzygy Tablebases, a stronger neural network, and several search improvements, resulting in a higher playing strength.
Features
Syzygy Tablebases: Add WDL support. Configurable via new UCI commands SyzygyPath and SyzygyProbeLimit.
An evaluation cache for quiescence search, notably improving performance at ultra-short time controls.
Enhancements
New Neural Network: network-20260712.nnue, trained on ~570M evaluations (12% of them random positions), providing a strength increase of ~50 ELO.
Search & Pruning: Implement Principal Variation Search (PVS) for root moves, asymmetrical incremental aspiration windows, and a newly tuned, more aggressive futility pruning algorithm.
Stateless Move Generation: Optimize move generation to use stack memory instead of heap, increasing the engine's speed.
TT Improvements: The Transposition Table now returns EXACT bound scores for non-PV nodes, maximizing the use of high-quality search information.
History Heuristics: Simplify history updates to avoid extreme value distortions at very high depths.
Bugfixes
Fix: Incorrect Principal Variation (PV) node definition throughout the search tree. Fixing this unlocked more aggressive pruning in non-PV nodes.
Fix: Avoid Null-Move Pruning in PV nodes.
Fix: Segfault crashes when executing the bench command on Windows compilers.
Fix: High number of tablebase hits breaking the UCI PV report (now solved by using triangle arrays).
Fix: Zobrist Key mismatches involving en-passant squares when starting from FEN positions.
Consistency & Stability
Aligned bench command and UCI options (like Threads locked to 1 for tests) with OpenBench standards.
Added comprehensive unit tests and improved engine documentation.

Comments
Post a Comment