2024-09-16 19:32:45 +03:00
2024-09-21 15:42:53 +03:00
2024-09-16 19:32:45 +03:00
2024-09-16 19:32:45 +03:00
2024-08-15 00:08:04 +03:00
2024-09-20 23:46:09 +03:00

Zeal

Zeal is a UCI-compliant chess engine written in Rust. I began writing Zeal as a side project while learning Rust. Beating a top engine like Stockfish felt like a long journey, so it seemed fitting to pair that challenge with learning Rust. Zeal is now nearing its first release, though it's still far from its ultimate goal.

Running and building Zeal

Play on Lichess

lichess - TODO

Run locally

git clone https://github.com/stefiosif/zeal.git
cargo run -- --mode uci

Run on Cutechess GUI (Windows)

git clone https://github.com/stefiosif/zeal.git
cd scripts
./build_windows_bat.sh

After building, find the executable in target/x86_64-pc-windows-gnu/release. Use zeal.bat to add Zeal to the Cutechess GUI.

Core

Board Representation

  • Bitboards
  • Redundant Mailbox for piece-square look ups

Move Generation

  • Pseudo-legal move generation
  • Magic bitboards for sliding pieces
  • Make/Unmake instead of Copy/Make

Communication Protocol

  • UCI
  • Negamax
  • Alpha Beta
  • Quiescence
  • Move ordering (MVV LVA)

Evaluation

  • Material evaluation
  • Piece-Square table evaluation

Next features

  • Iterative deepening
  • Principal Variation
  • Zorbist hashing
  • Transposition tables
  • ...

Rating

There's no ratings yet for Zeal.

Acknowledgements

Huge thanks to CodeMonkeyKing and his chess programming videos. His simplistic approach helped me understand the components that constitute a chess engine. Rustic's roadmap guided me in identifying which part of the engine to build next, while the book is an excellent resource for understanding various chess programming concepts. The Chess Programming Wiki provides detailed information about all chess programming topics. Last but not least, I have been reading the code of various chess engines to take ideas, some of them are bbc, rustic, tcheran, purple and rush.

Amazing tools:

Other resources:

Description
UCI-compliant chess engine.
Readme MIT 312 KiB
Languages
Rust 99.6%
Shell 0.4%