DEV Community

IdleCultivation
IdleCultivation

Posted on

Placing a continent: what geography taught me about scatter

Development covered 17 Jul 2026 to 25 Jul 2026 (commit dates).

The world map had been generated by rules for a long time, and it looked generated. Not broken, not ugly exactly, but the specific flatness of scattered things: peaks dotted across the ground like sprinkles, forests that were the same everywhere, biomes meeting along a drawn line, and no reason for anything to be where it was. This stretch was a long argument with that, mostly won by reading about how real landscape works.

Scatter is not geography

The failure has one root. If you place features by asking, at each point, whether this point should have a mountain, you get mountains distributed like static. Real mountains are not distributed. They are the consequence of a process that operates on lines, so peaks come in chains with shared orientation, shared rock, and a shared story.

Rebuilding the relief around ridges instead of points changed the horizon completely. A summit now belongs to a range and inherits from its neighbours, which means the skyline reads as one geology rather than four unrelated ones standing next to each other. Before that, the peak artwork was picked per peak from whichever regional palette matched the single point underneath it, so a ridge could contain granite, sandstone, snowcap and volcanic rock across four adjacent tiles. Nobody has to know why that looks wrong. Everybody can see that it does.

The same lesson applied to trees. Every tree in the forest sat within a narrow band of sizes, so the canopy was one storey deep and read as parkland. Widening the size distribution, with a few genuinely large trees and a lot of undergrowth, made a forest.

Edges are where the world becomes believable

The second research pass was about biome transitions, and the finding that mattered is that nature does not have edges, it has ecotones. Where forest meets grassland there is a zone in which both interlock, with fingers of each pushing into the other along terrain the other does not favour.

An interlocking transition is barely more expensive than a hard one and it is the difference between a map that looks painted and a map that looks like a place. It also fixed an odd secondary problem: hard biome edges made the regions feel like administrative districts, which is a strange feeling to have about a wilderness.

Plants went the same way. Gatherable herbs had been drawn uniformly from one pool, so the same species grew on a damp riverbank and on a dry ridge. Species belong to conditions. Once herbs picked from their climate, walking became informative: the ground tells you what grows there before you see it.

People build where the land feeds them

Then the human layer, which had almost none of this thinking in it at all.

The largest city in the world sat ringed by untouched forest, which no city has ever done. Cities eat, so a city sits in a productive landscape with cleared land around it and a road network radiating out. The road network in particular was almost entirely missing: twenty seven named places and two short stubs of path near the starting sect. A continent with named landmarks and no routes between them is a list of locations, not a world people live in.

Adding roads changed how the map plays, not just how it looks. Players follow lines. Give them a road and they will walk it, arrive somewhere, and feel that they went there on purpose.

The other thing this pass turned up was a quarter of the wilderness with nothing in it. Half the scenery vocabulary had never been placed anywhere. Regions with names promising something specific, hidden realms, mineral sites, terraced farmland, were rendered as ordinary forest with a floating label. A named place that does not look like its name is worse than an unnamed one, because the label makes a promise the ground breaks.

The validator was sampling too coarsely to see the problem

One methodological note that cost me a day and probably saves the next person more.

Every placement check was run against a probe that sampled the terrain every four tiles. That sounds fine, and it means anything smaller than four tiles across is invisible to the check. Once the grid was tightened, two hundred and fifty violations appeared that had passed every previous audit: props standing in water, ground tiles used against their own type, scenery growing through the walls of buildings.

The general form of this mistake is worth carrying around. When a validator and the thing it validates share an assumption, the validator cannot see anything that assumption hides. Every check I wrote that week agreed with itself perfectly, which is exactly what a blind spot feels like from the inside.

The live build is Myriad Immortal Sect.

Top comments (0)