⚡ 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.2 | 1844 | 10 | 10 | 4096 | 81% | 1594 | 22% | |
| 2 | radiance_4.1 | 1674 | 1673 | 10 | 10 | 5371 | 65% | 1489 | 18% |
| 3 | radiance_4.0.1 | 1514 | 8 | 8 | 12264 | 75% | 1165 | 8% | |
| 4 | radiance_3.5 | 1321 | 1256 | 8 | 7 | 10216 | 66% | 1059 | 11% |
| 5 | radiance_3.4 | 1300 | 1232 | 8 | 8 | 10218 | 64% | 1062 | 11% |
| 6 | radiance_3.3 | 1180 | 8 | 8 | 10216 | 59% | 1068 | 11% | |
| 7 | radiance_3.2 | 1169 | 8 | 7 | 10215 | 58% | 1070 | 11% | |
| 8 | radiance_3.1.1 | 1114 | 999 | 8 | 8 | 9552 | 45% | 1049 | 9% |
| 9 | radiance_3.0.1 | 722 | 9 | 9 | 9552 | 20% | 1084 | 9% | |
| 10 | radiance_2.4 | 681 | 9 | 9 | 9552 | 16% | 1089 | 10% | |
| 11 | radiance_2.3 | 864 | 636 | 9 | 9 | 9552 | 13% | 1095 | 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 <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!
