Update README

This commit is contained in:
stefiosif
2025-04-04 19:18:48 +03:00
parent 5966b1984c
commit a5e8453bd4

View File

@@ -1,52 +1,48 @@
<h1 align="center">Zeal</h1> <h1 align="center">Zeal</h1>
**Zeal** is a UCI-compliant chess engine written in Rust. I started developing it as a side project while learning Rust. **Zeal** is a UCI-compliant chess engine. My primary goal with this project was to gain hands-on experience with Rust. Chess programming concepts were more interesting than I first anticipated, but also harder.
## Running Zeal ## Build
Currently the only way to interact with the engine is by building it from source and then importing it into a UCI-compatible GUI or CLI.
``` ```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://github.com/stefiosif/zeal.git git clone https://github.com/stefiosif/zeal.git
cargo r -r -- --mode uci cd zeal
cargo b -r
./target/release/zeal
``` ```
## Features ## Features
Zeal implements a subset of well-established algorithms and techniques in the chess programming world.
- Board Representation - Board Representation
- Bitboards - 8 Bitboards
- Redundant Mailbox - 8×8 mailbox
- Move Generation - Search core
- Magic Bitboards - Negamax Alpha-Beta Pruning
- Pseudo-Legal Generator - Iterative Deepening
- Unmake Move - Quiescence search
- Communication Protocol - Principal Variation Search
- UCI - Check extensions
- Search - Aspiration Windows
- Negamax - Transposition Table cutoffs
- Alpha-Beta Pruning - Pruning/Reductions
- Quiescence - Null Move Pruning
- Late Move Reductions
- Reverse Futility Pruning
- Move Ordering - Move Ordering
- MVV-LVA - Transposition Table lookup
- Transposition Table - Most Valuable Victim - Least Valuable Aggressor
- Evaluation - History table
- PeSTO's - Killer move
- Time Management - Time Management
- Iterative deepening - Hybrid soft/hard timeout bounds
- Hard limit - Evaluation (from PeSTO)
- Piece-Square Tables
- Tapered evaluation
## Strength
Zeal has no official rating yet. Expected ELO is around 2300 based on tests against Stash engine (which has many versions for benchmarking).
## Rating ## Credits
Unrated. Thanks to CodeMonkeyKing that provides a clear starting point with his youtube videos. The Engine Programming discord community helped me translate complex chess programming theory into code. Also, shoutout to all open source engines! Amazing tools during development include [Bitboard Calculator](https://gekomad.github.io/Cinnamon/BitboardCalculator/) for visualizing bitwise operations between bitboards, [Lichess Editor](https://lichess.org/editor) for board-to-FEN generation, [webperft](https://analog-hors.github.io/webperft/) for debugging the move generator and [cutechess](https://github.com/cutechess/cutechess)-cli for running SPRTs. Finally, I have to suggest a video from Bartek Spitza for the gentle introduction to chess programming: ["The Fascinating Programming of a Chess Engine"](https://youtu.be/w4FFX_otR-4?si=_Rt4wcJZsS2duMQM).
## Acknowledgements
Huge thanks to:
- CodeMonkeyKing for his chess programming videos
- Chess Programming Wiki
- `Engine Programming` discord server
Development tools:
- [Bitboard Calculator](https://gekomad.github.io/Cinnamon/BitboardCalculator/)
- [Lichess Editor](https://lichess.org/editor)
- [cutechess](https://github.com/cutechess/cutechess)
- [webperft](https://analog-hors.github.io/webperft/)
Cool videos:
- [The Fascinating Programming of a Chess Engine](https://youtu.be/w4FFX_otR-4?si=_Rt4wcJZsS2duMQM)
- [Coding Adventures: Making a Better Chess Bot](https://youtu.be/_vqlIPDR2TU?si=PKWe_Qu_CPGwIAwE)