A high-performance chess engine written in pure C, built to explore bitboard techniques, move generation, and low-level performance optimization.
Focused on clarity, speed, and systems-level design.
- 🧩 Bitboard architecture — 64-bit board representation for all pieces
- ⚔️ Precomputed attack masks for pawns, knights, and kings
- ♙ Pawn structure evaluation — doubled, isolated, and blocked pawns
- ♜ Material and mobility scoring
- ⚙️ Optimized bitwise operations — popcount, bit scans, and masks
- 🧠 Planned: sliding attacks, move generation, minimax + alpha-beta, UCI protocol
This project aims to understand chess engine internals — from efficient bitboard representation to search algorithms — and to build a clean, extensible base for future experiments in engine evaluation and AI search.
The project uses a custom build script with multiple modes:
| Command | Description |
|---|---|
build or build debug |
No optimization, full debug info (-O0 -g) |
build optdebug |
Optimized build with debug symbols (-O2 -g) |
build release |
Fully optimized, stripped binary (-O3 -DNDEBUG) |
build release
# or simple
./build.batOutput binaries are placed in the build/ directory.