Project Plateau
Project Plateau: four glass plates, one living valley, and the road back to camp.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
A cute physics-flavoured endless runner for desktop and mobile browsers. Built with Phaser 3, TypeScript and Vite.
Add ?debug to the URL to draw the collision shapes and expose the scene as window.__scene.Read the full README ↗Hop, dash and splash down an endless river as a wobbly little duck. A cheerful 2D endless runner for desktop and mobile browsers, published on Poki. Built with Phaser 3, TypeScript and Vite.
Guide a chubby, squishy duck down a never-ending river. Jump over logs and rocks, double jump over crate stacks, and dash to smash crates. Collect corn kernels for points, then spend them on new ducks.
The duck swims by itself. On a player's first run the river pauses at the first log and the first crate, and a callout shows exactly what to press; on later runs the DASH button (or the D key) glows whenever a crate is coming and the dash is ready.
| Action | Desktop | Touch |
|---|---|---|
| Jump (press again in the air to double jump) | W, ↑ or Space | JUMP button (bottom-left), or tap the left half |
| Dash (smashes crates) | D or → | DASH button (bottom-right), or tap the right half |
| Start | Enter, a jump key or D | Play button, or any tap on the menu |
| Play again | Enter | Play Again button |
| Pause / resume | Esc or P | Pause button |
Needs Node.js 20+. The asset tools also need Python 3 with pillow and numpy.
npm install
npm run dev # http://localhost:5173 (also printed as a LAN URL for phone testing)
| Script | What it does |
|---|---|
npm run dev | Dev server with hot reload |
npm run typecheck | TypeScript check (must pass before committing) |
npm run build | Production build into dist/ |
npm run preview | Serve the last production build |
npm run build:poki | Poki build into dist-poki/ and a zip ready to upload (see below) |
Debug mode: add ?debug to the URL to draw hit boxes, log Game Events to the console and
expose the scene as window.__scene. Debug mode is stripped from the Poki build.
npm run build:poki builds with the real Poki HTML5 SDK
and zips the result as wobbly-duck-poki-v<version>-<commit>.zip, with index.html at the zip
root. The dev build uses a local stand-in instead (fake ads, events logged in debug mode).
package.json version + git commit (e.g. v0.1.0+3f5c2d1). It shows small
in the corner of the main menu and in the browser console, and it's in the zip name, so a bug
report or screenshot always tells you which build it came from. A build made with uncommitted
changes is marked -dirty.npm version patch (or minor), then npm run build:poki, then
upload the zip.gameplayStart; later runs and resumes get a commercial
break first. The SDK starts in parallel with the game (it can take seconds), and SDK calls queue
behind it in order. It uses rewarded breaks for the revive,
and sends Game Events. If the SDK is blocked (ad blocker) the game still
plays, without revives.src/config.ts: speeds, jump, water, spawning,
scoring, skins, prices, biomes, celebrations.src/game/Patterns.ts) are timed in seconds of
travel, so fairness holds at any speed. Obstacle spacing, food arcs and the crate-stack heights
were checked against the real jump physics and with in-game bots.index.html, src/ui/, src/style.css), not canvas text. It's
crisp at any pixel density and respects phone safe areas.src/platform/. Gameplay code never calls the
Poki SDK directly.This is the beginning of the README. Read the rest at the original. Read the full README ↗