Skip to content

ArjunBasandrai/elixir-chess-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elixir Chess Engine


License
GitHub release (latest by date) Commits since latest release

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+

Instructions to build

Building Elixir requires Make and latest versions of clang++ or g++ with C++20 support

make CXX=<compiler>
  • Replace <compiler> with your preferred compiler - either clang++ or g++
    • If not specified, the compiler defaults to clang++
  • Upon successful compilation, the binary file will appear in the root directory as elixir or elixir.exe depending on your operating system
    • You can also give a custom name to the binary by specifying it as EXE=<name> during compilation

Alternatively, you can download pre-compiled binaries from the Releases page

UCI Options

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.

Features

  • 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

Acknowledgements

  • 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.