This repo was my first foray into chess programming, and it taught me a lot!
I've since split apart the various pieces here into their own repositories.
The primary ones I'd have you visit are chessie, my chess move generation library, and toad, the engine that succeeded brogle.
I'm leaving this repository up for now, but may remove it in the future.
Brogle (pronounced 'brog-lee' (like 'broccoli')) is a UCI-compatible chess engine.
This repository is a huge work-in-progress. Once the code reaches a state that I am content with, I will release a version 1.0.
The engine is where the source code for Brogle actually lives. Inside you can find the components for UCI-compatibility, search, evaluation, and more.
The core library is a home-rolled implementation of all the rules of chess. I intend to separate this into it's own repository later and publish it on crates.io.
The tools crate is a collection of tools I used during the development of this engine. These are mostly meant for me, so don't judge me if they're poorly-written or outdated.
-
Compatible with the Universal Chess Interface protocol
-
Magic Bitboards for sliding piece movement (rook/bishop/queen)
-
Search
- Negamax with alpha-beta pruning
- Principal Variation Search
- Iterative Deepening
- MVV-LVA move ordering
- Quiescence Search
- Transposition Table for move ordering and basic pruning
-
Evaluation
- HCE (hand-crated evaluation)
- Basic material difference evaluation
- Piece-Square tables with valued copied from the Simplified Evaluation Function
More features to be implemented as I find time!
This project is written in Rust. Since I (presently) don't have any precompiled binaries, you need to build from source with Cargo.
Once you've downloaded the code, a simple cargo run --release --bin brogle will launch the engine.
Special thanks to all
- Sebastian Lague, for his chess programming series on YouTube that ultimate inspired me to do this project.
- The Chess Programming Wiki, and all those who contribute to free, open-source knowledge.
- The folks over at the Engine Programming Discord, for their patience with my silly questions and invaluable help overall.
- Analog-Hors, for her excellent article on magic bitboards