Elixir is a UCI-compliant chess engine developed in C++. It is the successor of my previous engine, Shuffle, and is under development with the goal of achieving an ELO rating of 3500+
Building Elixir requires Make
and latest versions of clang++
or g++
with C++20
support
make CXX=<compiler>
- Replace
<compiler>
with your preferred compiler - eitherclang++
org++
- If not specified, the compiler defaults to
clang++
- If not specified, the compiler defaults to
- Upon successful compilation, the binary file will appear in the root directory as
elixir
orelixir.exe
depending on your operating system- You can also give a custom name to the binary by specifying it as
EXE=<name>
during compilation
- You can also give a custom name to the binary by specifying it as
Alternatively, you can download pre-compiled binaries from the Releases page
Name | Type | Default value | Valid values | Description |
---|---|---|---|---|
Hash |
integer | 64 | [4, 1024] | Memory allocated to the Transposition Table (in MB). |
Threads |
integer | 1 | 1 | Number of Threads used to search. |
- Search : Standard PVS with Quiescence Search and Iterative Deepening
- Aspiration Windows Search
- Check Extension
- Repetition Draw Detection
- Mate Distance Pruning
- Transpotition Table (TT) cutoff
- Internal Iterative Reduction
- Razoring
- Reverse Futility Pruning
- Null Move Pruning
- Late Move Pruning
- Futility Pruning
- Static Exchange Evaluation (SEE) Pruning
- Late Move Reductions
- Move Ordering
- TT Move ordering
- Good and Bad Captures ordering using SEE
- Killer Move Ordering
- Counter Move History
- Butterfly History Move Ordering with maluses
- Evaluation : Hand Crafted Evaluation (HCE) using texel-tuned values
- Tapered Evaluation
- Material + Piece Square Table Evaluation
- Piece Mobility Evaluation
- Stacked Pawn Penalty
- Bishop Pair Bonus
- Passed Pawn Bonus
- Rook Open & Semi-Open File Bonus
- Tempo Bonus
- A special thanks to Ciecke, Zuppa, Yoshie, Shawn, A_randoomnoob, Gabe and everyone else on the StockFish Discord server for their continuous help in developing and bug-fixing Elixir.
- This project would never have been where it is right now, if it was not for the help of everyone on my OpenBench instance - Aron, Yoshie, Shawn, Mid. Massive CPU time donations by these guys is what enabled me to heavily test and tune Elixir.
- Andrew Grant for developing the OpenBench platform.