docs: scope Microban credit to level layouts only

Reword README, PDR, menu scene, and the data file header so the Microban
credit clearly covers only the puzzle layouts borrowed from David W.
Skinner. The parser, renderer, UI, and progression code are original, and
ownership is now stated explicitly. Attribution for Skinner is preserved
everywhere it appeared.
This commit is contained in:
tiennm99 committed 2026-04-11 22:55:07 +07:00
1 parent 34eaf1b2a7
commit 97d43d0d57
4 files changed
+14 -10

No files matched your search

+4 -3
View File
@@ -1,11 +1,11 @@
# Sokoban
A browser-based Sokoban game built with Phaser 3 and Vite, shipping 100 Microban levels by David W. Skinner.
My from-scratch Sokoban game, built with Phaser 3 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
- **100 solvable puzzles** from the Microban set (beginner-friendly, concept-focused).
- **100 solvable puzzles** using level layouts from the Microban set (beginner-friendly, concept-focused).
- **Paginated level select** with progress tracking and best-move record per level.
- **Controls**: arrow keys or WASD. `U` / `Z` to undo, `R` to restart, `Esc` for menu.
- **Undo history**, live move counter, animated moves.
@@ -33,7 +33,8 @@ See [`docs/codebase-summary.md`](docs/codebase-summary.md).
- [`docs/project-changelog.md`](docs/project-changelog.md) — release notes.
## Credits
- Puzzles: **Microban** by David W. Skinner (April 2000). Freely distributable with credit. Original site: http://users.bentonrea.com/~sasquatch/sokoban/
- 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).
- Engine: [Phaser 3](https://phaser.io/).
## License
+3 -2
View File
@@ -1,7 +1,7 @@
# Sokoban — Product Development Record
## What it is
Browser-based Sokoban puzzle game. 100 solvable Microban levels (David W. Skinner, freely distributable), Phaser 3 + Vite, deployed to GitHub Pages.
A from-scratch Sokoban implementation by tiennm99. Phaser 3 + Vite, deployed to GitHub Pages. The engine, UI, parser, and progression system are original code. Puzzle layouts come from David W. Skinner's freely distributable **Microban** set (100 of his puzzles shipped) — layouts only, no code reused from Skinner's own programs.
## Goals
- Clean, beginner-friendly Sokoban that runs in any modern browser with no install.
@@ -24,5 +24,6 @@ Casual puzzle fans, Sokoban beginners. Microban set chosen specifically because
- Runs smoothly on desktop browsers at 1024×768 canvas (scaled responsively).
## Credits
- Puzzles: Microban by David W. Skinner (April 2000). Used per the collection's free-distribution terms with credit.
- 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.
+5 -3
View File
@@ -1,7 +1,9 @@
/**
* Microban level set by David W. Skinner (April 2000, 155 puzzles).
* Freely distributable with credit. First 100 levels shipped here — small,
* concept-focused puzzles that are great for beginners and still interesting.
* Puzzle layouts from the Microban level set by David W. Skinner
* (April 2000, 155 puzzles, freely distributable with credit).
* First 100 layouts shipped here — small, concept-focused puzzles.
* Only the level designs are borrowed; the parser, renderer, and engine
* are original code written for this project.
* Source: http://users.bentonrea.com/~sasquatch/sokoban/
*
* Format: XSB
+2 -2
View File
@@ -19,7 +19,7 @@ export default class MenuScene extends Phaser.Scene {
const cy = this.cameras.main.centerY;
this.add.text(cx, cy - 200, 'SOKOBAN', FONTS.title).setOrigin(0.5);
this.add.text(cx, cy - 130, '100 Microban puzzles', FONTS.subtitle).setOrigin(0.5);
this.add.text(cx, cy - 130, '100 puzzles to solve', FONTS.subtitle).setOrigin(0.5);
createButton(this, cx, cy - 20, 'PLAY', () => this.scene.start('LevelScene'), { width: 240, height: 64 });
@@ -33,6 +33,6 @@ export default class MenuScene extends Phaser.Scene {
].join('\n');
this.add.text(cx, cy + 170, hints, { ...FONTS.small, align: 'center' }).setOrigin(0.5);
this.add.text(cx, this.cameras.main.height - 24, 'Microban puzzles by David W. Skinner', FONTS.small).setOrigin(0.5);
this.add.text(cx, this.cameras.main.height - 24, 'Level layouts from Microban by David W. Skinner', FONTS.small).setOrigin(0.5);
}
}