BitChess - A command line chess engine in C, open sourced

BitChess is a (very simple) command-line chess engine written in C.

BitChess - A command line chess engine in C, open sourced
Photo by Alin Gavriliuc / Unsplash

Developed in 2012 and tweaked and improved over time, BitChess is almost feature-complete, somewhat smart, and not all too slow. It comes without a UI or any configuration options, is not compatible with any chess file format, and is available on GitHub!

BitChess running in the command line on Linux

That said, it's user friendly, its code is comprehensible and it's got quite a few optimizations and other neat features, such as an advanced board evaluation method, quiescence search, multi-threading (on Linux), and input and output using true algebraic notation.

Why this project?

I'm aware that there are plenty of open source chess engines available that are much, much better than I'll ever be able to create. However, creating my own chess engine is something I've been wanting to do for a long time.

This project is solely meant as a hobby project for myself, and might therefore contain some questionable design choices that would not have been made if it was targeted towards the general public. This does not mean that I'm the only one to ever find use for this project, though I'm willing to take that risk.

The Kaspirov

The future of BitChess however holds more greatness. Besides many optimizations that can still be implemented, the whole thing was actually written to be used in a larger project: the Raspberry Pi Image Processing Chess AI Beamer Project*, that'll use a webcam to observe a real life chess board and a beamer to project moves onto the same board; thus eliminating the need to input moves in any way other than to actually move pieces on an actual chess board.

This project came to be the Kaspirov years later.

*) Working title at the time