Another UCI-compatible chess engine written in C++.
For now it only supports CPUs with AVX2 and BMI2 instructions. Support for other architectures might be added in the future.
See Release page for precompiled binaries
You can play against the engine on lichess: https://lichess.org/@/BabChess-Engine
The Bot is hosted on a machine with a Core i7 4785T. It will accept challenges up to 15min+10s, rated and casual.
Tested on Windows and Linux with GCC >= 12. Might also work with CLang
make release
Executable will be in ./build/Release/bin/belette[.exe]
Log every input and output of the engine to the specified file
Specify the hash table size in megabytes
For now this option doesn't do anything. It's only for compatibility purpose
perft 7, start position, Core i7 12700k
Nodes: 3195901860 NPS: 925007774 Time: 3455ms
### Search
- Iterative deepening
- Aspiration window
- Negamax
- Transpositation Table
- Check extension
- Null move pruning (NMP)
- Reverse futility pruning (RFP)
- Internal iterative reduction (IIR)
- Late move reduction (LMR)
- Late move pruning (LMP)
- SEE pruning
- Quiescence
### Move ordering
- Hash move (TT Move)
- MVV-LVA
- Killer moves
- Counter move
- Threats
- Checks
- Butterfly history heuristic
- Staged move generation (good captures, good quiets, bad captures, bad quiets)
### Evaluation
- Tapered
- Material
- PSQT ([PeSTO](https://www.chessprogramming.org/PeSTO%27s_Evaluation_Function))
## Credits
Resources and other engines that inspired me:
- [Chess Programming Wiki](https://www.chessprogramming.org/)
- [Gigantua](https://github.com/Gigantua/Gigantua)
- [Stockfish](https://stockfishchess.org/)
- [Ethereal](https://github.com/AndyGrant/Ethereal)