JustBot is my first attempt at creating a UCI chess engine with magic bitboards without any agentic or LLM assisted coding.
Author: Hassan Fakih Rating Chess Engines Diary CEDR=3218
JustBot 0.4.0 what's new?
Now supports Chess 960! (Shredder FENs only)
Results Against Previous Version
STC:
Elo | 236.68 +- 9.88 (95%)
Conf | 8.0+0.08s Threads=1 Hash=32MB
Games | N: 3066 W: 1877 L: 61 D: 1128
Penta | [0, 16, 239, 724, 554]
LTC:
Elo | 198.75 +- 14.90 (95%)
Conf | 60.0+0.60s Threads=1 Hash=128MB
Games | N: 1008 W: 530 L: 9 D: 469
Penta | [0, 2, 110, 261, 131]
4T STC:
Elo | 221.07 +- 16.08 (95%)
Conf | 8.0+0.08s Threads=4 Hash=128MB
Games | N: 1010 W: 587 L: 19 D: 404
Penta | [1, 2, 86, 260, 156]
4T LTC:
Elo | 207.28 +- 22.14 (95%)
Conf | 60.0+0.60s Threads=4 Hash=512MB
Games | N: 520 W: 286 L: 8 D: 226
Penta | [0, 1, 56, 127, 76]
What's Changed
Re-Trained NNUE with Additional Games from Latest Datagen by @HasanFakih21 in #75
Singular Extensions by @HasanFakih21 in #76
Add Excluded Guard by @HasanFakih21 in #77
History Pruning by @HasanFakih21 in #78
First Tune Attempt by @HasanFakih21 in #79
Added More LMR Terms by @HasanFakih21 in #80
Negative Extensions by @HasanFakih21 in #81
Update NMP by @HasanFakih21 in #82
Correction Histories (Pawn and Non-Pawn) by @HasanFakih21 in #83
Check for Timeouts After NMP Search by @HasanFakih21 in #84
Added Razoring by @HasanFakih21 in #85
Update Singular Extension Guards by @HasanFakih21 in #86
Add Score Less Than or Equal to Alpha or Cut-node Guard for TT Cutoffs by @HasanFakih21 in #87
Added Horizontal Mirroring to NNUE by @HasanFakih21 in #88
Restructured Network by @HasanFakih21 in #89
Update Repetition Detection by @HasanFakih21 in #90
Double Extensions by @HasanFakih21 in #91
Re-Trained NNUE with Additional Games by @HasanFakih21 in #92
Added 3 Input Buckets by @HasanFakih21 in #93
Lerp RFP Returned Score by @HasanFakih21 in #94
NNUE Fused Updates by @HasanFakih21 in #95
NNUE Lazy Updates by @HasanFakih21 in #96
Added Node Scaling to Time Management by @HasanFakih21 in #97
Update Bench Command by @HasanFakih21 in #98
Removed Check Extensions by @HasanFakih21 in #99
Added History to LMR by @HasanFakih21 in #100
Finny Tables and Some SIMD Intrinsics by @HasanFakih21 in #101
Added Optimizations to the NNUE Output Function by @HasanFakih21 in #102
Reuse Evaluation in Excluded Search by @HasanFakih21 in #103
Added Support For Go Movetime by @HasanFakih21 in #104
Newly Trained Net with Size 768 HL by @HasanFakih21 in #105
Updated LMP Formula by @HasanFakih21 in #106
Added Support For Chess960 by @HasanFakih21 in #107
Scale Soft Time Bound Based on Number of Moves by @HasanFakih21 in #108
Don't Let Worker Threads Timeout/Only Main Thread Stops Worker Threads by @HasanFakih21 in #109
Direct Check Guard in Qsearch LMP by @HasanFakih21 in #110

Comments
Post a Comment