Lumac0 chess engine
Lumac0 is a chess engine written from scratch in C++ by @dbenson42.
It is also avalaible on Lichess, and it's rated around 2000 points.
The engine is under continous improvement, and still needs a lot of optimizations.
Lumac0 doesn't require any third party library, all you need in order to compile it is a c++ compiler, preferably g++.
The windows x64 binary is precompiled in the releases.
Here is the command to compile the engine using g++ once you're in the directory (lumac0/src):
g++ -std=c++11 -Ofast -olumac0.exe lumac0.cpp
Lumac0 is a traditional chess engine without any kind of NN-related code.
- Alpha-Beta negamax search
- Transposition tables using zobrist hashing
- Quiscence search
- Iterative deepening
- Gradually widening aspiration windows
- Late move reductions
- Static null move pruning
- Null move pruning
- Futility pruning
- Razoring
- Check extensions
- Q-search only has MVV-LVA
- Hash move first
- MVV-LVA
- Countermove Heuristic
- History Heuristic
- Killer Moves
- Piece-square tables
- Passed, doubled, isolated pawns
The engine uses the UCI interface. It has the following options (excluding almost useless ones):
- Threads: Number of threads used by the engine, minimum (and suggested) value is 2: 1 for the search and 1 for the input checking.
- Hash: How many Megabytes of RAM the engine is allowed to use for the TT.
- Ponder: Whether pondering is activated or not. (Pondering = thinking during the opponent's time)
Lumac0 is completely based upon information found on the Chess Programming Wiki.