UCI bitboard chess engine written in C++20
The goal of the project is experimentation. I want to see how far I can push the engine to play better while learning various techniques of optimization.
To see the games played or play a game on your own checkout the profile on lichess, bullet, blitz and rapid challenges, ranked or casual, are accepted.
Check out the games carried out by CCLR for up to date rating against other engines.
-
Linux
- CMake 3.25.2 or latter
- Compiler with C++20 support (tested: clang 16.0.5, gcc 13.2.0)
-
Windows
- Visual Studio (tested: Community 2022 17.9.2)
- Clone the repo
- Make a build folder and cd into it
- Run
cmake -DCMAKE_BUILD_TYPE=Release <path to cloned repo>
-
Run the engine by running:
./bin/engine
-
The engine accepts commands on the standard input and produces results to the standard output
-
To communicate with the engine use UCI command. Reference for UCI protocol can be found here
- To see the options for additional tools run one of the following commands form the build directory:
./bin/perft -h
- Changes to the move generation can be tested with
ctest
on a predefined set of positions
-
1.4
- Better time management
- Pawn hash table
-
1.3
- Build engine on Windows using Visual Studio
- Improve compilation time
-
1.2
- Improved evaluation using interpolation
- Incremental sorting
- Fix timeouts
-
1.1
- Add Arena
-
1.0
- Initial Release
This project is licensed under the MIT License - see the LICENSE file for details
Big thanks to Gabor Szots from CCRL testing group, for taking an interest in this project by allowing Stellar to compete with other engines.
Inspiration, code snippets, etc.