Releases: deanmchris/blunder
Blunder 6.0.0
Blunder 6.0.0 includes an implementation of reverse futility pruning and history heuristics, both which from self-play contributed 80-100 Elo. Additionally, the UCI stop command has been implemented, as well as some general code cleanups. Blunder 6.0.0's estimated rating is ~2100-2150 Elo.
- Engine
- UCI "stop" command
- Search
Blunder 5.0.0
Blunder 5.0.0 is a complete rewrite of the engine. Many basic design ideas and principles were kept, and some areas were just ported over, but the majority of the code-base was rewritten, and the layout of the project was completely changed.
The motivations behind this rewrite were twofold: First, I was dissatisfied with Blunder's speed and wanted to take another crack at creating an engine that was simply faster. Second, I didn't like how Blunder was designed in several places, and I quickly realized these "several places" constitued large chunks of the code-base. So Blunder 5.0.0 was the result.
From the testing I've done, Blunder 5.0.0 is 20-30% faster than Blunder 4.0.0, and perft(6) from the starting position was coming in at around 6-8s (14-18 Mnps), whereas perft(6) from the starting position for Blunder 4.0.0 was generally 10-12s (10-12Mnps). And overall, I'm happy with the refractoring I've done and my code feels cleaner in many of the places that bothered me. So both goals, all things considered, were meet.
Although Blunder 5.0.0 is a rewrite, it did build on Blunder 4.0.0, and two new features were added: a transposition table, and null-move pruning. Additional, the tapered evaluation has been refractored and is stronger. And the speed increase should add some Elo to engine, though I didn't test for a specfic amount. Overall, these changes have added about 200-250 Elo to the engine in self-play, and shows promising result in gaunlet tests from 1800-1900 Elo engines.
Since Blunder 5.0.0 is a rewrite, a listing of all of the current features are listed below:
- Engine
- Search
- Evaluation
(A binary for macOS will be added shortly)
Blunder 4.0.0
Blunder 4.0.0 includes "filtered" move generation. In other words, Blunder's move generator can now produce all moves or only captures. The ability to produce only capture moves were added to speed up quiescence search, and this speed-up gave Blunder a ~35 Elo increase (in self-play). Additionally, I did extensive refactoring of the size of types used throughout Blunder's codebase, and shrinking types to only as big as they needed to be speedup blunder and gained roughly another ~15 Elo (in self-play); putting Blunder's total Elo gain between version 3.0.0 and 4.0.0 at ~50 Elo (in self-play).
One more thing of note is that Blunder 4.0.0 is the first version to include releases for Windows and macOS in addition to Linux. Going forward, all future releases of Blunder will include releases targeting all three operating systems. If any of the three releases still don't work for you, see the README on how to build your own fairly easily. With these new releases, a bug had to be fixed with the way Blunder handled IO operations across platforms.
Engine
- Filtered move generation
- Refractored types to more conservative sizes
- Updated IO operations to be cross-platform compatible
Blunder 3.0.0
Blunder 3.0.0, now includes a tapered evaluation (and updated piece-square tables to better suit the update), killer move heuristics, and a transposition table, only for running perft. An upcoming feature will be a transposition table added to the search. These new features added to the search and evaluation phases of Blunder gave a collective increase of about ~207 Elo, putting at roughly ~1782 Elo in self-play.
- Engine
- Transposition table for perft
- Search
- Killer moves
- Evaluation
- Tapered evaluation
Blunder 2.0.0
Blunder 2.0.0 adds three new features: Zobrist hashing, because of the hashing, three-fold repetition detection, and better
piece-square table values, courtesey of Marcel Vanthoor, author of Rustic. A future
goal is to automatically generate piece-square table, and other evaluation values via Texel tuning. These features combined show an increase of ~170 Elo (+/- 25) in self-play testing against Blunder 1.0.0.
- Engine
- Search & Evaluation
- Three-fold repetiton detection
Blunder 1.0.0
This is the initial release of the Blunder chess engine. Features are listed below. Added features will be documented in future releases, and in docs/changelog
.
- Engine
- Search
- Negamax search framework
- Alpha-Beta pruning
- MVV-LVA move ordering
- Quiescence search
- Time-control logic supporting classical, rapid, bullet, and ultra-bullet time formats.
- Evaluation