⚡ Zig chess engine ⚡
- Fancy Magic Bitboards
- Staged Move Generation
- Transposition Table Move Ordering
- Principal Variation Move Ordering
- Static Exchange Evaluation
- Chess960 support
- Principal Variation Search
- Alpha-Beta Pruning
- Aspiration Window
- Late Move Reductions
- Null Move Pruning
- Reverse Futility Pruning
- Mate pruning
- Razoring
- Internal iterative reductions
- Quiescence Search
- Threefold Repetition
- Time Management
- Tuned Piece-square Tables
- AlphaZero Average Piece Values
- Tapered Evaluation
- Transposition Table Evaluation
- Endgame Heuristics
- Pawn Structures Heuristics
- Bishop pair bonus
- Mobility Bonus
Time control: 120+1
CCRL blitz benchmark.
| Rank | Name | CCRL | Elo | + | - | games | score | oppo. | draws |
|---|---|---|---|---|---|---|---|---|---|
| 1 | radiance_4.3 | 1961 | 10 | 10 | 6144 | 84% | 1641 | 12% | |
| 2 | radiance_4.2 | 1803 | 1803 | 8 | 8 | 6144 | 64% | 1693 | 21% |
| 3 | radiance_4.1 | 1675 | 1640 | 8 | 9 | 7419 | 51% | 1593 | 16% |
| 4 | radiance_4.0.1 | 1480 | 8 | 8 | 14312 | 65% | 1249 | 8% | |
| 5 | radiance_3.5 | 1322 | 1222 | 8 | 8 | 10216 | 66% | 1025 | 11% |
| 6 | radiance_3.4 | 1300 | 1198 | 8 | 7 | 10218 | 64% | 1028 | 11% |
| 7 | radiance_3.3 | 1146 | 8 | 8 | 10216 | 59% | 1034 | 11% | |
| 8 | radiance_3.2 | 1135 | 8 | 8 | 10215 | 58% | 1036 | 11% | |
| 9 | radiance_3.1.1 | 1119 | 965 | 8 | 8 | 9552 | 45% | 1015 | 9% |
| 10 | radiance_3.0.1 | 689 | 9 | 9 | 9552 | 20% | 1050 | 9% | |
| 11 | radiance_2.4 | 647 | 9 | 9 | 9552 | 16% | 1055 | 10% | |
| 12 | radiance_2.3 | 874 | 602 | 9 | 10 | 9552 | 13% | 1061 | 9% |
zig build run -release=fast
zig build deploy
zig build test --release=safe
| Name | Type | Default value | Valid values | Description |
|---|---|---|---|---|
Hash |
spin | 256 | [1, 65535] | Memory allocated to the transposition table (in MB). |
Threads |
spin | 1 | [1, 1] | Number of threads used to search. |
Evaluation |
combo | "PSQ" | ["PSQ", "Shannon", "Materialist"] | Type of evaluation function. |
Search |
combo | "NegamaxAlphaBeta" | ["NegamaxAlphaBeta", "Random"] | Type of search function. |
UCI_Chess960 |
check | false | ["true", "false"] |
uciisreadysetoption name <string> [value <string>]position [(fen <string> | startpos | kiwi | lasker) [moves <string>...]]evalgo [movetime <int> | wtime <int> | btime <int> | winc <int> | binc <int> | nodes <int> | depth <int> | infinite | perft <int>]benchstopquitucinewgamed
This project was originaly written in C++ before 4.0 version and archived under the name radiance_archived.
- Avalanche engine is a great example of how a zig project should be coded. Radiance engine still uses its pseudo random number generator (MIT License - Copyright (c) 2023 Yinuo Huang).
- Stockfish with its aggressive pruning methods.
- Chess Programming Wiki.
I'm radiant!
