Files
sokoban/docs/development-roadmap.md
T
tiennm99 1d2fff6bf8 feat: ship 100 Microban levels with overhauled UI and modular core
Replace the 3 hand-crafted JSON levels with the full Microban set (100 solvable
puzzles by David W. Skinner) stored as XSB text and parsed at runtime. Rework
the game into kebab-case modules under a 200-LOC budget:

- core/level-parser: XSB parse with flood-fill interior detection
- core/board-model: pure move/undo/win logic, Phaser-free
- core/progress-store: localStorage persistence with graceful fallback
- core/theme: Nord palette, fonts, responsive tile sizer
- ui/button-factory: one rounded button impl with hover/press
- ui/board-renderer: animated tile/wall/goal/box/player drawing
- scenes: menu, paginated level select (5x4 grid, 5 pages), game

Add WASD movement, U/Z undo, R restart, Esc to menu, live move counter,
best-move tracking per level, win overlay with next/levels actions, and a
radial-gradient CSS backdrop.

Drop the dead Arcade Physics wiring, the broken manual shutdown/destroy code,
the unused main.js self-import, and the hardcoded 3-level registry state.

Add docs/ and refresh README.
2026-04-11 21:58:00 +07:00

1.1 KiB
Raw Blame History

Development Roadmap

Phase 1 — Core game (complete)

  • Phaser + Vite scaffolding.
  • Menu / Level / Game scenes.
  • Arrow-key movement, box pushing, target detection.

Phase 2 — Overhaul (complete, 2026-04-11)

  • Replace 3 hand-crafted levels with 100 Microban levels.
  • Modularize: core / ui / scenes split, every file <200 LOC.
  • BoardModel with undo + move counter.
  • Paginated level select (5 pages × 20 levels).
  • Nord theme + rounded button factory + animated board renderer.
  • WASD support, U/Z undo, R restart, Esc to menu.
  • localStorage progress (completed + best move count).
  • Drop dead Arcade physics and broken shutdown code.
  • Docs folder + README refresh.

Phase 3 — Polish (planned)

  • Sound effects (step, push, win).
  • Player facing direction indicator.
  • Level category tabs (Easy / Medium / Hard) derived from puzzle size or move count.
  • Touch controls (swipe) for mobile.
  • Unit tests for level-parser and board-model.

Phase 4 — Stretch (ideas)

  • Additional level packs (Sasquatch, Sokogen).
  • Custom level importer (paste XSB text).
  • Replay / move playback.
  • Per-level leaderboards (local only).