PZChessBot is a basic negamax engine.
Author: Kevin Lu
v.6.0 What's Changed
PZChessBot v6.0 is here, with:
Bare-bones SMP support, tested up to 8 threads but up to 64 should be supported
Much stronger NNUE evaluation
Several search improvements along with a full search tune
Once again, the NNUE is provided for those who wish to compile, but you do not need to download it to run PZChessBot.
Estimated Elo: ~3600 CCRL blitz, 3520 CCRL 40/15
Tests:
main vs v5.0 STC (balanced book):
Elo | 122.83 +- 6.55 (95%)
Conf | 8.0+0.08s Threads=1 Hash=32MB
Games | N: 4044 W: 1813 L: 440 D: 1791
Penta | [5, 126, 604, 1065, 222]
https://ob.int0x80.ca/test/12/
main vs v5.0 LTC (balanced book):
Elo | 114.43 +- 5.95 (95%)
Conf | 40.0+0.40s Threads=1 Hash=128MB
Games | N: 4004 W: 1395 L: 122 D: 2487
Penta | [1, 61, 796, 952, 192]
https://ob.int0x80.ca/test/11/
main vs Tarnished v3.0 LTC (UHO):
Elo | 34.58 +- 8.52 (95%)
Conf | 40.0+0.40s Threads=1 Hash=128MB
Games | N: 2006 W: 646 L: 447 D: 913
Penta | [13, 165, 458, 344, 23]
https://ob.int0x80.ca/test/15/
main vs v4.0 LTC (balanced book):
Elo | 229.78 +- 11.92 (95%)
Conf | 40.0+0.40s Threads=1 Hash=128MB
Games | N: 2006 W: 1229 L: 67 D: 710
Penta | [0, 11, 161, 489, 342]
https://ob.int0x80.ca/test/16/
What's Changed
Fix raw eval storing by @kevlu8 in #179
Add an input bucket by @kevlu8 in #180
Add 2-fold repetition detection by @kevlu8 in #181
No RFP in ttpv nodes by @kevlu8 in #182
Add insufficient material detection by @kevlu8 in #183
Simplify FP and do more LMP by @kevlu8 in #184
make SEE pruning more aggro by @JonathanHallstrom in #185
make rfp quadratic by @JonathanHallstrom in #186
use history to adjust lmr by @JonathanHallstrom in #187
Fix tt corrected eval to use corrhist by @kevlu8 in #188
Fix crashes by @kevlu8 in #189
Use 4 input buckets by @kevlu8 in #190
Only do SE on first move and do not raise depth of entire node by @kevlu8 in #192
Do TT corrected eval in QS by @kevlu8 in #193
Fix overflow in corrhist by @kevlu8 in #194
Add more hashes for corrhist by @kevlu8 in #195
Add 3-ply conthist by @kevlu8 in #196
Adjust NMP return value when mate by @kevlu8 in #197
Add 4-ply conthist by @kevlu8 in #198
More LMP when not improving by @kevlu8 in #199
Change corrhist to use gravity formula by @kevlu8 in #200
No NMP in PVNodes by @kevlu8 in #202
Modify corrhist update condition by @kevlu8 in #203
Add material scaling by @kevlu8 in #204
Fix aspiration window stuff by @kevlu8 in #205
Add base reduction constant by @kevlu8 in #206
Fix move handling and conthist by @kevlu8 in #207
Remove check extensions by @kevlu8 in #208
Fix corrhist update conditions by @kevlu8 in #209
Add nonpawn corrhist by @kevlu8 in #210
Simplify hash management by @kevlu8 in #211
Do more SE by @kevlu8 in #212
Use only 1 killer move by @kevlu8 in #213
Don't do corrections in singular search by @kevlu8 in #214
Lower corrhist size by @kevlu8 in #215
Add major correction history by @kevlu8 in #216
Revert "Add major correction history (#216)" by @wdotmathree in #217
Add SPSA Values by @kevlu8 in #218
Fix MAX_PLY issues and bump version number by @kevlu8 in #219
PzChessBot 2.0 vs other engines:
| Emerald 0.3.0 | 2/2 | +2 | 2 Partii |
| Ironfang 1.0 | 2/2 | +2 | 2 Partii |
| Fridolin 4.00 JA | 2/2 | +2 | 2 Partii |
| Freda 1.1 | 2/2 | +2 | 2 Partii |
| Libra-chess 1.0.1 | 2/2 | +2 | 2 Partii |
| Kraken 2025-06-16 | 1.5/2 | +1 | 2 Partii |
| Maelstrom 2.1.0 | 1.5/2 | +1 | 2 Partii |
| Lunar 0.2.1 | 1/2 | +0 | 2 Partii |
| Halogen 13 | 0.5/2 | -1 | 2 Partii |
| Zangdar 4.04 JA | 0.5/2 | -1 | 2 Partii |
| Celeris 1.0 | 0/2 | -2 | 2 Partii |
| Fire 10 | 0/2 | -2 | 2 Partii |
| Stormphrax 7.0.0 | 0/2 | -2 | 2 Partii |
| Zangdar 4.04 | 0/2 | -2 | 2 Partii |
| Aku 2025.6.12 JA | 0/2 | -2 | 2 Partii |
| PlentyChess 6.0.5 JA | 0/2 | -2 | 2 Partii |
| Fire 9.3 JA | 0/2 | -2 | 2 Partii |
Jim Ablett compiles:
github: https://github.com/kevlu8/PZChessBot/

Comments
Post a Comment