No Man’s Sky shipped with eighteen quintillion planets and the most common complaint was that they all felt the same. Dwarf Fortress generates a world with less visual variety than a single No Man’s Sky screenshot and players write novels about it. The difference is not the algorithm. It is what the algorithm is generating.
Procedural generation has a sameness problem, and it is almost always a design problem wearing a technical costume.
Variety is not the same as difference
A generator that can produce a million distinct outputs is producing variety. Whether any of those outputs is meaningfully different from another is a separate question, and it is the only one that matters to a player.
Take a planet generator that varies terrain height, foliage colour, ambient sound and creature silhouette. That is four dimensions, each continuous, and the output space is effectively infinite. Now ask what a player does differently on planet one versus planet two. If the answer is nothing, the generator has produced variety with no difference, and after the fourth planet the player stops looking.
The test is behavioural, not visual. Two generated spaces are different when they demand different decisions.

Three things generators can vary
It is worth separating them, because teams routinely invest in the cheapest one and wonder why the result feels flat.
Appearance. Colour, shape, texture, arrangement. Cheap to vary, immediately visible, and the first thing a player stops noticing. Appearance variation has a half-life measured in minutes.
Content. What is present – which enemies, which resources, which structures. More expensive, because each item has to be authored. Lasts longer, but eventually the player has seen the full inventory and generation becomes shuffling.
Structure. How the space is arranged relative to the player’s goals – what is gated behind what, which routes exist, what the risk gradient looks like. Most expensive by a wide margin, and the only one that generates situations the designer did not author.
Most generators that feel samey are varying appearance heavily, content moderately and structure not at all.
Why Dwarf Fortress gets away with it
Its world generation produces history – civilisations, wars, migrations, ruins left by specific events. None of that is visually interesting. All of it is structurally interesting, because it determines who your neighbours are, what they want, and what is buried under your fortress.
A generated grudge between two dwarf civilisations changes what the player does. A generated shade of purple on a fern does not. The lesson is not that graphics do not matter; it is that generation effort spent on things the player acts on returns more than generation effort spent on things the player looks at.
The authored-fragment approach
The most reliable answer in practice is not better noise. It is hand-authored fragments assembled procedurally.
Spelunky is the standard reference here: rooms are designed by a person, layout is assembled by a machine, and the player experiences a level that no designer laid out but every piece of which someone did. That split is why the game’s levels have intent in them – the influence of that structure on the decade of roguelites that followed is hard to overstate.
The same pattern holds in Minecraft’s ecosystem. Vanilla terrain is noise-driven and consistent; the structures that make exploration worth doing are hand-built templates placed by a generator. Worldgen mods that land well tend to add authored pieces rather than new noise functions, which is visible in how dimension mods approach worldgen – the memorable ones bring buildings and biome set pieces, not a different fractal.

The recognisability threshold
There is a point where generated content becomes memorable, and it is lower than most teams assume. It is the point where a player can describe a specific instance to another player.
“A swamp” is not describable. “The swamp with the flooded tower where the map was under the water” is. The second one has a landmark, a spatial relationship and a consequence. All three came from authored content placed by a generator, and none of them came from the noise function underneath.
In Minecraft the same threshold explains why players remember seeds at all. Nobody remembers a seed for its terrain. They remember it because a village spawned inside a ravine, or two structures overlapped in a way that produced something neither was designed to produce – which is most of what reading a seed in the first ten minutes is actually looking for.
Where infinity hurts
Unbounded generation removes scarcity, and scarcity is what makes a location matter. If there is always another planet, no planet is worth returning to. If there is always another dungeon, no dungeon is worth mapping.
Games that generate a bounded world – one world, one history, one set of ruins – get attachment for free, because the player cannot replace what they are looking at. Games that generate endlessly have to manufacture that attachment some other way, usually by letting the player build something permanent in the generated space.
That is, not coincidentally, the thing Minecraft does. The world is infinite, and the player’s base is not.
What this means for anyone building a generator
Three questions, in order. Does the generated difference change what the player does? Can a player describe one instance to another player? Is there anything in the generated space the player cannot get somewhere else?
A generator that answers yes to all three does not need eighteen quintillion outputs. A generator that answers no to all three will not be saved by having them.
Images: Dwarf Fortress and No Man’s Sky project galleries.