Files
sokoban/docs/project-overview-pdr.md
T
tiennm99 fe2d98e710 docs: document mobile comfort overhaul
Update codebase summary, system architecture, changelog, roadmap and
PDR to cover the new mobile input layer, haptics, gesture blocking
and PWA. Refresh README features. Add the brainstorm, plan and review
artifacts under plans/.
2026-04-27 20:38:23 +07:00

2.2 KiB
Raw Blame History

Sokoban — Product Development Record

What it is

A from-scratch Sokoban implementation by tiennm99. Svelte 5 + Vite, deployed to GitHub Pages. The engine, UI, parser, progression system, and mobile controls are original code. Puzzle layouts come from David W. Skinner's freely distributable Microban set — the full 155-puzzle set is shipped — layouts only, no code reused from Skinner's own programs. Mobile-optimized with on-screen D-pad, haptics, safe-area insets, and PWA offline play.

Goals

  • Clean, beginner-friendly Sokoban that runs in any modern browser with no install.
  • Full 155-puzzle Microban set shipped, progressing from tiny beginner teasers up to the two huge finale mazes.
  • Keyboard-first desktop UX + touch-first mobile UX. Undo, restart, move counter, persistent progress on all devices.
  • Installable PWA: play offline, add to home screen, standalone fullscreen on iOS and Android.
  • Small, well-organized codebase (<200 LOC per file) that's easy to extend.

Non-goals

  • Custom level editor (puzzles are fixed, shipped with the build).
  • Networked play / leaderboards.
  • Sound / music (kept out to stay lightweight; may add later).
  • Swipe gestures, pinch-zoom, orientation lock (D-pad + keyboard sufficient).

Target audience

Casual puzzle fans, Sokoban beginners. Microban set chosen specifically because it's designed for beginners and illustrates one concept per puzzle.

Success criteria

  • All 155 levels playable end-to-end, including the oversized finale mazes that rely on responsive tile sizing.
  • Progress (completion + best moves) persists across sessions.
  • Mobile: D-pad reachable one-handed on ≤480 px width. No browser interference (pull-to-refresh, zoom, selection). Haptics on box push + win.
  • PWA: Installable via "Add to Home Screen", works offline, Lighthouse PWA audit passes.
  • Build output fits in the default Vite budget.
  • Runs smoothly on all devices: desktop 1024×768, tablet, and phone 280×480.

Credits

  • Puzzle layouts: Microban by David W. Skinner (April 2000). Used per the collection's free-distribution terms with credit. Only the level designs — none of Skinner's code.
  • Game code: tiennm99 (with AI pair-programming from Claude).
  • Engine: Phaser 3.