This repository tracks the journey of writing my first chess engine. It's written in C# and contains 3 projects:
- a command-line based GUI (MinimalChessBoard)
- an UCI chess engine (MinimalChessEngine)
- a library implementing chess logic and algorithms used by the other two applications (MinimalChess)
My focus is on creating a minimal engine with just enough features and optimizations to become a reasonably strong player. I try to keep the codebase small and human readable.
Hopefully it provides me and other interested layman with an opportunity to learn how a chess engine operates and how critical components like move generation or tree search can be implemented correctly.
My development process is also documented by a series of small videos I upload to Youtube after each achieved milestone: