58 lines
1.7 KiB
Markdown
58 lines
1.7 KiB
Markdown
# 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.
|