Stall — nose down
Pick something for the afternoon.
What you are in the middle of.
Turn your device sideways for a wider view.
Drag to move · scroll to zoom · M or Esc to close
A quiet afternoon on a coastal road. There is nowhere you need to be — walk up the hill, look around, and see what people left behind.
Five keepsakes are hidden around the neighbourhood. Walk close to one to pick it up. Your progress is saved in this browser.
The rest of these only do anything once you are grown and carrying something. You never have to.
The radar, bottom left, rotates with you: roads in grey, houses in clay, keepsakes still to find as pulsing gold.
On a touch screen: joystick on the left, jump and run on the right.
Pick an action, then press the key you want. The arrow keys and Enter always work whatever you choose, so you cannot lock yourself out. Escape cancels.
Who made this, and every third-party licence it actually uses.
Hunger, energy, cleanliness and mood drift down while you play. They are gentle — at their lowest you run about 15% slower, and nothing else. Turn any of them off, or slow them all down, if you would rather not think about them.
None of these change how the game plays. They are here because a setting that costs nothing to offer should not be somebody's difficulty level.
None of this is needed to finish the story — you can play the whole thing without ever picking anything up. These settings are here for when you do.
A Kanban Studios game
Kanban Studios · kanbanstudios.ae
Game Developer: Awaiz Ahmed
Design, code, models, animation, shaders and music are first-party, created for
this project. Every model in public/assets/models is generated by the
Python scripts in scripts/blender — see
docs/ASSET_LICENSES.md for the per-file list.
Audio is both supplied files and synthesis, and it is worth being exact:
two first-party music beds ship as MP3 (outdoor.mp3 564 kB,
indoor.mp3 1,104 kB) and everything else — the chord bed, footsteps,
weather, vehicles, interface — is generated at runtime from oscillators and noise
buffers. If either file fails to load the game degrades to synthesis alone.
No third-party art, audio, model, font or branding is used.
@dimforge/rapier3d-compat)Built with Vite, TypeScript, Vitest, Playwright and Blender.
Drag to look · scroll to zoom · Esc to leave
Something went wrong and Last Horizon had to stop. Your progress is saved up to the last autosave — reloading should put you back near where you were.
The diagnostic file stays on your device — nothing is uploaded. It records what broke, your browser and screen size, and where you were in the game. Attach it to a bug report if you would like to.