Skip to content

Chimp 1.0 🐒

Choose a tag to compare

@github-actions github-actions released this 12 Apr 19:40
· 95 commits to main since this release
304002e

I'm excited to announce Chimp 1.0! My primary goal for the first proper release was to develop an engine strong enough to beat me in a 10-game chess match — and Chimp has finally done it.

This release also follows a significant source code cleanup and git tree restructuring to establish a stable foundation for future development. I'm releasing early to document progress from this point onward, thus the monkey will only get stronger from here.

While Chimp is still evolving, current strength testing shows it beating Stash 9 (~1300 ELO) but losing to Stash 10 (~1600 ELO), placing it roughly in this ELO range.
Future releases will include more rigorous and detailed ELO benchmarks using SPRT and head-to-head testing.

Special thanks to the chess programming discord servers mentioned in the README, and particular gratitude to Disservin for his excellent Chess Library in C++.

Features

Search

  • Negamax Search
  • Alpha-beta Pruning
  • Iterative Deepening
  • Move Ordering
    • Transposition Table
    • MVV-LVA for capture moves
    • Killers for quiet moves
  • Quiescence Search
  • Mate Distance Pruning
  • Principal Variation Search

Evaluation

  • Material Score
    • Piece-Square Tables
    • Bishop Pair Bonus
  • Mobility Score
  • Game Phase Interpolation

SPRT Results

v0.9.0: Mobility Eval Score and Bishop Pair Bonus
Elo   | 304.28 +- 77.50 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=64MB
LLR   | 3.11 (-2.94, 2.94) [0.00, 10.00]
Games | N: 186 W: 156 L: 25 D: 5
Penta | [0, 2, 23, 3, 65]
v0.8.1: Codebase Cleanup
Elo   | 1.20 +- 7.53 (95%)
SPRT  | 8.0+0.08s Threads=1 Hash=64MB
LLR   | 2.94 (-2.94, 2.94) [-10.00, 0.00]
Games | N: 5498 W: 2366 L: 2347 D: 785
Penta | [380, 318, 1333, 339, 379]
v0.8.0: Killers
Elo   | 509.20 +- 185.12 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=16MB
LLR   | 2.98 (-2.94, 2.94) [0.00, 10.00]
Games | N: 158 W: 149 L: 7 D: 2
Penta | [0, 0, 7, 2, 70]
v0.6.0: Quiescence Search + SEE
Elo   | 351.67 +- 91.45 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=16MB
LLR   | 3.09 (-2.94, 2.94) [0.00, 10.00]
Games | N: 180 W: 155 L: 17 D: 8
Penta | [1, 0, 15, 8, 66]
v0.5.0: MVV-LVA
Elo   | 245.11 +- 65.34 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 3.01 (-2.94, 2.94) [0.00, 10.00]
Games | N: 204 W: 158 L: 34 D: 12
Penta | [3, 2, 26, 10, 61]
v0.4.0: PeSTO Evaluation
Elo   | 246.60 +- 50.92 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 2.95 (-2.94, 2.94) [0.00, 10.00]
Games | N: 190 W: 130 L: 14 D: 46
Penta | [0, 3, 15, 35, 42]
v0.3.0: Transposition Table
Elo   | 81.48 +- 23.95 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 2.98 (-2.94, 2.94) [0.00, 10.00]
Games | N: 330 W: 111 L: 35 D: 184
Penta | [1, 18, 66, 64, 16]
v0.2.0: Alpha-Beta Pruning
Elo   | 21.74 +- 9.36 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 2.97 (-2.94, 2.94) [0.00, 10.00]
Games | N: 624 W: 63 L: 24 D: 537
Penta | [0, 18, 238, 55, 1]
v0.1.0: Random Move Generator
Elo   | 135.39 +- 17.81 (95%)
SPRT  | 10.0+0.10s Threads=1 Hash=8MB
LLR   | 6.15 (-2.94, 2.94) [0.00, 10.00]
Games | N: 512 W: 192 L: 2 D: 318
Penta | [0, 2, 99, 118, 37]