Skip to content

Bit Board Chess (BBC) - The easiest to understand bitboard chess engine by Code Monkey King

License

Notifications You must be signed in to change notification settings

FireFather/bbc-nnue

 
 

Repository files navigation

bbc-nnue

new:

  • updated to C++ (std::C++17)
  • separate source and header files
  • embedded nnue eval (incbin)
  • optimized code base via Clang/Resharper C++ guidelines
  • Visual Studio 2022 project files and
  • avx2, bmi2, popcnt binaries included

BBC (Bit Board Chess) + Stockfish NNUE!

  • UCI chess engine by Code Monkey King
  • written for didactic purposes
  • covered in 95 YouTube video series

Subscribers' projects based on BBC

KhepriChess by Kurt1288: https://github.com/kurt1288/KhepriChess (TypeScript)
KittyEngine by UnboxTheCat: https://github.com/evanhyd/KittyEngineV4 (C++)

Project sponsors

  • Eduardo Cáceres

Play BBC online

IMAGE ALT TEXT HERE

Final release

IMAGE ALT TEXT HERE

YouTube tutorials

IMAGE ALT TEXT HERE

Final version CCRL rating is 2937 ELO

Features

  • own online GUI
  • bitboard board representation
  • pre-calculated attack tables
  • magic bitboards for sliding pieces
  • encoding moves as integers
  • copy/make approach for making moves
  • negamax search with alpha beta pruning
  • PV/killer/history move ordering
  • iterative deepening
  • PVS (Principle Variation Search)
  • LMR (Late Move Reduction)
  • NMP (Null Move Pruning)
  • razoring
  • evaluation pruning / static null move pruning
  • Transposition table (up to 128MB)
  • PURE Stockfish NNUE evaluation + 50 move rule penalty
  • UCI protocol

Credits

This project would never be completed
without the help of Talk Chess forum
community members who has been helping me
during the development process significantly
I would like to thank to:

  • HaraldLuessen & Pedro Castro Elgarresta for neverending hints and technical support
  • Sven Schüle for explaining how mating scores works in TT (in great details!)
  • Jay Warendorff for testing development versions of BBC
  • Marcel Vanthoor for teaching me linear algebra and general inspirations
  • Ronald Friederich for providing PeSTO evaluation tables and sharing his ideas
  • Gabor Szots from CCRL for testing & rating BBC
  • Silvian R. for running private tests
  • Chris Rea for testing and fixing bugs
  • Brendan J. Norman for creating logo for BBC
  • Daniel Shawul for providing NNUE probe library

And all the subscribers watching my videos and
motivating me to keep the development!

Test matches

Get PGN games

Support the project

Become a Patron!

About

Bit Board Chess (BBC) - The easiest to understand bitboard chess engine by Code Monkey King

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 76.1%
  • C 17.5%
  • Makefile 5.6%
  • Other 0.8%