MENGLY / Puzzle Games

Wood Rush Jam

Wood Rush Jam is a slide-to-exit block puzzle for phones. Colored candy polyominoes sit on a 6×6 wooden grid. Each color has a matching door on the frame. The...

8/19/2026Views: 0Launches: 0

{Wood Rush Jam} Project Report

1. The Concept

Wood Rush Jam is a slide-to-exit block puzzle for phones. Colored candy polyominoes sit on a 6×6 wooden grid. Each color has a matching door on the frame. The player’s job is simple to explain and hard to master:

Slide a block until it kisses its own color door — then it rushes out.

It is a Unblock-Me / Color Block Jam loop, but the identity is a sunlit toy workshop: glossy per-cell candies with embossed icons, a cream HUD, teal 3D buttons, and Khmer + English copy. The unique hook is the rush itself — hit-stop, a star burst, the door flash, the piece shrinking off the board — so clearing a color feels like a toy snapping into a slot, not a grid cell disappearing.

Design goals:

Risk/reward sits in the board, not a shop. Early pieces move on both axes; later bars lock to one axis, so a greedy slide can trap a color behind another. Stars grade cleanliness against par. Same-color pieces start apart on purpose — the puzzle is bringing them to their door, not finding a cluster that is already solved.

2. The Stack

Built as a zero-build, zero-dependency product so it can ship and play the same day.

Layer Choice ----------- ---------------------------------------------------------------- Structure index.html (home, play HUD, board, boosters, pause / levels / win) UI Vanilla CSS (toy-workshop tokens, safe-area, svh / visualViewport) Logic Vanilla JavaScript ("use strict", ~1,400 lines) Art CSS candy cells + SVG icons per color; star burst in an fx layer Audio Web Audio API (procedural SFX + three-note win fanfare; no files) Progress localStorage (woodJamSave) — level, unlocks, stars, best, lang, sound, tutorial flag, hammers / hints Target Phone browser (portrait, viewport-fit=cover, user-scalable=no) Fonts Fredoka + Kantumruy Pro (Google Fonts)

No framework, no bundler, no npm — open the folder and play.

Architecture choices: hand-authored templates sit apart from makeLevel (color rotate, mirror, axis lock, gate packing); UI strings live in D.en / D.km; tunables live in PARAMS (hit-stop, exit ms, tool counts, SFX gain). Design constraints live in sakurai/ and rules/ plus sakurai_game_contnt_v1.0_kh.txt, not in a separate engine.

3. The 1 Day Sprint (+ polish pass)

The day was treated as a full vertical slice: concept → playable core → juice → shippable demo. Scope stayed tight: one mechanic, one wooden toy world, one 100-level path. Anything that did not serve “slide the candy into its door, and feel the rush” was cut.

Morning (Hours 1–3):

Outcome: A clickable (then draggable) prototype that already looked like the toy, not a wireframe.

Afternoon (Hours 4–6):

Outcome: A real campaign with a home, not a single hand-made puzzle.

The Finish Line (Hour 7-8):

Outcome: A self-contained demo ready to show, share, or iterate.

Polish (Aug 10):

The studio juice pass for this title landed the same day as the sprint (Aug 19), after the core loop shipped:

4. The Roadblocks

  1. Input that looked like a game but was not playable — Candy cells inside a pointer-events: none wrapper plus a CSS filter swallowed taps. A stray } in level 1 then killed the whole script, so the board rendered empty. The loop only existed after pointer capture sat on the block itself and the data parsed.
  1. Exits that lied — Early gates were full-size blocks sitting off the grid (one covered Hammer). Then auto-clear fired on a tap, or on a piece that was merely “facing” its door with a gap. Playtest forced the real rule: slide only; rush only when the piece is flush with the matching door.
  1. Feel vs. cheap motion — Click-to-slide and double-tap-to-exit made the board feel twitchy. The video process was drag → settle → drain. Hit-stop + star burst + shrink-out replaced “pop gone.”
  1. Same-color clustering — Generator / templates parked matching colors next to each other, so the first glance already looked solved. Spreading them apart restored the “bring them together” puzzle.
  1. Phone chrome — 100dvh and 85vw left dead space, clipped side gates, and parked UNDO / HAMMER / HINT on Safari’s URL bar. Board size had to come from the visible play zone, not a magic viewport formula.
  1. Audio without assets — No sound pack in a 1-day sprint. Web Audio oscillators carry move / block / impact / assist / win; browsers still need a user gesture to unlock the context.
  1. Scope pressure — Shop, ads, accounts, and a full solver were tempting. Seeded templates + undo / hammer / hint kept the day on one composition: brand, one loop, 100 levels, ship.

5. Key Takeaways

My final thought:

A one-day game only works when the concept is a single sentence and the stack stays out of the way. Wood Rush Jam proves that: drag the candy, kiss the door, watch it rush; Khmer on the pause menu; a full campaign with tools, stars, and a home screen inside three files. The next steps are optional — handcrafted late levels, richer audio, a real solvability check — but the core already delivers what mattered most: slide it in, see the stars fly, smile, next.