Facón is a chess engine built from scratch in C++17, designed as a learning project and long-term development platform. The name comes from the facón — a traditional Argentine gaucho knife, forged by hand, raw and functional.
Each version carries a codename that follows the knife-making process: from rough rusty iron to a sharp, precise blade.
Author: Carlos M. Canavessi
Facón 1.1 - Herrumbre what's new?
The second release, focused on search improvements and stability. Measured at +120 Elo over version 1.0 (gauntlet testing vs field Elo ~1358, 1040 games at 2min+1sec).
What's new in 1.1
Killer move heuristic — quiet moves that caused a beta cutoff are stored per-ply and tried before other quiet moves in sibling nodes. Improves move ordering significantly in quiet positions where MVV-LVA has no effect.
King safety — penalty for enemy pieces attacking the king zone. Grows quadratically with the number of attackers and scales with game phase (middlegame only).
Dynamic time management — replaced the fixed time budget with a soft/hard limit model. The soft limit is extended when the PV move changes between iterations (×1.5) or the score drops significantly (×1.25).
seldepth tracking — maximum depth reached including quiescence search, reported in the UCI info line each iteration.
Stability fixes — abort flag ensures all unmake_move() calls execute on timeout; root_best_move_ is always set from the actual move loop at the root, never from a TT probe; is_legal() now checks piece ownership before the expensive board copy, eliminating ghost moves from stale TT entries.
Version History
| Version | Codename | Elo gain |
|---|---|---|
| 1.1 | Herrumbre | +120 vs 1.0 (~1360) |
| 1.0 | Óxido | baseline (~1240) |

Comments
Post a Comment