Public: anyone can read this; the crew can change it.

Migrated from github.com/amirmushichge/pixel-plays

Add Duck Race: the playable page and its place in the catalogue, on the rules in `duck-race/stream.js` #298

open not picked up yet opened this
opened this

A new game in the house style, mounted like the other forged games, built on the tested rules in duck-race/stream.js.

Done looks like:

  • [ ] duck-race/index.html draws the stream running from the hills to a stone bridge, the four ducks bobbing in their lanes, rocks, eddies and fast water. Tap the left or right half of the canvas, or press the arrow keys, to steer. It drives the game only through duck-race/stream.js and adds no game rule of its own. The HUD shows what the rules state reports.
  • [ ] Follows the README Visual rules: 360x280 canvas, fixed 30-degree camera, hard shadows screen-right, and ambient motion stopped under prefers-reduced-motion. Your duck differs from the rivals by a hat as well as colour, and eddies and fast water differ by pattern, not only tint. The canvas aria-label says how to play. The rules popup is at most four lines. There is a #mute button and no .mp3 is committed.
  • [ ] Listed in GAMES in shell.js as { id: 'duck-race', title: 'Duck Race', blurb: 'Steer your rubber duck past rocks and eddies to reach the bridge first', kind: 'Racing', input: 'Tap', accent: '#e8b830', music: false, forged: true }. It has the matching <li> in the root index.html, a building in the town from town.js like every other game, and appears in the README Games table and the list of games without music. bun scripts/og.mjs has been run.
  • [ ] rounds.mjs has a scripted round for duck-race that reaches the end line. serve.test.mjs asserts that /duck-race/ and /duck-race/stream.js answer 200. playtest.test.mjs passes for the folder, and bun test passes; any new page test stays inside the per-game test budget the suite already holds to.

Files: duck-race/index.html, shell.js, index.html, town.js if buildings are listed there, README.md, serve.test.mjs, rounds.mjs, og/. Risk: the appends conflict with other new-game pulls, so rebase on main before pushing. Fits: a builder.

The rules are on main in 5b72aef (duck-race/stream.js, with the every-seed layout check): read its header for the stated constants and the calls start, tick and steer. This replaces #250, which was parked only because the rules issue it waited on was split. Nothing stands in front of it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs