White Dove is a chess engine developed entirely within the Scratch programming language, leveraging the enhanced capabilities of TurboWarp. Recognized as one of the top five chess engines in the Scratch/TurboWarp community.
Rating: ~2500 elo
- Alpha-Beta: Implements MiniMax with Alpha-Beta Pruning to efficiently evaluate potential moves.
- Quiescence Search: Enhances move evaluation by extending searches beyond standard depths to avoid overlooking critical moves.
- Late Move Reductions (LMR): Reduces depth of less promising moves, allowing deeper exploration of critical lines.
- Null Move Pruning (NMP): Prunes nodes where even skipping a move still is "too good".
- Principal Variation Search (PVS): Uses null-window searches to prove that a move is not as good as the known PV.
- NNUE: An "Efficiently Updatable Neural Network" is included, and it was trained with the NNUE / ML Bullet Trainer
- (768 => 256)x2 => 1
- Note that NNUE is off by default, but can be enabled via the command line interface, or the settings panel directly in the project
To experience White Dove:
- Access the Project: You can use the web version on Turbowarp or the Scratch one.
OR
- Download the .sb3 file: After downloading the .sb3 file, you can also download the Turbowarp desktop environment, next you can simply import and use!
Scratch is a block-based coding environment designed primarily to make teaching coding easy for absolute beginners. However, it is very very slow, due to various traits of the langauge itself.
So, various engine creators on Scratch also use Turbowarp (which is around 40x faster than Scratch), which is another developement environment, that still uses the Scratch programming language. The reason that it is much much faster is because it first compiles the code to Javascript before running it. Even then, it is still incredible inefficient (and slow compared to other languages, such as C++ or Rust), due to needing to have backwards compatibility with default Scratch.
GNU General Public License v3.0
Note: White Dove's development has been influenced by discussions and collaborations within the Scratch community. Special thanks to contributors such as @ArnoHu and @birdracerthree for their insights and support. A lot of code and techniques were also taken from various engines and resources including but not limited to the Chess Programming Wiki, the Stockfish Chess Engine (for a lot of the HCE elements, from SF11),Smallbrain, GoK, bullet NNUE trainer, lc0, and many more. This project would not have been possible without them!