Clouds rolling through valleys in the Luminids world

Two things went in this month, and they turned out to be the same problem wearing different hats: the terrain pass, and a complete rebuild of the clouds.

The problem in both cases is that generated things read as generated. You can look at a landscape and know a computer made it, and you usually cannot say exactly why. Most of this month was spent working out why.

Terrain that reads as shaped, not sprayed

The first version of the terrain was correct and lifeless. Elevation changed, biomes existed, nothing was broken, and there was no reason to walk in any particular direction.

The thing that was missing turned out to be flow. Real landscape has direction in it. Water has been somewhere, mass has gathered somewhere, a valley leads. Noise has none of that: it is locally plausible and globally meaningless, so you get terrain that looks fine in a screenshot and feels like static when you move through it.

So this pass is less about detail and more about legibility:

  • Slopes soften instead of stepping, so the eye can follow a hillside all the way down
  • Elevation, texture and lighting are decided together rather than layered independently, which is what stops a snowline landing halfway up a green hill
  • Biome edges get room to transition, because the boundary is where a generated world usually gives itself away
  • Shapes are allowed to gather mass, so a ridge reads as one ridge rather than as a row of bumps

The test I keep coming back to is a simple one: stand still, look at the horizon, and see whether anything makes you want to walk toward it. If the answer is no, the terrain has failed, no matter how good the material work is.

It is worth saying that this is a first pass at a problem I did not solve in one go. It took several more months and eventually became a formal layered process, which I wrote up in Dev Log 6.

Clouds in daylight flowing through valleys in Luminids
Morning. The clouds sit in the valley rather than above it.

Why the old clouds had to go

The previous clouds were a sky texture. They looked acceptable and they were, functionally, wallpaper: they lived above the world and had no relationship with it.

The tell is parallax. If clouds sit at an infinite distance, then walking toward a mountain does not change your relationship to the weather, and some part of your brain registers that the sky is a painted backdrop even if you never consciously think it.

So the rebuild had one rule: clouds have to exist in the same space as the terrain.

Now they flow through valleys instead of over them. They catch on ridgelines. They pass between you and a hillside, which is the single most convincing thing weather can do, because it puts the sky physically inside the world you are standing in.

Clouds at night thickening along mountain slopes in Luminids
Night. Thicker, lower, and sitting on the slopes.

Clouds that know what time it is

The other half is that the clouds behave differently through the day, and not just by changing colour.

In the morning they are thin and high and moving, and light comes through them. By night they thicken and settle low against the slopes, and they stop transmitting light and start blocking it. The same system produces both; what changes is density, height and how much light gets through.

That matters more than it sounds, because it means the sky is doing some of the work of telling you what time it is and what kind of evening this is. In a game with no combat and no timers, atmosphere is most of how the world talks to you. It is not decoration sitting on top of the systems — it is the signal.

What this is really for

None of this makes the game more efficient to play. That is fine. The thing I am chasing is a world that holds up when nothing important is happening, because in Luminids most of the time nothing important is happening, by design.

If you stop walking and just look, and it is still worth looking at, the world is working.

Next month is trees, which I have been putting off because procedural vegetation is where a lot of generated worlds go to look obviously generated.

Nick