Skip to content

Wind-Eagle/Quirky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quirky

Overview

Quirky is a simple chess engine, supporting UCI protocol. Approximate CCRL 40/15 rating is around 3350.

The engine requires AVX2/BMI2 support to run, so make sure your processor supports these instruction sets.

Building from source

The project uses CMake as a build system. You will also need a C++20-compatible compiler.

To build the engine, do the following:

$ mkdir build
$ cd build
$ cmake ..
$ make -j8

Technical information

Quirky is based on alpha-beta pruning with various well-known heuristics and NNUE evaluation. It doesn't use autotuning of search constants, and aims to use as few complex and obscure heuristics as possible.

NNUE architecture is (768 -> 256) x2 -> 16 -> 32 -> 1. It was trained in the following way:

  • Numerous self-play games were played. The time control was set to 20ms per move. From this games we randomly sampled positions that were evaluated during search.
    • For Quirky 2.0 we used Quirky 1.0 as engine generating positions.
    • For Quirky 2.1 we used six slightly different Quirky 1.0 variants as engines generating positions.
  • From each game, we randomly selected 32 positions evaluated with the first engine, and 32 positions evaluated with the second engine.
  • We filtered out positions that were in check and positions where a simple quiescence search was able to find a winning capture.
  • We then used Stockfish with WDL scores to analyze each position for 100 ms.
  • Each entry for model learning consisted of a FEN string and a result (loss, draw, or win) sampled according to the WDL scores.

Quirky 1.0 NNUE was trained using a third-party dataset.

Dataset used for Quirky 1.0 NNUE

Dataset used for Quirky 2.0 NNUE

Dataset used for Quirky 2.1 NNUE

Thanks

Some code logic and architecture are derived from:

Other engines used for inspiration:

About

Yet another chess engine

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors