Basilisk, a UCI chess engine written in C++23.
Estimated strength: ~2400 ELO (single-thread calibration against Stockfish; FIDE Master / International Master level).
Author: Miloslav Macůrek
Basilisk 1.8.0 what's new?
A strength release bundling three development phases — time-management hardening, a search-efficiency pass, and a from-scratch evaluation refresh driven by self-play.
Strength: roughly +90 Elo over 1.7.0 at fast time control (3+0.03). A separate 10+0.1 field gauntlet (vs Fruit 2.1, Rybka 3/4, Critter 1.6a, HIARCS 14, Shredder 12, Rarog 2.2.0, and rating-limited Stockfish) confirmed the improvement holds at a longer time control — ~+40 Elo head-to-head vs 1.7.0. As is normal for evaluation refits, part of the fast-TC gain compresses at longer TC; the release is sized on the honest long-TC result.
Highlights
Evaluation (self-play refresh)
Five on-policy self-play cycles — each generates self-play games from the current head, phase-balances the positions, and jointly re-fits the linear evaluation plus the king-safety danger table. A genuine self-improvement loop: a stronger engine reaches new positions, and the evaluation re-fits to them. Material values stayed pinned; the movement is all positional (king-ring pressure, queen infiltration, passed pawns, the king-safety table).
Search
Transposition-table-bound-aware pruning — pruning decisions (RFP, razoring, null-move, futility, quiescence stand-pat) now prefer the TT score when its bound is a tighter estimate than the corrected static eval, leaving the raw static eval and correction history untouched.
Time management
The move clock now starts when the engine receives go rather than when the search thread begins, accounting for GUI→engine dispatch latency and keeping the engine tighter against the wall clock.
Notes
Move selection is otherwise structurally unchanged; a large tuning-knob infrastructure ships inert under BASILISK_TUNE for future work.
Comments
Post a Comment