A chess engine created by two high school students, started when we were in middle school!
| Version | CCRL Blitz | CCRL 40/15 | Lichess Rapid |
|---|---|---|---|
| v20250311T07 | ~1900 | - | 2000 |
| v1.0 | 2713 | - | 2500 |
| v20250421T23-dev | ~3000 | - | 2600 |
| v2.0 | 2994 | - | 2650 |
| v20250621T09-dev | ~3100 | - | 2700 |
| v20250623T22-dev | ~3160 | - | 2800 |
| v3.0 | ~3350 | 3277 | 2850 |
| v20250729T08-dev | ~3420 | - | 2900 |
PZChessBot is a basic negamax engine.
- Basic alpha-beta pruning
- Quiescence search
- Principal-Variation Search
- Late-move reductions
- Late-move pruning
- Transposition tables
- Null-move pruning
- Move ordering using MVV+CaptHist, killer moves, history heuristic, and counter moves
- Aspiration windows and iterative deepening
- Check extensions
- Futility and reverse futility pruning
- Razoring
- Singular extensions
- Negative extensions
- History pruning
- Static exchange evaluation
- Hybrid bitboard + mailbox representation
- PEXT bitboards for lightning fast move generation
- NNUE-type evaluation with king buckets
- Runs a (768x16->512)x2->1x8 model model
- Trained on a mix of Stockfish and Lc0 Data
- The Stockfish Discord Server, specifically
#engines-devfor their help! - The bullet NNUE trainer
- The ChessProgramming Wiki for their clear albeit outdated explanations
- OpenBench for providing an excellent testing GUI
- sscg13 for sharing an OpenBench instance with me and helping me with a lot of miscellaneous stuff
- Lastly, YOU for checking out this project!