⚡ Zig chess engine ⚡
- Fancy Magic Bitboards
- Staged Move Generation
- Fancy Magic Bitboards For Sliders
- Transposition Table Move Ordering
- Principal Variation Move Ordering
- MVV-LVA
- Chess960 support
- Principal Variation Search
- Alpha-Beta Pruning
- Aspiration Window
- Late Move Reductions
- Null Move Pruning
- Reverse Futility Pruning
- Quiescence Search
- Threefold Repetition
- Time Management
- Tuned Piece-square Tables
- AlphaZero Average Piece Values
- Tapered Evaluation
- Transposition Table Evaluation
- Endgame Heuristics
- Pawn Structures Heuristics
- Mobility Bonus
Time control: 120+1
CCRL blitz benchmark.
| Rank | Name | CCRL | Elo | + | - | games | score | oppo. | draws |
|---|---|---|---|---|---|---|---|---|---|
| 1 | radiance_4.1 | 1733 | 47 | 43 | 322 | 88% | 1343 | 10% | |
| 2 | radiance_4.0.1 | 1591 | 10 | 10 | 9618 | 91% | 1059 | 6% | |
| 3 | radiance_3.5 | 1326 | 1326 | 8 | 8 | 9616 | 70% | 1092 | 11% |
| 4 | radiance_3.4 | 1300 | 1302 | 8 | 8 | 9616 | 68% | 1095 | 11% |
| 5 | radiance_3.3 | 1250 | 8 | 7 | 9615 | 63% | 1101 | 11% | |
| 6 | radiance_3.2 | 1239 | 8 | 7 | 9615 | 62% | 1103 | 12% | |
| 7 | radiance_3.1.1 | 1116 | 1070 | 8 | 8 | 9552 | 45% | 1120 | 9% |
| 8 | radiance_3.0.1 | 793 | 9 | 9 | 9552 | 20% | 1155 | 9% | |
| 9 | radiance_2.4 | 866 | 751 | 9 | 9 | 9552 | 16% | 1160 | 10% |
| 10 | radiance_2.3 | 865 | 707 | 9 | 9 | 9552 | 13% | 1166 | 9% |
zig build run -relase=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 <id> [value <x>]position [fen <string> | startpos | kiwi | lasker] [moves <string>...]evalgo [movetime <int> | [wtime <int>] [btime <int>] [winc <int>] [binc <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!
