1.7 KiB
1.7 KiB
Learning roadmap
Phase 0: Zig environment and language model
- Install/verify Zig and editor tooling.
- Learn
zig build, tests, allocators, slices, error unions,defer,comptime, and C interop. - Keep notes on concepts that differ from Go/Rust/C.
Phase 1: Rendering bootstrap
Goal: finish the copied Vulkan/GLFW path well enough to draw and present simple 2D shapes.
Learning targets:
- Vulkan setup order and resource lifetimes.
- Swapchain, render pass, framebuffers, command buffers, synchronization.
- Coordinate transforms for a 2D board.
- Frame timing and redraw strategies.
Phase 2: Chess model
Learning targets:
- Board coordinates and piece representation.
- Move structs and game-state snapshots.
- Rule edge cases: castling, en passant, promotion, check, checkmate, stalemate.
- Tests for correctness before UI complexity.
Phase 3: Interactive board UI
Learning targets:
- Mapping mouse/window coordinates to squares.
- Selection state and legal-move highlighting.
- Separating rendering state from game rules.
- Debug overlays for learning and testing.
Phase 4: Notation and validation
Learning targets:
- FEN import/export.
- Algebraic notation basics.
- Perft-style move-generation tests.
- Golden tests and small fixtures.
Phase 5: Engine/search experiments
Learning targets:
- Evaluation functions.
- Minimax/negamax and alpha-beta pruning.
- Move ordering, transposition tables, and iterative deepening as later topics.
- Deterministic benchmarks for search changes.
Phase 6: Optimization
Learning targets:
- Profiling before optimizing.
- Board representation options: mailbox arrays, 0x88, bitboards.
- Allocation-free move generation experiments.
- SIMD/vectorization and cache-aware data layouts where evidence supports it.