1.9 KiB
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
- Finish the minimal Vulkan/GLFW rendering bootstrap.
- Render a chessboard with simple 2D primitives.
- Model board coordinates, pieces, moves, turns, castling, en passant, and promotion.
- Add legal move generation and rule validation.
- Build an interactive local UI: select pieces, highlight legal moves, update board state.
- Add chess notation and data helpers: FEN, algebraic notation basics, and PGN later if useful.
- Explore engine concepts: evaluation, minimax/negamax, alpha-beta pruning, move ordering, and perft tests.
- 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.