Blog
Building a Chess Engine, Part 6
The UCI protocol and what comes next - hooking the engine up to a GUI and the road to v2.
read →
Building a Chess Engine, Part 5
Move ordering with MVV-LVA - dramatically improving alpha-beta efficiency by searching better moves first.
read →
Building a Chess Engine, Part 4
Evaluation and search - scoring positions with material and PSTs, negamax, and alpha-beta pruning.
read →
Building a Chess Engine, Part 3
Verification with perft - counting leaf nodes to confirm the move generator is correct.
read →
Building a Chess Engine, Part 2
Move generation - attack tables, pseudo-legal generation for all piece types, and the legal move filter.
read →
Building a Chess Engine, Part 1
Board & move representation - bitboards, square numbering, and how moves are encoded and applied.
read →