Initial commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user