Hold the door to cast the spell

A calm game in the making

Every door could lead anywhere.

A lonely wizard turns old doors into portals. Each run crosses five generated worlds and gathers one stranger's story, a golden fragment at a time.

World 1 of 4 outdoor

Autumn Lake

Echo In a cabin of the fishing camp, an old radio crackles back to life.

Door Green plank door of a tool shed

  1. Home
  2. Who
  3. Love
  4. The turn
  5. Resolution
  6. Home

The game

A treasure hunt that rewards sitting still.

Before each run, a short human story is written and split into five golden fragments: who a person was, what they loved, what turned, what it meant, and how it ends. In every world, three glowing clues lead to one fragment. The last one waits at a calm spot: a bench at sunset, tea on a rock with someone you helped.

The fifth door leads home. There the fragments fly to the cork board, a Polaroid develops in your hand, and the whole story is told. About an hour, from home to home.

One world, step by step

Arrive, discover, energize, rest, depart.

Every world follows the same arc, from a little adrenaline to a long exhale, in 10 to 15 minutes. Here is how it could go in winter market.

  1. Winter Market: Arrival

    1Arrive

    Clue 1

    The portal lands in a lane of log houses on market night. A lantern lies by a heap of snow, in a soft white halo: the first clue, in view of the door.

  2. Winter Market: Overview

    2Discover

    Side life

    From the slope the whole village shows: the stalls in the square, smoke from every chimney, the fir woods round the valley. Nothing here can be missed or lost.

  3. Winter Market: Village lane

    3Energize

    Clue 2

    A villager's sledge has spilled its firewood in the lane. Carry the logs back to the woodpile before the bell rings. The event waits for you and cannot be failed.

  4. Winter Market: Tall house

    4Rest

    Clue 3

    At the top of the village, by the tall house and the snowy firs, sit on the fence and watch the lanterns below. The halo turns gold, and the golden fragment of the tale is yours.

  5. Winter Market: Door

    5Depart

    The door

    The back door of a woodshed, a star carved in it, glows along its frame. Cast the spell, and the next world shows through it.

Only the calm moment awards a fragment. Side life is never counted and never blocks a clue, and nothing in a world can be lost or expire.

The spell

Ordinary doors stay ordinary.

The wizard casts with bare hands. Each world has exactly one enchantable door. It belongs in the place, stands closed and locked, and glows along its frame only when you come close.

  1. Aim and hold. Point at the door within 8 m with the left hand and hold the grip (on desktop, hold E or the right mouse button).
  2. Hold steady. Runes light up around the frame and circle faster as the cast fills. About 2.5 s casts it; let go and it drains.
  3. Wait for the ritual. The ring stops at 90 % until the next world is ready, so the streaming hides inside the spell.
  4. Walk in. The lock clicks and the door swings open onto the next world. The world behind you is gone for good.

Halos

  • White halo

    A local clue. Soft, with a slow pulse; brighter while you stand still.

  • Gold halo

    The golden fragment at the calm spot, with drifting motes.

  • Door glow

    The enchantable door, along its frame, up close only.

Hints that respect rest

SearchingMoving, revisiting, inspecting without finding the next clueHint timer runs
RestingSitting, watching, listening, enjoying side lifeHint timer paused

After a while of searching, the next halo shows through walls. Later, a trail of fireflies or drifting petals lights a path to it. Both are easy to ignore.

Worlds

Settings, built fresh each run.

A world is a setting: a beach, a frontier town, a neon street, a mine. A run picks five, in the order that serves its tale, and sets each one's layout, time of day, weather and people, so the same place never looks the same twice. The catalogue holds 17 hand-written settings.

outdoor

Autumn Lake

A long lake among birch woods at the end of the season. The fishing camp on its north shore is packing up: boats come out of the water, nets hang to dry for the last time, shutters go up on the cabins.

Door
Green plank door of a tool shed
Size
a lakeshore about 600 x 450 m

Every picture is a screenshot of the test build: one instance of the world, as the game draws it today.

Home

A cork board of strangers' lives.

Every run starts and ends at the wizard's home. At the end, the fragments fly to the cork board, and the Polaroid of the run develops slowly in his hand while the story is told in full.

  • A home that warms up. As the board fills, the light gets warmer, a plant grows, a second chair appears at the table. No dialogue, ever.
  • Every story has an ID. Share a Polaroid and another player can play the same tale, the same settings and beats. Their run comes out close, never the same.
  • Gentle tales. Bittersweet is welcome, dark is not. Invented, ordinary people, and every tale lands somewhere warm.
The Polaroid of Mira's Sky
Mira's Sky

The sample tale of this page. In the game the Polaroid is painted for its story.

How it is built

One server, made models, and two kinds of AI.

The world is not a static mesh. A pipeline turns seeds into terrain, settles it with wildlife and houses, checks that it is solvable, and streams cells to the player view in real time.

1 Seed & Tale Opus Authoring

Settings, story bible, 5 world plans

2 Procgen Rule Generator

Hills, rivers, roads, herds, houses

3 Verifier Graph Validator

3 clues, line of sight, reachability

4 Bun & SQLite World Server

Shared simulation, binary cells

5 Godot 4 Client View

Low-poly render, made shapes

Client Godot 4

Desktop renderer and VR rig

Godot 4 draws each world from what the server sends: ground elevation, props, lighting, water and animated creatures. Available on Windows, macOS and Linux desktop with keyboard and mouse. The VR rig for Quest 3 over WiVRn already exists and returns in phase V.

  • Binary stream: Cells arrive nearest first with zero scene load freezes.
  • Collisions: Trunks, walls, cliffs and fences block traversal.
Server Bun & SQLite

Rule layout and shared simulation

A TypeScript backend on Bun lays out each world deterministically from a 32-bit seed: contour hills, stream hydrology, farm tracks, fences, villages and wandering herds. It streams cells from one shared cache and synchronizes wildlife so all players see the same movements.

  • Shared cache: One memory cache serves all active instances.
  • Persistence: SQLite keeps world states, instances and tester keys.
Two Kinds of AI Opus & Jev

Separating narrative truth from runtime pacing

AI never runs unconstrained. Narrative planning happens before arrival; real-time pacing responds to player stillness. Both fail over cleanly to deterministic fallbacks.

Opus plans before play Claude Code CLI

Opus writes world settings and the five-world run bible before the player reaches them. Each prompt has a strict schema and hard timeout. If generation fails twice, the game loads a hand-checked setting.

Jev paces during play Low latency

Jev makes fast typed decisions during the run. It watches player stillness, walking speed and proximity to pick the next event, choose its variant, and wait until the player settles into rest.

Verification Graph check

Guaranteed solvable paths

Before the player steps through a portal, deterministic validation checks the generated plan against the actual terrain mesh. A plan must satisfy four geometric invariants:

  1. Three clues exist in strict sequence.
  2. Clue 1 is within direct sight of the arrival spot.
  3. All clues and the exit door have unobstructed walking paths.
  4. The rest point has a valid sit or pause vantage.
Assets client/made/

Zero downloaded 3D models

No meshes or textures are downloaded from asset stores. Every prop, plant and creature is a small JSON recipe in client/made/, built at runtime in the world's palette. Bones allow trees to sway in wind and animals to turn their heads.

client/made/birch.json JSON
{
  "builtin": "birch",
  "slots": ["crown", "bark", "bark mark"],
  "motion": "sway-tree"
}

Items without a recipe render as a clean grey placeholder box until crafted.

In the test build

Roam the worlds together.

The full run, the story fragments and the portal spell are being built. The test build is the playable multiplayer layer that works today: 17 worlds, from green hills and a dusk moor to a frontier town, a neon market and the cellars under a castle. Pick a world instance, step in, and explore it with other testers on desktop.

Green Hills: Overview Open for roaming

outdoor

Green Hills

Sunlit rolling pastures, dry stone walls, walking sheep flocks, windpumps, footbridges, and a shepherd's cottage with open doors.

  • Sunny noon
  • Lowland pastures
  • Sheep flocks
  • Dry stone walls
Winter Market: Village lane Open for roaming

city

Winter Market

A snowbound mountain village on market night: log houses, smoke from every chimney, lanterns on the snow, a chapel on the hill, and villagers carrying their lights through the lanes.

  • Snowy night
  • Mountain village
  • Market square
  • Lanterns

Tester controls

Straightforward desktop inputs for roaming, interacting with life, and finding fellow testers.

E

Say hello

Pet sheep and dogs to watch them wag. Greet wandering shepherds to receive a wave or bow. Toggle cottage doors open or closed.

L

Locate testers

Project vertical light beams to the sky above every fellow tester in the current world instance.

B

Wayfinding beacons

Raise beacon columns over the arrival point, the world's portal door, and major landscape landmarks.

WASD

Roam the terrain

Walk the worlds, climb hills, follow paths and streets, and cross streams. Trunks, walls and fences stop you.

M

Top-down radar

Check the corner map for terrain contours, watercourses, roads, structures, and moving herd locations.

Tab

Instance roster

Inspect active testers in your instance, view avatar names, and check server connection status.

Test build status

What you can test in the desktop build today, and what is currently in development.

FeatureStatusDetails
Multiplayer roamingLive nowExplore shared world instances with other testers; random avatars and names.
Procedural cell streamingLive nowBinary chunk streaming around player view from shared Bun server cache.
Living wildlife and villagersLive nowSynchronized animal herds, wandering shepherds, and interactive petting and greetings.
Dusk lighting and hearth firesLive nowFlickering lanterns, moving shadows, and warm hearth fires in cottages.
Opus story and clue sequenceIn developmentAI-authored five-stage run narratives, three clue trails, and golden fragments.
Portal spell casting ritualIn developmentRune charging ritual, door opening, and seamless world transition.
Quest 3 VR streamingIn developmentWiVRn client integration returning in Phase V after desktop validation.

Ready to roam the worlds?

Download the test build for Windows, macOS or Linux and join an instance.

Go to download

Play the test build

Download GateCaster.

The desktop game for Windows, macOS and Linux. The worlds stream from our server, so the game asks once for a tester's key.

How to install, past the Windows and macOS warnings. The files are listed by version.

  1. 1
    Install

    Run the setup on Windows: at "Windows protected your PC", click More info, then Run anyway. On a Mac, unzip and open GateCaster; the first time, allow it under System Settings, Privacy & Security, Open Anyway. On Linux, make the AppImage executable and run it. Step by step.

  2. 2
    Enter your key

    The game asks once for a tester's key and keeps it.

  3. 3
    Pick a world

    Choose an instance and walk in. Other testers may be there already.

Blog

How GateCaster was made.

One short story for each day. What I tried, what went wrong, what I hoped for. Written for the people who are testing the game.

Read every day