Chal - UCI Chess Engine
Author: Naman Thanki
Chal 1.3.2what's new?
919 lines of C99
Strength
v1.3.2 is estimated at ~2350 Elo, a solid improvement over v1.3.1 (~2284 Elo).
SPRT test vs. v1.3.1 (8+0.08, UHO_Lichess_4852_v1.epd):
Elo: +77.84 ± 28.76 | LOS: 100% | Games: 422
Search refactoring
Search procedure refactored for clarity and efficiency. Move generation, ordering, and alpha-beta logic are now more explicitly layered. ~30 Elo gain from reduced complexity and improved inlining opportunities.
Pawn evaluation enhancements
Explicit passed pawn detection with rank-dependent bonuses replaces implicit PST-only handling. Passed pawns now receive bonuses scaled by advancement rank, with extra endgame weight for far-advanced positions.
Piece-square tables and evaluation tuning
PeSTO tables refreshed with improved weighting across knight, bishop, and rook tables. Pawn evaluation enhanced to better reflect positional patterns from recent games.
Delta pruning and check extension
Quiescence delta pruning retuned. Check extensions now more selective to reduce search bloat while maintaining tactical precision.
State structure refactor
Internal state updated: non_pawn_count[2] replaced with per-piece-type tracking piece_count[2][6]. Maintains O(1) null-move guard while enabling finer-grained state inspection for future tuning.
Repetition and draw detection
Stricter repetition hash equality checks. Insufficient material detection now covers all legal endgames (KvK, KNvK, KBvK). Improved edge-case handling around 50-move rule boundary.
Acknowledgements
Sincere thanks to Pawel Koziol (nescitus) for his continued mentorship, code contributions, and open dialogue. The refinements to pawn evaluation, state management, and the search clarity work all benefited directly from his guidance and hands-on code review. His ability to balance strength gains with code readability and to contribute concrete implementations continues to shape this project's direction.

Comments
Post a Comment