Verychess 0.10.0 new version chess engine


VeryChess  introduces multi-threaded search based on the Lazy SMP approach, with support for 1 to 256 search threads and a shared lock-free transposition table.
Author: Oleh Sych  Rating Chess Engines Diary CEDR=2729

Verychess what's new?
Overview
This release is anchored by one change — a reworked quiet-move history heuristic — that is worth more than any single mechanism the engine has shipped before: +120 Elo. Around it, `evaluate()` was restructured for speed with no change in the numbers it produces, two new positional terms were added.

Strength
In a gauntlet tournament against other well-known chess engines (the permanent testing group used for VeryChess benchmarking) on an ARM64 Mac with an M2 CPU, VeryChess 0.10.0 achieved a rating of 2909 ± 27 ELO. Compared with VeryChess 0.9.0, which scored 2845 ± 30 ELO under the same benchmark configuration, version 0.10.0 shows an improvement of +64 ELO.

What's new
History framework v2
The quiet-move history table had grown without bound for the whole game — a move that had caused a cutoff once early on could carry a score in the hundreds of thousands by move 40, which made a long-standing "good history → reduce less" rule in late-move reductions almost always true and therefore nearly meaningless late in the game. Three changes together fix this:

The history score is now updated with a bounded-gravity formula instead of a plain running sum, keeping every value within a fixed range for the entire game.
Quiet moves that were searched before the move that eventually caused a cutoff now receive a negative adjustment, not just the winning move a positive one — the first time this engine has used negative evidence for the main history table.
The late-move-reduction correction that used to be a single fixed step ("reduce one ply less past a threshold") is now continuous and scales with the bounded score in both directions.
Evaluation performance: incremental state
`evaluate()` had been the largest single item in the engine's CPU profile (31% of active search time) since move generation and move ordering were last optimised. Material, piece-square tables, non-pawn material and game phase are now maintained incrementally on `Board` — updated on each piece placement/removal/move exactly like the existing incremental Zobrist hashing — instead of being recomputed from scratch at every node. A second pass merged four separate per-piece loops (mobility, king-safety attack detection, and rook-file scoring) into one, and pawn attack maps switched from a per-pawn loop to two whole-board shift operations.

Two new evaluation terms
King pawn shelter rewards a castled king with its own pawns still in front of it and candidate passer gives a smaller bonus to a pawn that is not yet passed but would become so after a natural pawn trade. Both were hand-set rather than machine-tuned: the automatic (Texel) tuner was tried first on several related ideas this cycle and its curve fits did not survive a held-out strength test, so these two constants were chosen by hand and validated the same way every other change in this release was — by playing games, not by fitting a curve.

Compatibility
Both macOS binaries have been rebuilt to run on older systems: the Intel one (`bin/MacOS-x64/verychess`) on macOS 10.15 Catalina and later, the Apple Silicon one (`bin/MacOS-arm64/verychess`) on macOS 11 Big Sur and later. The original builds accidentally required the newest macOS (26) — so the Intel binary could not start on any Intel Mac, and the Apple Silicon binary contradicted the "macOS 12+" stated here.


Comments

Popular posts from this blog

Reckless 0.9.0 - new version super strong chess engine

Reckless 0.10.0 - new version super strong chess engine