BenBot 1.7.2
A chess engine
Loading...
Searching...
No Matches
BenBot

A UCI chess engine.

This is a command-line chess playing program, designed to be used with a chess GUI.

Strength

We are currently using a handcrafted evaluation, and our search function is still in its early days. The engine's ELO is approximately 1700-1800.

Repository layout

  • Board representation and move generation is in libchess/
  • Evaluation and search is in libbenbot/
  • ben-bot/ is the actual engine executable

See each subdirectory's readme for details.

Links

Building

Building or using ben-bot, libbenbot or libchess requires CMake and C++23.

All dependencies are fetched via FetchContent, so everything should "just work" out of the box.

CMake presets are provided for IDE integration, but are not mandatory. Using the presets will enable some default warnings (defined in config/Warnings.cmake).

Notes on building:

  • Using clang requires -stdlib=libc++, without this flag clang can't find std::expected (this is added automatically by the clang configure preset)
  • If using gcc, at least version 14 is required

Our automated CI & releases include the following builds:

OS Compiler Notes
Ubuntu Clang Also built with ASAN & UBSAN
Ubuntu GCC Collects test coverage information
Windows Clang
Windows MSVC
MacOS Clang Builds universal binary

CMake options

  • BENBOT_DOCS: controls whether docs are built (defaults to off unless this is the top-level project)
  • BENBOT_TESTS: controls whether tests are built (defaults to off unless this is the top-level project)

Thanks

Special thanks to the following open source chess projects, which have provided guidance and inspiration (in no particular order):