Luminex - a UCI chess engine written in C++23. All evaluation values are self-engineered from chess first principles.
Author: Cheng Chang
Luminex 5.11.0 what's new?
Improvements (+42 Elo from v5.10.0)
Check-giving quiet move ordering (+18.5 Elo): Bonus for pawn/knight checks in quiet move scoring. Reuses already-computed pawn attack bitboards — zero extra computation.
Capture history (+39 Elo): Tracks capture quality by [piece][target][captured_type]. Gravity-based decay naturally adapts to position types.
Connected passed pawns: Evaluation term for linked passed pawns. Neutral at bullet TC, positive at longer time controls.
UCI Pondering: Full support for go ponder, ponderhit, and bestmove X ponder Y. Enables thinking during opponent's time — biggest structural gain for real play on multi-core machines.
opponent_worsening in LMP (+14.2 Elo): When opponent's position is deteriorating, allow more aggressive late move pruning. Reuses free per-node flag.
Portable bit operations: Compiler intrinsics for both MSVC and GCC — no more C++20 dependency.
Architecture
Phased Move Generation (PMG): Core innovation — defers quiet move generation until captures fail to cause cutoff. Saves ~30-50 move generations per non-cutoff node.
Comprehensive search: Null move pruning, LMR, singular extensions (with double extensions + multi-cut), ProbCut, futility pruning, reverse futility, razoring, IIR, IID, recapture extensions, TT with 3-entry depth-preferred clusters.
Rich move ordering: History (plain + counter + continuation), capture history, killer moves, check ordering, escape-aware ordering, pawn threat ordering.
Rating
~2432 Elo (bullet blitz)

Comments
Post a Comment