# basic1 Lua Games Implementation Plan ## Overview Build a collection of games for the basic1 homemade console, implementing them sequentially based on complexity and learning value. ## Game List & Priority ### Tier 1: Foundational (Start Here) These teach core mechanics and are quick wins. 1. **Flappy Bird** ✅ DONE - Mechanics: Gravity, collision, scrolling obstacles - Complexity: Low - Time Estimate: 1-2 hours - Learning: Gravity physics, obstacle spawning, game states - API Usage: Circle/rect drawing, gravity math, simple event handling 2. **Breakout/Brick Breaker** ✅ DONE - Mechanics: Ball physics, paddle control, grid destruction - Complexity: Low-Medium - Time Estimate: 2-3 hours - Learning: Collision detection, grid management, ball reflection angles - API Usage: Rect grids, ball physics (similar to Pong), score tracking 3. **Simon Says** ✅ DONE - Mechanics: Color sequence memory, pattern growing - Complexity: Low - Time Estimate: 1-2 hours - Learning: State management, sequence arrays, timing - API Usage: Rect drawing, button input, frame timing ### Tier 2: Medium Difficulty (Build After Tier 1) These combine mechanics and add complexity. 4. **Tetris** ✅ DONE - Mechanics: Falling pieces, rotation, line clearing, gravity - Complexity: Medium - Time Estimate: 4-5 hours - Learning: Grid-based movement, rotation matrices, collision - API Usage: Rect grid system, complex state tracking, rapid updates 5. **Asteroids** ✅ DONE - Mechanics: Spaceship control, rotation, projectiles, spawning - Complexity: Medium - Time Estimate: 3-4 hours - Learning: Vector math, object pooling, spawn waves - API Usage: Line drawing, rotation math, multiple entity management ### Tier 3: Advanced (Polish & Challenge) These build on previous learnings. 6. **Memory/Matching Game** ✅ DONE - Mechanics: Tile flipping, pair matching, timer - Complexity: Medium - Time Estimate: 2-3 hours - Learning: Hidden state management, animations - API Usage: Grid layout, simple animations 7. **Air Hockey** ✅ DONE - Mechanics: 2-player, ball physics, faster pace than Pong - Complexity: Medium - Time Estimate: 2-3 hours - Learning: Improved physics, AI paddle (optional) - API Usage: Ball physics refinement, smooth controls ### Tier 4: Polish & Variants Once core games work, extend with variants or features. 8. **2048** ✅ DONE - Mechanics: Grid merging, swipe logic, exponential growth - Complexity: Medium - Time Estimate: 3-4 hours - Learning: Swipe detection, grid animation, merge logic - API Usage: Grid rendering, touch gesture interpretation 9. **Tic-Tac-Toe** ✅ DONE - Mechanics: Grid selection, AI opponent (minimax) - Complexity: Low-Medium - Time Estimate: 2-3 hours - Learning: Game tree search, AI logic - API Usage: Grid UI, event handling, win detection 10. **Lunar Lander** ✅ DONE - Mechanics: Thrust, rotation, gravity, soft landing - Complexity: Medium-High - Time Estimate: 3-4 hours - Learning: Advanced physics, control feel - API Usage: Vector math, acceleration, fuel management ## Implementation Strategy **Per Game:** 1. Write game file in `/Users/adolforeyna/Projects/basic1/games/lua_examples/` 2. Test locally if possible, or prepare for SD card deployment 3. Document key mechanics in comments 4. Update this plan with completion status 5. Save daily progress to `memory/YYYY-MM-DD.md` **Patterns to Reuse:** - State machine (MENU → PLAYING → GAME_OVER) - `game.vars` for all state - `game.set_frame_updates(true)` for animation - Touch input handling (left/right screen halves for 2-player, center for single) **Testing Checklist (per game):** - [ ] Initializes without crashes - [ ] Main gameplay loop works - [ ] Input is responsive - [ ] Collision detection accurate - [ ] Score/state tracking correct - [ ] Game over condition triggers - [ ] Restart from menu works ## Notes - Monochrome display = simple visuals, focus on mechanics - Touch controls are the primary input - Frame-based animation keeps things smooth - Each game builds on previous learnings - Start simple, layer complexity progressively --- **Current Status:** All 10 games complete. Ready for SD card deployment.