Wordfish is a free, open-source UCI chess engine implementing cutting-edge search algorithms combined with neural network evaluation. Derived from fundamental chess programming principles, Wordfish analyzes positions through parallelized alpha-beta search enhanced with null-move pruning and late move reductions.
Author: Jorge Ruiz Centelles and the Stockfish developers
Wordfish 4.30 030326 what's new?
Deterministic EXE + UCI identity per architecture (GUI-friendly): each build reports a stable, searchable UCI name that matches the produced executable. This avoids “engine identity drift” after upstream syncs and keeps tournament telemetry clean.
Required, case-sensitive identifiers (examples): Wordfish-4.30-030326-sse41popcnt, Wordfish-4.30-030326-avx2, Wordfish-4.30-030326-bmi2, Wordfish-4.30-030326-FMA3, Wordfish-4.30-030326-avx512.
bmi2 is correctly labelled (no “unknown” for the bmi2 build): the per-ARCH tag selection is driven by compile-time capabilities (e.g. PEXT/BMI2), so a bmi2 build is reported and indexed as -bmi2 (not a generic fallback).
UCI output hygiene: removed the duplicate id author line so GUIs and log parsers receive a clean, single identity block. This is a small change with a big practical payoff for automated tournament tooling.
Upstream sync (no functional change): applied Stockfish change “Simplify attackers_to_exist function”. This is a minimal code clean-up intended to be behaviour-preserving.
NNUE verification cache (less repeated work): network verification is cached behind a flag and only re-runs when networks or verify-callbacks change. This reduces repeated verification overhead and keeps the analysis stream steadier.
Pre-search NNUE replica warmup (smoother go-time): immediately after verification, the engine warms up the replicated NNUE state (threads.ensure_network_replicated()) so search starts with a ready-to-use network replica. This is intended to reduce “first-move hiccups” and improve smoothness under real tournament conditions.
Compatibility note: Wordfish 4.30 does not aim to change evaluation semantics compared to 4.20. The intent is operational: stable identity, clean UCI output, and smoother NNUE handling.
Why these changes matter in practice: many chess GUIs index engines primarily by the UCI id name string. If the binary name and UCI name do not match consistently, users can end up running the wrong build (e.g. avx2 vs bmi2) without noticing. IJCCRL releases therefore treat the UCI identity as part of the build artefact, not a cosmetic detail.
Wordfish 3.10 011125 vs other engines:
| Stockfish 17.1 | 10/22 | -2 | 22 games |
| SugaR 1.0.1 | 9.5/22 | -3 | 22 games |
| ShashChess 40 | 8.5/18 | -1 | 18 games |
| Stockfish dev-20251102 | 8.5/18 | -1 | 18 games |
| HypnoS 1.00 | 7.5/18 | -3 | 18 games |
| DarkSeid 7.0 EE | 6.5/16 | -3 | 16 games |
| SpecTral 11 | 6.5/14 | -1 | 14 games |
| CorChess 20251005 | 6.5/14 | -1 | 14 games |
| JudaS 1.0.1 | 6.5/14 | -1 | 14 games |
| Brainlearn 31 | 6/14 | -2 | 14 games |
| Killfish PB 151025 | 6/14 | -2 | 14 games |
| Artemis 18.8TR | 6/14 | -2 | 14 games |
| Kookaburra 3.11 | 5/14 | -4 | 14 games |
| Revolution 3.10 051125 | 4.5/14 | -5 | 14 games |
| Revolution 3.0 011125 | 4/8 | +0 | 8 games |
| PlentyChess 7.0.12 | 4/8 | +0 | 8 games |
| Tactical Titan 5.7 | 3.5/8 | -1 | 8 games |
| Solistafish Sep25 PB | 3.5/8 | -1 | 8 games |
| Deep Blue | 3/8 | -2 | 8 games |
| Revolution 3.40 081125 | 2.5/8 | -3 | 8 games |
| Omega Explorer 121025 | 3/6 | +0 | 6 games |

Comments
Post a Comment