Dreambound

A quiet world of seas stack islands above the clouds. Wander, look closely, take it in. Exploring is encouraged, as is note-taking. Grab your favorite drink and see if you can awaken from the dream.

Updated
Dreambound

Opus 5.5 with Blender MCP is an insane duo!

As a kid I grew up on games like Myst and Riven. They didn’t hold your hand like most games today, but instead lead you on an adventure. Forcing you to use your brain, take notes, ponder over night, wondering what you’re missing to move forward and make progress. There was a real possibility you didn’t solve the puzzles and missed out on half of the game. However, the rush of excitement from figuring it out gave you the confidence to continue on.

I wanted to make something like that. A world, with rules, and beauty. One that moves and changes with the flow of time. It turns out that with tools like Anthropic’s Opus 5.5 model, this sort of task is extremely within reach.

At the time of writing, I’m at the tail end of…development?…prompting? I’m not sure where we are today, but it’s definitely interesting.

I started with a ~1300 word prompt. I knew almost exactly what I wanted and how to say it. Relying on my intuitions with previous models, mostly with Open AI’s Sol, Terra, and Luna models, I felt confident a new flagship model Opus 5.5 could deliver. X.com has been an absolute buffet lately with people “one-shotting” games. It’s very inspiring. Right so off we go. I set it to medium reasoning and after about an hour… it blew my mind. It was really far better than I had expected, not perfect, but man WOW. It made a world, an actual traversal world with a day and night cycle.

Original Prompt

Create a threejs game called Dreambound. It’s like Myst/Riven. No HUD or text. Just full screen FPS. No player arms. WASD and mouse control the camera. This is a highly ambient game about being stuck in a dream and you have to find the alarm clock to wake up. You don’t know it though. A blurry vignette and bloom on highlights and high pitched short lived ringing with camera moving up off the ground as if from the perspective of someone who’s been asleep on the ground wakes up and stands up. You’re surrounded by a thin forest. It’s near dusk.
Moving out of first person story mode now so I can describe to you the game mechanics.
There are 5 main sea stacks that you have to visit. You’ve awoken on one of them. The sea stacks are so tall that you cannot see or hear the ocean. There is a subtle breeze and birds chirping along with some crickets. Looking down you only see clouds far below you. You’re not even certain if ocean or rocks are beneath the clouds. Above you is open sky and scattered clouds, and a beautiful sunset with orange, purple, and blue gradients.
Let’s refer to each sea stacks by their names
1: Dome
2: Rocks
3: Mountain
4: Tower
5: End

Dome is where the player begins. There’s a surrounding forest and a glass dome in the middle with a door. There’s a trail from the door to the edge of the stack cliff wall and a wooden ladder leading down. The ladder is about 20 feet tall and leads to a rocky natural platform with a rocky dirt path leading off to the left that does a half spiral around to the back side of the stack. The path leads into a small cave with a strange metal set of elevator doors and a small inconspicuous down button on the wall. Pressing the down button opens the doors with a metal creak. Going inside and turning around to face the front reveals two buttons, up and down. Up does nothing now, but pressing down closes the doors and lowers the elevator down to below ground. It’s an 8 second ride. The doors open revealing a black tunnel in front of you.

Stacks 1-4 are interconnected through this unground tunnel network in a hub and spoke pattern. The spoke cave paths are not straight, but are winding. At the center hub is a small cave opening with a raised cavern ceiling containing stalactites and stalagmites. In the center of the room there is a box like machine with wires running out of it into the cave walls. There are four dip switches on the box. Each dip switch represents electrical flow to one island. only two can be on at a time but this is not obvious to the player yet. Switching them will route power from one stack to another, but for now, no affect.

The End stack has a much smaller diameter and is slightly shorter than the other stacks. It’s surface is mostly void of features except for a metal circular door recessed into the ground and bordered with paver bricks. It appears to open and close like rusty aperture blades but no controls are visible. There’s some balding grass patches around it.

The Rocks stack has sparse trees on it and small stream flowing through a creak bed. It waterfalls gentle over the edge of the stack. There are many small rocks on this stack surface, but most noticeably there are 5 larger rocks that can be moved. They must be moved in a specific pattern and order to unlock something, but this order is not known to the player at this time.

A rope bridge with wooden planks joins the Rocks stack to the End stack in a descending manner since the End stack is shorter than all the other stacks. The rock stack’s elevator comes up to the actual surface and out the back of a large tree. The End stack has no elevator.

The Tower stack has a very large metal power line tower. The kind that looks like it’s made from zig zagging metal trusses. It’s shape and proportions look intimidating. On the very top are three LEDs spaced equidistant from the left to right branch of the top truss bar of the tower. They are very large LEDs. One is green, one is yellow, and one is red. They are off. They are shaped like traditional LEDs
The Tower stacks elevator opens near the top of the stack wall, and exits on to a dirt path the jaunts to the right and leads to a wooden ladder about 10ft up to the top of the tower stack. The tower stack ground is mostly grass and a dirt path from the ladder to the tower base.

Finally, the Mountain stack is a small mountain. On top of the mountain is an observatory with a disproportionately large telescope protruding from a slit in the dome roof of the observatory. Inside the observatory are two gears with turning knobs on them, one is horizontal and one is vertical. Turning the horizontal one spins the dome on it’s Y axis, while turning the vertical one aims the telescopes lens up and down. Turning these can be used to get close up views of the other stacks cliff walls. The elevator shaft from the cave below connects a small shed at the bottom of the mountain. The metal doors open to reveal a path with 3 switchbacks that lead up the mountain to the observatory. It’s actually a beautiful climb up the mountain affording a view of the other stacks in the distance.

About the overall atmosphere: audio and visuals drive the realism to feel like the user is there. Fluid 60 FPS at all times, we have to budget draw calls carefully. Mesh joining when possible. Most of the geometry is static. Trees should actually be plant like and have some swaying in the breeze but random and not annoying, odd, or deterministic, very subtly.  insect sound effects, crickets at night. Clouds are billowy and move by, they are not static.

A good day a night cycle is required. 7 mins per day, 6 mins per night. Lighting should be well balanced with deeper contrasts happening at dawn and dusk. Beautiful realistic sky gradients are required at dusk and down. A good transition from “blue hour” to a starry sky is required at night.

The stacks are completely explorable for now without any puzzles holding the player back from exploration.

Gameplay: First person movement. Collision detection on trees, walls, buildings. They can be primitive collision geometry like invisible cubes for reference checking. They should be culled and only calculated when the user is near them or on a stack. In the elevators, only the elevator collisions are necessary.  In the tunnels below, only the tunnel and stalagmite, electrical box, and elevator door collisions are necessary. You get the idea.
A player can walk off the end of a stack at any time and should accelerate into the clouds to terminal velocity. The screen should shake, the camera should always point up towards the sky slowly, the screen should blur and vignette to black, then un-vignette reveal with the player back on the ledge before they fell off. They cannot die because this is a dream.

When the player stands in front of the recessed ground door on the End stack and presses space, the blades open like a camera aperture. Thick smoke particles expel outward and an audible rumble and blast of steam is heard. As the steam dissipates, an old 70s alarm clock is hovering above the open ground recessed door. It shows the time 7AM. It begins to shake, the camera shakes. The clock shakes more violently, the screen blooms to bright white light. THE END, you’ve awoken!

At first, I really gave it no tools. It was just creating meshes procedural. Results exceeded expectations, but there were many mistakes. Torn meshes, holes in the ground where you could fall through. It nailed colliders and efficiently. Trees and vegetation I really haven’t altered from their original forms. The important key was giving it a budget, each frame must render in X ms. I told it to create a skill/integration test that runs through expensive scenes in the game, and ensures render time, draw calls, and mesh counts all come in under budget.

Then I wired up the Blender MCP

Insane! This is such a level up for Opus 5.5! It pushes beyond naive primitives and into a more mature form. I gradually learned to push it harder and harder throughout the process so certain parts of the game have more simple geometry and texturing while later parts become better looking and higher quality.

Use a picture. It's worth a thousand words. -Arthur Brisbane

GPT Images 2.5 as an input vector for 3D modeling

Inspired by the concept of img2threejs, a self correcting real-time sculpting pipeline that produces procedural mesh from primitives, material, lighting, interaction, etc. from an input image, I went to GPT to generate concept images of areas, and then tweaked them to taste. These served as good inputs to Opus 5.5 for modeling with the Blender MCP. While Opus is actually great at generating procedural geometry from primitives, the results from this workflow seemed to push so much further.

Taking time to articulate what you want gets it right the first time.

Cut-scene Composition

Once again, I found that Opus 5.5 is capable of delivering high quality cut-scenes with guided camera movements, model movements, explosions, weather changes, screen raster effects, just by describing it well. It definitely helps to have the picture in your head first.

Creating Feedback Tools

I quickly discovered that finding bugs, and prompting in Claude Code was very cumbersome. If only there were a way to tell Claude what enhancements to make from within the game. What if I enabled a debug flag in the menu, which enables middle clicking (or pressing F8) to capture the current world state, screenshot, and user sentiments, and send that to an Azure Queue and image to Blob Container that Claude listens to via /loop. It turns out that, after managing a few CORS permissions, this worked surprisingly well! Azure Stored Access policies made it very simple to generate sharable SAS urls for alpha testing friends. There’s even a local server for having an approval process to guard against unwanted feedback.

The world just unfolded in my mind

I found myself creating, solving, and linking puzzles together in my head during idle times. The puzzles needed to lock together in a linear solvable way. I think this was the most enjoyable part for me. Creating a world with my words is something I never thought possible. While it exists only in the digital realm, it reminded me that creating worlds through The Word is a something that only God can do.

Play Dreambound here

Public Repo here