brito753 / Drofa

UCI chess engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Drofa

A UCI chess engine written in C++11. Drofa uses AB-search and combines hand-crafted evaluation (HCE) with supplementary NN, that uses King and Pawn (KPNN) positions as inputs (264 -> 16 -> 2).

This approach resulted in an engine of moderate strength.

Origins

Drofa started as fork of the Shallow Blue chess engine. My initial intention was to take weak, but stable and working chess engine and try to improve it, learning c++ along the way.

During my Drofa experiments huge chunk of knowlenge were received from:

  • VICE chess engine and tutorials.
  • Chessprogramming WIKI great place for all chessprogramming-related knowledge.
  • Weiss chess engine, with clean and understandable implementations of complex features. Drofa use Weiss 1.0 LMP base reduction formulas. Althouth Adagrad tuning implementation is not copy-pasted from Weiss, Drofa implementation closesy follows Weiss logic and can be considered a c++ rewrite of it.
  • Several open source engines, mostly Ethereal and Stockfish

Special thanks to:

  • Terje Kirstihagen (Weiss author)
  • Andrew Grant. AdaGrad paper and Ethereal chess engine are great sources of knowledge; Ethereal tuning dataset was a great help in tuning. As well as allowing me on main OpenBench instance
  • Kim Kahre, Finn Eggers and Eugenio Bruno (Koivisto team) for allowing Drofa on Koi OpenBench instance and motivating me to work on the engine
  • Jay Honnold (Berserk author) for helping me with NN stuff
  • OpenBench community for helping me with motivation, in finding bugs, teaching me (even if unknowingly) good programming practices and interesting discussions

Strength (ccrl blitz elo) - as of May 2023:

Drofa 1.0.0    2088
Drofa 1.3.1    2424
Drofa 2.0.0    2488
Drofa 2.0.0    2488
Drofa 3.0.0    2922
Drofa 3.1.0    3009
Drofa 3.2.0    3101
Drofa 3.3.0    3188
Drofa 4.0.0    ~3250 - etimated based on 3.3.22 results

Since version 3.3.23 Drofa supports FRC and DFRC, with a CCRL elo of 3244

Changelogs

With Drofa 4.0.0 many features was added on top of the Shallow Blue, adding up to more than 1000 elo. Almost-full changelog with SPRT results and ELO estimations for most of the features can be found in Changelogs folder.

UCI commands

Drofa 3.0.0 supports following UCI commands:

  • BookPath
  • OwnBook
  • Threads (1 to 172),
  • Hash (16 to 65536)

These options can be set from your chess GUI or the UCI interface as follows:

setoption name OwnBook value true
setoption name BookPath value /path/to/book.bin

License

During developement, many concepts found in GPL-3 engines were used. Thus, as of 4.0.0, Drofa also will be licensed as GPL-3.

2017 - 2019 © Rhys Rustad-Elliott (original Shallow Blue creator)

2020 - 2023 © Litov Alexander

About

UCI chess engine

License:GNU General Public License v3.0


Languages

Language:C++ 94.1%Language:C 5.6%Language:Makefile 0.3%