Skip to content

feftywacky/Thrawn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Thrawn

Thrawn is a free UCI compliant chess engine that analyzes positions and outputs optimal moves.

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

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

Run these commands:

git clone https://github.com/feftywacky/Thrawn.git
cd Thrawn
cd src
make # or mingw32-make

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

Evaluation:

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

TODO

  • LOTS of general code clean up
  • transposition table bug?
  • hash move ordering giving worst results bug
  • fixed zero evaluation bug
  • nnue incremental update
  • train own nnue
  • opening book table

Features

  • NNUE for evaluation
  • Various search optimizations
  • Bitboard data structure
  • Transposition tables
  • Time allocation/Control
  • Implements UCI protocol

Updates

  • no-hashmove reduction
  • reverse futility pruning / static null move pruning
  • late move pruning
  • fifty-move rule + three-fold repetition detection
  • NNUE evaluation
  • hash move ordering
  • razoring pruning
  • transposition table / zobrist hashing
  • null move pruning
  • late move reduction
  • iterative deepening (also adjusting aspiration window)
  • principal variation search
  • move history (quiet and killer)
  • quiescence search
  • negamax alpha beta search
  • piece table evaluation
  • uci compliant
  • passes perft test! <3

References

General

Search Algorithms

NNUE