Update README

This commit is contained in:
2026-07-02 19:30:38 +03:00
parent 7548f3ec71
commit b05bb94ee9

View File

@@ -1,48 +1,54 @@
<h1 align="center">Zeal</h1> <h1 align="center">Zeal</h1>
**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. <p align="center">
<a href="https://github.com/stefiosif/zeal/actions/workflows/rust.yml">
<img src="https://github.com/stefiosif/zeal/actions/workflows/rust.yml/badge.svg" alt="CI">
</a>
<img src="https://img.shields.io/badge/rust-2021-orange.svg" alt="Rust 2021">
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT"></a>
</p>
**Zeal** is a UCI-compliant chess engine written in Rust.
## Build ## 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.
``` Requires Rust ([rustup](https://rustup.rs)).
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
### Linux / macOS
```sh
git clone https://github.com/stefiosif/zeal.git git clone https://github.com/stefiosif/zeal.git
cd zeal cd zeal
cargo b -r cargo build --release
./target/release/zeal ./target/release/zeal
``` ```
## Features ### Windows
Zeal implements a subset of well-established algorithms and techniques in the chess programming world.
- Board Representation ```powershell
- 8 Bitboards git clone https://github.com/stefiosif/zeal.git
- 8×8 mailbox cd zeal
- Search core cargo build --release
- Negamax Alpha-Beta Pruning .\target\release\zeal.exe
- Iterative Deepening ```
- Quiescence search
- Principal Variation Search ## Usage
- Check extensions
- Aspiration Windows Zeal speaks [UCI](https://www.chessprogramming.org/UCI), so it isn't meant to be played from the terminal directly. Point any UCI-compatible GUI like [Cute Chess](https://cutechess.com) at the compiled binary and play from there.
- Transposition Table cutoffs
- Pruning/Reductions ## Features
- Null Move Pruning
- Late Move Reductions - **Board**: 8 bitboards + 8×8 mailbox
- Reverse Futility Pruning - **Search**: Negamax Alpha-Beta, Iterative Deepening, Aspiration Windows, PVS, Quiescence, Check Extensions, Transposition Table
- Move Ordering - **Pruning**: Null Move, Reverse Futility, Late Move Reductions
- Transposition Table lookup - **Move Ordering**: TT move, MVV-LVA, killers, history heuristic
- Most Valuable Victim - Least Valuable Aggressor - **Evaluation**: PeSTO piece-square tables with tapered eval
- History table - **Time Management**: hybrid soft/hard timeout bounds
- Killer move
- Time Management
- Hybrid soft/hard timeout bounds
- Evaluation (from PeSTO)
- Piece-Square Tables
- Tapered evaluation
## Strength ## Strength
Zeal has no official rating yet. Expected ELO is around 2300 based on tests against Stash engine (which has many versions for benchmarking).
No official rating yet. Estimated around **2300 Elo**, based on self-play SPRT roughly on par with [Stash](https://gitlab.com/mhouppin/stash-bot) v17 (CCRL Blitz 2298).
## Credits ## Credits
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).
Thanks to CodeMonkeyKing's YouTube series and the [Engine Programming Discord](https://discord.gg/F6W6mMsTGN).