Files
tiennm99 45fbd9b171 build: move from pnpm to npm
Replace pnpm-lock.yaml with package-lock.json. The security overrides move to
package.json#overrides with their range operators intact, so advisory floors
stay floors. allowBuilds becomes package.json#allowScripts where the listed
package is actually in the tree.
2026-08-17 13:15:10 +07:00

43 lines
2.4 KiB
Markdown

# Sokoban
My from-scratch Sokoban game, built with **Svelte 5** and **Vite**. The engine, UI, level parser, and progression system are all my own implementation. The puzzle layouts themselves come from David W. Skinner's freely distributable **Microban** set — I'm not reusing any of his code, only his level designs.
Play: [https://tiennm99.github.io/sokoban/](https://tiennm99.github.io/sokoban/)
## Features
- **All 155 puzzles** from the Microban set, from beginner teasers up to the giant "Take the long way home" maze and "The Dungeon" finale.
- **Paginated level select** with progress tracking and best-move record per level.
- **Controls**: Arrow keys or WASD on desktop; on-screen D-pad on mobile (bottom-right, one-handed). `U` / `Z` to undo, `R` to restart, `Esc` for menu.
- **Mobile-optimized**: Touch-safe controls, haptic feedback (vibrate on push & win), safe-area insets for notches/nav bars, browser gesture blocking.
- **Installable PWA**: Add to home screen on iOS/Android, play offline, standalone fullscreen mode.
- **Undo history**, live move counter, animated moves.
- **Progress saved** locally in `localStorage` (per browser, per device).
- **Responsive tile sizing** so small and large levels both look right on any screen.
## Development
```bash
npm install
npm run dev # dev server on http://localhost:8080
npm run build # production build
```
## Project layout
See [`docs/codebase-summary.md`](docs/codebase-summary.md).
## Documentation
- [`docs/project-overview-pdr.md`](docs/project-overview-pdr.md) — product scope.
- [`docs/system-architecture.md`](docs/system-architecture.md) — how the pieces fit together.
- [`docs/code-standards.md`](docs/code-standards.md) — conventions.
- [`docs/development-roadmap.md`](docs/development-roadmap.md) — past and planned phases.
- [`docs/project-changelog.md`](docs/project-changelog.md) — release notes.
## Credits
- Puzzle layouts: **Microban** level set by David W. Skinner (April 2000). Freely distributable with credit. Original site: http://users.bentonrea.com/~sasquatch/sokoban/
- Game code: tiennm99 (with AI pair-programming from Claude).
- Framework: [Svelte 5](https://svelte.dev/) on top of [Vite](https://vite.dev/).
## License
- Source code: see [`LICENSE`](LICENSE).
- Puzzle layouts (Microban): see [`LICENSE-LEVELS.md`](LICENSE-LEVELS.md) — Skinner's free-distribution-with-credit terms, not the main project license.