Embers of Dawn

Embers of Dawn · The world

The living valley

Weather, wildlife and rare sights that carry on whether you’re watching or not.

Under the hood

A world that keeps happening.

Embers of Dawn runs on an engine we built from the ground up, just for it. Most of our time has gone on one thing: making the valley feel as if it carries on without you. It notices you when you turn up, too.

  • 20 minfor a full day and night in the valley
  • 950+automated tests keeping it honest
  • 1.5 kmof valley, carved on a one-metre grid
  • 27rare sights, from aurora to frozen falls
  • 91herds across eight species, all with their own senses
  • 0texture files: every frame is painted by code
4 states · seeded spells

The sky keeps its own schedule.

The weather runs as a seeded run of spells. Clear, overcast, rain or mist, each lasting somewhere between three and eight hours before it eases into the next. Above the snowline the rain falls as snow.

Clouds drift on a layer 900 metres up, with darker bellies and shadows that sweep across the sunlit ground. There are two moons, and the nights come out a moonlit blue rather than black. As the whole sky is seeded, the twelve-hour forecast on her slate is always right. We like that. Nobody needs a forecast that lies to them.

The valley under a clear blue sky with a few small clouds
Clear
The same view under a pale overcast sky
Overcast
The same view in rain, the peaks greyed by falling streaks
Rain
The same view in mist, the far peaks almost gone
Mist
The same view at dusk, the sky violet and the first stars out
Dusk
The same view on a clear night, full of stars, the peaks in moonlit blue
Clear night
Wind · wet · mist

What the weather does to the place.

  • Grass bends in the gusts, lies flat in a storm, and parts around her as she walks.
  • Rain and snow slant with the wind, and so does every creature’s sense of smell.
  • Trees drip for an hour and a half after the rain stops, and bark and rock darken in the wet.
  • Snow settles on every upward face. Rime creeps over the meadow on the coldest mornings.
  • Mist pools in the groves, shaped by how deep the trees are and how the ground lies.
  • Cold and wet wear on her faster, so a good forecast is worth reading.
A grove at dawn without mist: terraces, pines and the explorer, all crisp The same grove at dawn with mist pooled between the trees
Drag across the grove at dawn, with its mist and without.
Ground · light · season

The ground remembers the weather.

  • After a soaking you get puddles, mud and dark wet ground. The next morning, mushroom caps push up in the shady groves.
  • The meadow flowers open in the morning and close up at night.
  • On a still, clear dawn the night’s cold air settles in the hollows as mist, flat on top like a lake.
  • At dusk the high snow picks up a faint rose glow.
  • In a strong wind, thin plumes of snow stream off the peaks.
  • And the snowline creeps down as your stay goes on. Stay long enough and the snow comes down to meet you.
A hollow by the water below pines and peaks, with no mist The same hollow on a still dawn, filled with flat-topped mist
Drag across the same hollow, with its dawn mist and without.
The same ledge from above on day 5, green, and on day 21, with snow on the rocks and trees
The same ledge on day 5 and day 21.
Pale mushroom caps in the shade of a pine beside a stream
Caps up by the stream, the morning after rain.
Trust · rams · the old ram

Herds that get to know you.

Spend calm time near a herd and, over a few days, it gets used to you. It notices you later and settles sooner. It will still smell you if the wind carries your scent to it, mind, so the wind still decides your approach.

Each animal is its own animal, too. In a Mossback herd the calf has moss only along its spine and stubby little horns. The eldest carries the most moss, the biggest horns and a grey muzzle.

The Ramdrakes have rams and ewes now. The old ram has a broken horn. He wins every clash on the ledges until late in your stay, and then one day he doesn’t.

Three Mossback Grazers in a meadow below a cliff: a calf, an adult and the mossy eldest
One Mossback herd through the lens, calf to eldest, each with its own moss.
Homes · trails · listening

Every animal lives somewhere.

  • Herds wear real trails into the ground. Walk thirty metres of one and it goes on your map.
  • Skinks have burrows, gliders a roost pine scored with claw marks, drakes melt themselves frost beds and waders build nests. Each home has a prize shot of its own.
  • Calls from behind you sound duller, so you can tell where they’re coming from. Crouch, keep still and listen, and Nib marks the bearing on your compass.
  • Five old listening stones glow faintly at night. Stand at one in still air and every kind within earshot calls in turn.
  • Flocks of pine finches sing at dawn, chatter at dusk, and lift all at once when anything comes too close.
A dark boulder at night with a glowing violet glyph of a listening ear carved into it
One of the listening stones, at night.
The event director

Something is always about to happen.

A lot of games scatter their events across the map and hope you stumble on them. We wanted something gentler, so we wrote a director. About once an in-game day it chooses a moment somewhere 150 to 400 metres from you, leaning towards dawn and dusk, things you haven’t seen yet and the animal you’re tracking. It waits if you’re in trouble or in the middle of a story moment, and it leaves you alone for your first day or so. When it does pick something, it lets you find it in stages.

  1. The world shows it.A wheeling flock, a shaft of violet light or a column of mist, visible from 650 metres away, with sound to match.
  2. Nib notices.Inside 300 metres, your companion perks up and lets you know.
  3. The compass pulses.A nudge in the right direction, and nothing more.
  4. The ground leads you in.Scuffs, prints, glowing marks or damp earth: up to 48 signs over 220 metres.

Miss one and it still happened. The scar stays where it was, and the moment comes round again somewhere else.

Twenty-seven rare sights, and counting.

These are all screenshots from the game itself. The sky events run to a seeded calendar and the weather ones come with the forecast. The director places the rest somewhere near you. Most of them are prize shots, too, if you can get the lens up in time.

And the machinery underneath.

WebGL · 60 fps

Plays in your browser

No download, no install. The valley is drawn live, aiming for a smooth 60 frames a second on an everyday laptop. If a frame runs long, quality quietly steps down to keep things smooth.

Procedural terrain

Grown from a seed

A valley 1.5 km square, carved on a one-metre grid and stepped into terraces, with streams, waterfalls and a ring of mountains. It’s built in a background thread, so the loading screen never freezes.

64 m chunks

Streams as you walk

The land loads around you in chunks, with a lighter copy filling the distance. Up to 14,000 clumps of grass and 9,000 flowers are each drawn in a single batch.

One painterly pass

Painted by code

Ink outlines, brush wobble, stroke texture, mist, a painted sky, colour grade and paper grain, all added live in one pass over every frame.

Sight · hearing · scent

Creatures with senses

Every animal sees, hears and smells. Crouch, keep still or find cover and they’ll settle; run and they bolt. Each herd walks its own daily trail, and storms send them bunching, burrowing or holding still.

Voice · score · sound

A valley you can hear

Wind, water, rain, insects and footsteps are made live as you play, and every clap of thunder is built fresh. Over that sit her own voice, a score of felt piano, soft strings and bowed glass, and a few dozen sounds made for the lens and the slate.

Planet packs

Built for episodes

Each world is a pack of data: its land, palette, sky, weather, plants, creatures, events and story. A new episode is a new pack, not a new engine.

Versioned saves

Saves built to last

Every save carries a version, and each new version comes with a step that carries the old ones forward. Once we launch, your expedition won’t be left behind.

Built in TypeScript, with three.js and Vite.