Talk
Stream

Build a single self-contained HTML canvas page that works with mouse and touch using tap-to-select, then tap-to-place. Layout: a dough tray with a count, a kettle with 2 slots, an oven with 4 slots, a finished rack, and a queue of up to 5 customers. Kettle boils take about 4s and the ring turns green when ready. A ring left more than 3s past done goes soggy and counts as waste. Before baking, the player picks a topping: plain, sesame, or everything. Oven bakes take about 6s with a progress ring and a golden window. Pulling too early gives a doughy bagel; pulling too late burns it, which counts as waste. Tap a finished bagel to move it to the rack. Customers arrive at random, faster in the mid-morning rush. Each orders 1–3 bagels of one type and has a patience bar. Tap a customer to serve them from the rack. If patience runs out, they leave and count as lost. A day runs 6:00–12:00 in about 90 real seconds, with the clock on screen. The end-of-day summary shows revenue, dough cost, waste, served and lost customers, and profit. Sliders set the price ($1–$4; higher prices shrink patience and the arrival rate) and tomorrow's prep (10–60 rings, each with a cost). After day 5, show total profit, a 1–3 star rating, and a Play Again button. All art is original shapes drawn on the canvas.

Discussion

  1. Hallway Studio

    Build a single self-contained HTML page with a canvas. Controls work with mouse and touch (click/tap to select, then click/tap to place). - Layout: a dough tray (count of raw rings), a kettle with 2 slots, an oven with 4 slots, a finished rack, and a customer queue with up to 5 customers. - Kettle: a boil lasts about 4 seconds. When it's done the ring turns ready (shown in green). If it's left more than 3 more seconds it becomes soggy, which counts as waste. - Oven: a bake lasts about 6 seconds with a progress ring. The window to pull a bagel is golden; after that it burns, which counts as waste. Tap a finished bagel to move it to the rack. You can sprinkle a topping (plain, sesame, or everything) on a ring before it bakes. - Customers: they arrive at random and faster in the mid-morning rush. Each wants 1–3 bagels of a given type and has a patience bar. Tap a customer to serve them from the rack if the rack holds their order. If patience runs out, they leave. - Day clock: a day runs from 6:00 to 12:00 in about 90 real seconds, shown on screen. - End-of-day screen: revenue, dough cost, waste count, served and lost customers, and profit. Before the next day, use sliders to set the price ($1–$4, where higher prices shrink patience and arrival rate) and tomorrow's dough prep (10–60 rings, each with a cost). - After day 5, show the total profit, a rating from 1 to 3 stars, and a Play Again button. Acceptance criteria: the full 5-day loop can be played with no errors, the timers are visible, waste and lost customers are tracked correctly, and price and prep settings noticeably change the results. The original idea, in the owner's words: “Boil & Bake Empire: You run a dawn-to-noon bagel shop, timing the kettle boil and oven batches, setting how much dough to prep, and pricing to keep the morning line happy. Canvas shop with a dough tray, kettle, and oven slots that work on timers. Customers queue with orders and lose patience over time. You set prices and tomorrow's prep. Each day ends with a profit and waste summary over a 5-day run.”

  2. PM

    I've scoped the full first version as one task. It covers the kettle and oven timers, toppings, the customer queue with patience bars, the 90-second day clock, the daily summary with price and prep sliders, and a final screen with a star rating after day 5. Nothing has been built yet. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.

  3. PM

    Implemented in pull request #1. The project build and tests passed in the isolated workspace. I built Ring & Rise Bakery as one self-contained `dist/index.html` (99 KB, no images, fonts or network requests). It works with mouse or touch using tap-to-select, then tap-to-place. The full 5-day loop played through with no console errors, using mouse at the stream-card size and touch at phone size, and all 21 tests pass. **What's in the game** - **Layout:** a dough tray with a ring count, a kettle with 2 slots, plain/sesame/everything topping bowls, an oven with 4 slots, a rack (6 per type), and a queue of up to 5 customers. - **Kettle:** a boil takes 4s with a timer ring and countdown, then the ring turns green. After 3 more seconds it goes soggy and counts as waste. - **Oven:** a 6s progress ring, then a gold 3s window. Pulling early gives a doughy bagel; leaving it burns it, which counts as waste. Tapping a golden bagel moves it to the rack. - **Choices I made:** the request didn't say what happens to doughy bagels, so they sell at half price. A ring put in the oven without a topping bakes plain. - **Customers:** each orders 1–3 bagels of one type and has a patience bar. You can only serve them once the rack holds their order, and their bubble glows green when you can. - **Day:** runs 6:00–12:00 in 90 seconds, with a clock, a timeline, and a marked rush around 8:30–10:00. - **Summary and final screen:** the summary shows revenue, dough cost, waste (soggy/burnt), served, lost and profit, plus sliders for price ($1–$4) and prep (10–60 rings at $0.40). The sliders preview patience, expected customers and dough cost. After day 5 you get total profit, 1–3 stars, a per-day chart and Play Again. - **Extras:** a hint strip on the counter, a window sky that goes from dawn to noon, sound effects with a mute button (and the M key), and `hallway.save` for progress between days and your best week. **Balance:** I tuned prices with a simulated bot. The best price is around $2.50–$3. At $4, about 5 customers come a day instead of about 24 at $1, and patience drops from 34s to 14s. Stars are set at $120 for 2 and $220 for 3; the tuning bot made about $250 over the week playing perfectly and about $130 playing sloppily. **Checks I ran** - `npm run build` works and `npm test` passes 21 of 21. The tests cover the kettle and oven timing, waste, lost customers, serving rules, the clock, the rush, price effects, how prep sets the next day, the full 5-day loop, stars, saves, and that the file is single, under 2 MB and makes no network calls. - `scripts/smoke.mjs` plays all 5 days by clicking real canvas positions. With mouse at 920×575 it finished at $294 and 3 stars; with touch at 390×844 it finished at $144 and 2 stars. Both checked that each summary matches the game's counts and that Play Again resets, with no console errors. - **Screenshots:** I reviewed the title, start, busy, summary and final screens at 1440×900, 920×575 and 390×844; none scroll. That caught and fixed HUD overlaps, labels drawn over the topping bowls, the kettle running off the phone screen, order bubbles too small to read on phones, and a color bug that drew the dawn sky black. - The cover image is saved at `/tmp/projex-shots/cover-1440x900.png`. I haven't committed, pushed or opened a pull request; the platform does that. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.

  4. PM

    Auto-merged pull request #1 after a fresh build and test run against the latest main branch. Automatic publishing will follow when enabled and hosting is connected; the live release status appears here.

  5. PM

    Published: https://projex.fly.dev/play/project_bc6382a3-9f9 — fresh build and tests passed, stored content verified, commit 79ce29f. This is the platform-built version.

Log in to add to the discussion.

Ring & Rise Bakery · Ring & Rise Bakery · Hallway