Repository navigation
Releases: erensh27/Ravager
Release list
Ravager 3
Search (new)
- correction history: pawn, non-pawn, minor-piece, continuation
- threat-aware history + capture history, real pawn-structure history, 1/2/4-ply continuation history
- triple and negative extensions
- ProbCut with adaptive depth, hindsight depth adjustment, internal iterative reductions
- smarter LMR (node type, TT-PV, correction size, cutoff count) with deeper/shallower re-searches
- qsearch: SEE ordering, futility pruning, full check evasions
- cuckoo tables for upcoming repetitions
- time management scales with best-move stability, node share, failed lows, forced moves
- Lazy SMP thread voting
Transposition table
- rebuilt: lockless, 3 entries per 32-byte bucket, stores static eval + PV flag, age-aware replacement, huge pages
- fixed key/bucket bit overlap bug
Speed
- split accumulators: king move refreshes only the piece-square half, cached per bucket
- lazy incremental accumulators from nearest computed ancestor
- neurons in co-activation order so the sparse layer skips more dead groups
- new AVX-512 VNNI kernel, scalar/AVX2/AVX512/VNNI bit-identical
UCI
- ponder actually works now (go ponder + ponderhit)
- go nodes / go mate, MoveOverhead option, Hash 1-65536 MB
- EvalFile loads external nets of the same format
- built-in bench, perft, d
Estimated rating: ~3550 Elo (40/15 time control, over 500 games)
Ravager Fury
Features
- Replaced Leorik NNUE with a new embedded network and optimized C11 inference.
- Added Lazy SMP multithreading with private worker search/evaluation state and a shared, thread-safe transposition table.
- Implemented full Chess960 support, including X-FEN/Shredder-FEN castling rights and overlapping or stationary castling.
- Improved move ordering, pawn history, 4-ply continuation history, SEE checks, LMR, and null-move verification.
- Enhanced time management with root-move node accounting and asynchronous UCI search for responsive
stopandisreadycommands. - Improved network-load validation and Windows memory alignment.
- Removed the zstd dependency for self-contained Linux and Windows builds.
- Added regression tests for NNUE, Chess960, perft, and multithreading.
Match Score (Ravager Fury vs Ravager 2.1)
| Metric | Result |
|---|---|
| Elo Difference | +161.29 ± 6.56 (95% confidence) |
| Time Control | 60.0+0.60s |
| Threads | 1 |
| Hash | 64 MB |
| Games Played | 3,645 |
| Wins | 1,814 |
| Losses | 236 |
| Draws | 1,595 |
| Pentanomial | [6, 40, 386, 1146, 2421] |
Builds & Compatibility
- Self-contained Linux and Windows builds.
- Available in ZIP and TAR.GZ archives.
- No external zstd dependency required.
Ravager 2.1
Downloads
| file | platform | notes |
|---|---|---|
ravager2.1-linux-x64.tar.gz |
Linux x86-64 | AVX2/BMI2/POPCNT, glibc |
ravager2.1-windows-x64.zip |
Windows x64 | static build, no DLLs |
Both binaries are fully self-contained: the NNUE net is embedded, the texel-tuned HCE is the built-in fallback. Unpack, point your GUI (UCI) at the executable and play. The only optional configuration is SyzygyPath for endgame tablebases — everything else works out of the box.
Strength
- vs Ravager 2: +50 ± 20 Elo over 500 games (40/15 + 0.1s, 250 mirrored pairs)
Improvements in Ravager 2.1
- Search & Move Ordering:
- Singular extensions with double extension and multi-cut pruning
- Late Move Reductions (LMR) informed by combined continuation history (CMH)
- Full SEE-based capture ordering and new capture history heuristic table
- Quiescence search with TT probing and storing
- Adaptive null-move pruning and losing-capture pruning
- Dynamic score-adaptive aspiration windows
- Transposition Table:
- Cache-line prefetching to reduce memory latency
- Age-penalized quality replacement strategy
- Evaluation:
- Rook on 7th rank bonuses
- King safety contact check evaluation
- Blocked passed pawn discount and weak square detection
- Time Management:
- Phase-aware time budgeting with score oscillation protection
Build from source
make # self-contained binary (~5 MB)
make EVALFILE= # HCE-only binary (~170 KB)Ravager 2
Downloads
| file | platform | notes |
|---|---|---|
ravager2-linux-x64.tar.gz |
Linux x86-64 | BMI2/POPCNT, glibc |
ravager2-windows-x64.zip |
Windows x64 | static build, no DLLs |
Both binaries are fully self-contained: the NNUE net is embedded, the
texel-tuned HCE is the built-in fallback. Unpack, point your GUI (UCI) at the
executable and play. The only optional configuration is SyzygyPath for
endgame tablebases — everything else works out of the box.
Highlights
- NNUE evaluation —
(768→H)x2dual-perspective accumulator; loads
Ravager-format and Leorik-format bucketed SCReLU nets natively. Default
build embeds the640HL-S-5io8Leorik net via incbin. - Syzygy tablebases (Pyrrhic, vendored): WDL probing in search,
DTZ-optimal root moves. UCI:SyzygyPath,SyzygyProbeLimit,
Syzygy50MoveRule. - Texel-tuned HCE: tuner v2 with EPD datasets + golden-section K search;
parameters retuned on the Zurichess quiet-labeled set.
Measured strength
- vs Ravager 1 (2+0.02, 150 games, LOS 100%): tuned HCE +271 ± 70,
NNUE +568 ± 178 - Open-engine tournament (10+0.1): 55/60 vs Fruit 2.1, Toga II 1.2.1a,
Glaurung 2.2, Senpai 1.0, Crafty 25.x, Phalanx XXIII - BayesElo anchored estimate: ≈2950 Elo
Build from source
make # self-contained binary (~5 MB)
make EVALFILE= # HCE-only binary (~170 KB)See README.md for the full UCI option list and CREDITS.md for bundled
third-party components.
Ravager 1
Ravager 1 — pure handcrafted-evaluation chess engine.
No NNUE. No opening book. No endgame tablebases.
Strength: ~2380 CCRL-blitz scale (95% CI 2320-2445), measured with
cutechess-cli vs CT800 1.46 (CCRL 2708) and Amundsen 0.80 (CCRL 2325),
148 games total, Bayesian Elo fit (Davidson draw model, anchor priors).
Highlights:
- Tapered handcrafted evaluation, texel-tuned (datagen + tuner included)
- PVS search: aspiration, singular + double-check extensions, LMR/LMP/
futility/razoring, adaptive NMP + verification, ProbCut, improving-scaled
margins, continuation history, predictive time management - Incremental PSQT/material/phase accumulators, pawn-structure hash
- BMI2/PEXT sliding attacks (x86-64 with BMI2 required for this binary)
- Verified by exhaustive perft (startpos, Kiwipete, CPW 3-6)
Build from source: make
Full credits: see CREDITS.md