Retour au registre
main·5ac41aa·En cours

Chess Engine

Moteur d'échecs et plateforme d'analyse en Rust pur.

Un moteur compatible UCI construit autour de bitboards rapides, d'une génération légale validée par perft, d'une recherche alpha-beta et d'une évaluation NNUE inspirée des moteurs modernes.

Dépôt privé
evaluation+0.42
depth
18
nodes
2.4M
pv
e4 c5 Nf3 d6
TypeSystème / IARôleArchitecture moteur, implémentation RustPériode2026crates6target3000+hot path0 alloc
Stack

Engine core

  • RustCore engine, board state and move encoding.
  • CargoWorkspace split across rules, search, UCI and tooling.
  • Bitboards64-bit board representation for fast attack masks.

Search

  • Alpha-BetaIterative search with move ordering and pruning.
  • NNUEEvaluation target for stronger positional scoring.
  • UCIProtocol layer for GUI compatibility and analysis.

Validation

  • PerftLegal move generation checked with node counts.
  • ZobristFast position hashing for repetition and tables.
  • CLILocal analysis workflows around FEN and PGN.
01

Pourquoi ce projet

Je voulais un projet où le modèle d'ownership, la disposition mémoire et les performances de Rust comptent vraiment.

Un moteur d'échecs force une boucle d'ingénierie nette : exactitude, ordre des coups, pruning, mémoire, puis qualité d'évaluation.

02

Comment ça marche

Le workspace est séparé en crates core, search, analysis, UCI, CLI et training pour tester chaque couche indépendamment.

Le chemin critique utilise un encodage compact des coups, des bitboards, du Zobrist hashing et du make/unmake move pour éviter les allocations inutiles.

03

Choix techniques

  1. 01

    Isoler chess-core de la recherche

    La génération des coups et l'état du plateau restent légers en dépendances, ce qui rend les tests perft et les usages futurs plus clairs.

  2. 02

    Cibler NNUE

    L'évaluation classique sert de baseline, mais NNUE donne au projet une trajectoire sérieuse vers un meilleur niveau de jeu.

  3. 03

    UCI dès le départ

    La compatibilité avec les GUIs existantes permet de tester le moteur hors de son propre CLI.

04

Ce que j'ai appris

  • Les outils de vérification comptent plus que le pruning malin au début.
  • Les petits choix de représentation s'accumulent quand ils tournent sur des millions de nœuds.