One dream. Three layers. The art is the puzzle.

You are a sleepy dreamer with a lantern, trying to wake up. The dream has three layers, and you can shift between them at any moment, even mid-jump:

  • 1 · Bloom: vines hold you up and mushrooms launch you skyward.
  • 2 · Ember: stone bridges rise out of the ruins, and the lava wakes up.
  • 3 · Tide: coral holds, gravity softens, and you drift.

Every tile belongs to a layer. A wall in Bloom is open air in Ember. Lava only burns in Ember. Urchins only sting in Tide. Faint outlines show where the other layers' tiles are, so you can plan the shift before you make it. Seven rooms, about 5–10 minutes, plus seven dream shards for completionists.

Controls

Keyboard Gamepad
Move ← → / A D Stick / D-pad
Jump Space / W / ↑ A
Shift layer 1 2 3 (or Q / E to cycle) X / B / Y (or LB / RB)
Restart room R
Mute M

Tip: a Bloom jump carried into Tide keeps rising.

How DreamLayer is used

DreamLayer painted every visual you see in the game: 13 text-to-image, 3 image-to-image, 5 background removals and 1 sprite sheet.

  • One sketch, three worlds. I drew a single grey layout: three rows of hills, a moon, five tall shapes. DreamLayer image-to-image repainted that one sketch three times, as a mushroom forest, a volcanic ruin and an underwater kingdom. The hills and the moon stay exactly where I drew them. When you shift layers, the same picture changes nature, which is the game's whole idea.
  • One tile, three natures. The bedrock tile is the same in every layer. DreamLayer gave it three materials: mossy earth, cracked basalt and barnacled sea stone. The vine, stone, lava and coral textures are DreamLayer seamless textures used as repeating tile fills.
  • Characters and props. The dreamer, the mushroom, the urchin, the dream shard and the waking door are DreamLayer text-to-image, cut out with DreamLayer background removal.
  • Animation. The dreamer's run cycle is a DreamLayer sprite sheet (8 frames, run preset) made from the painted dreamer.
  • Before / after. Press G on the title screen for the in-game gallery. It shows every placeholder I wrote in code next to what DreamLayer made from its brief.

The art is generated by a small script (npm run art), not by hand. It renders the game's own placeholder art as drafts, sends each brief to the DreamLayer Agent API, removes backgrounds, unpacks the sprite sheet, and writes the manifest the game loads. The script logs every job with its idempotency key, so a rerun after a dropped connection picks up the same job instead of paying twice.

How it was built

Phaser 3 and Vite, playable in the browser. The movement physics is plain code with no engine dependency. The game and a breadth-first level solver run the exact same code, so every room is proven solvable before it ships. The solver also checks that each tutorial room really needs the layer it teaches. All sound is synthesised live with WebAudio: each layer has its own ambient chord that crossfades when you shift.

Made solo for DreamLayer Jam #1.

Updated 11 days ago
Published 12 days ago
StatusReleased
PlatformsHTML5
Authorshashvats20
GenrePuzzle, Platformer
TagsAtmospheric, Cute, dreamlayer, Dreams, Puzzle-Platformer, Short
AI DisclosureAI Assisted, Graphics

Comments

Log in with itch.io to leave a comment.

(1 edit)

Level 5 was dope tricky puzzle haha! I love how you deeply thought of puzzle angle!

Love the detail at the end how it was made to show the reference you gave and the output you got!