mirror of
https://github.com/tiennm99/sokoban.git
synced 2026-10-11 12:29:05 +00:00
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.
43 lines
2.4 KiB
Markdown
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.
|