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
Final release
YouTube tutorials
2937 ELO
Final version CCRL rating is- BBC 1.4 + SF NNUE FINAL VERSION 2937 Elo
- BBC 1.3 + SF NNUE (2700+ Elo)
- BBC 1.2 1993 ELO
- BBC 1.1 2096 ELO
- BBC 1.0 1957 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!