Skip to content

feftywacky/thrawn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

184 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Thrawn

Thrawn is a free UCI-compliant chess engine. I made this to learn about C++ and performance optmizations.

Thrawn does not include a graphical user interface (GUI) that is required to display a chessboard and to make it easy to input moves. These GUIs are developed independently from Thrawn and are available online. Some recommended GUIs include:

Rating/ELO

The rating of Thrawn is evaluated by CCRL

  • Thrawn v2.2 ~3000 ELO (SF NNUE)
  • Thrawn v2.0: ~2800 ELO (SF NNUE)
  • Thrawn v1.1: ~1900 ELO

Compiling Thrawn

Version v2.1 and later: supports x64 and ARM chips. Can compile for linux, macos, or windows.

Older verions: only supports x64 and windows compilation.

Ensure you have a gcc compiler version 7.3 or later.

Building from source

Compiling Thrawn v2.0 and newer:

git clone https://github.com/feftywacky/Thrawn.git
cd Thrawn
cd src

# release build
make # or mingw32-make

# debug build (only available for v3.0 or newer)
make BUILD=debug # or mingw32-make BUILD=debug

To clean the build:

make clean # or mingw32-make clean

Compiling Thrawn v1.1 and older:

git clone https://github.com/feftywacky/Thrawn.git
cd Thrawn
cd src
g++ -std=c++17 -Ofast -flto -o Thrawn *.cpp

Testing:

Open source CLI tool to run matches between chess engines: https://github.com/Disservin/fastchess

Evaluation:

  • Thrawn v2.0 and newer uses NNUE
  • Thrawn v1.1 uses handcrafted evaluation

What's Next

  • More move ordering heuristics (counter moves, history moves etc.)
  • Train neural network

Features

  • NNUE for evaluation
  • Bitboard data structure
  • Multithreaded search (Lazy SMP)
  • Transposition table
  • Time allocation/Control
  • UCI protocol

References

General

Search Algorithms

NNUE

About

uci compliant chess engine @ ~3000 elo

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors