31 lines
1.9 KiB
Markdown
31 lines
1.9 KiB
Markdown
# zig-chess
|
|
|
|
A learning-first Zig project for building chess software while continuing the current Vulkan/GLFW rendering work.
|
|
|
|
## Intent
|
|
|
|
This repository keeps the current rendering bootstrap, but pivots the long-term learning target to chess. The near-term goal is to get the basic rendering path working; after that, chess rules, board representation, UI, and engine/search work become the main Zig learning vehicle.
|
|
|
|
The assistant should support learning with explanations, references, algorithms, tradeoffs, and review feedback; it should not write implementation code unless explicitly asked.
|
|
|
|
## Initial milestones
|
|
|
|
1. Finish the minimal Vulkan/GLFW rendering bootstrap.
|
|
2. Render a chessboard with simple 2D primitives.
|
|
3. Model board coordinates, pieces, moves, turns, castling, en passant, and promotion.
|
|
4. Add legal move generation and rule validation.
|
|
5. Build an interactive local UI: select pieces, highlight legal moves, update board state.
|
|
6. Add chess notation and data helpers: FEN, algebraic notation basics, and PGN later if useful.
|
|
7. Explore engine concepts: evaluation, minimax/negamax, alpha-beta pruning, move ordering, and perft tests.
|
|
8. Performance work: board representation tradeoffs, allocation behavior, profiling, and benchmarks.
|
|
|
|
## Project-local Pi agents
|
|
|
|
This repo includes project agents in `.pi/agents/` and Pi package settings in `.pi/settings.json`:
|
|
|
|
- `algorithm-researcher` — factual research on chess algorithms, board representation, move generation, search, graphics, and Zig/library behavior.
|
|
- `optimization-reviewer` — performance, memory-layout, profiling, SIMD/bitboard, and Zig-specific optimization review.
|
|
- `zig-learning-mentor` — learning-focused Zig explanations and exercises without writing code for you.
|
|
|
|
The agents are configured for web-enabled research via `pi-web-access` tools (`web_search`, `fetch_content`, `get_search_content`) and subagent orchestration via `pi-subagents`.
|