Skip to content

vincentbab/Belette

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Belette logo

Belette

Another UCI-compatible chess engine written in C++.

For now it only supports CPUs with AVX2 and BMI2 instructions. Support for other architectures might be added in the future.

See Release page for precompiled binaries

You can play against the engine on lichess: https://lichess.org/@/BabChess-Engine
The Bot is hosted on a machine with a Core i7 4785T. It will accept challenges up to 15min+10s, rated and casual.

Compiling

Tested on Windows and Linux with GCC >= 12. Might also work with CLang

make release

Executable will be in ./build/Release/bin/belette[.exe]

UCI Options

Debug Log File

Log every input and output of the engine to the specified file

Hash

Specify the hash table size in megabytes

Threads

For now this option doesn't do anything. It's only for compatibility purpose

Internals

Board & Move generation

  • Bitboard
  • Zobrist hashing
  • Fast legal move enumeration inspired by Gigantua
perft 7, start position, Core i7 12700k

Nodes: 3195901860
NPS: 925007774
Time: 3455ms

Search

  • Iterative deepening
  • Aspiration window
  • Negamax
  • Transpositation Table
  • Check extension
  • Null move pruning (NMP)
  • Reverse futility pruning (RFP)
  • Internal iterative reduction (IIR)
  • Late move reduction (LMR)
  • Late move pruning (LMP)
  • SEE pruning
  • Quiescence

Move ordering

  • Hash move (TT Move)
  • MVV-LVA
  • Killer moves
  • Counter move
  • Threats
  • Checks
  • Butterfly history heuristic
  • Staged move generation (good captures, good quiets, bad captures, bad quiets)

Evaluation

  • Tapered
  • Material
  • PSQT (PeSTO)

Credits

Resources and other engines that inspired me: