There’s no generator that is the best for every circumstance. Indeed, you often want to tailor the generator to fit your individual goals. One lens that we can use to analyze how generators can differ is what I’ve taken to calling the generator’s Locus. The name is based on the idea of the center of attention or the center of gravity: where is the locus of control for this generator? Where are we focusing our analysis?
For example, in Minecraft the generator places diamonds deep in the earth, following a specific set of rules: they have to be deep but not too deep, they are placed in clusters, each cluster is generated at a distance from other clusters, and so on. Once they’re mined, the diamonds are basically all the same. Their difference comes from the structure of the way they are generated. We can call a generator that speaks to the player through the structure of generated things one with a locus centered on structure.
Structure-locus generators tend to be experienced indirectly. The pattern of diamond placement in Minecraft isn’t something the player can directly interact with: the player can only directly interface with the individual voxels, not the intangible generator that placed them. Another example is the history generation in games like Dwarf Fortress and Caves of Qud. The player sees the results of the generation, but can’t directly view the process that created it. Instead, they infer the relationships that the structure exposes.
This can manifest in many interesting ways: because diamonds in Minecraft have the constraint that they are only found deep underground, the player will encounter them late in the progression. Spelunky always puts the exit lower than the entrance. And players can learn more complex associations: the weapon spawning rules in PUBG and DayZ give players a way to anticipate where to look while still not guaranteeing any particular outcome. (The military weapons tend to spawn in the army base, the shotgun in hunting lodges…) By using different distributions of probabilities, including some predictable elements, and having constraints that let the player anticipate correlations, the generator becomes a richer experience.
But, other generators don’t foreground the creation process. Instead, they concentrate on making the most expressive generated artifact. My favorite example for this is the jetpack platformer Exile, originally on the BBC Micro in 1988. To fit a big map on the small disk, they built a generator for it. Many games of the era did similar things, including everyone’s famous touchstone, Elite. What was significant about Exile is that it generates exactly one map. There’s no variation and therefore no way for the player to figure out what the generator is capable of creating outside of that single map.
While Exile is an extreme example of a one-off generator, there are many other generators that primarily focus on the surface of the generated things. In these cases, the generated thing is more important than the system that generates it. This is a relatively popular way to approach designing a generator, where you want your generator to create interestingly unique and complex things. Some games that use it effectively are the way that Desert Golf has one fixed sequence of levels that is the same for all players, the the way that Animal Crossing towns are generated at the start of the game so they’re unique to each player, and any generator that creates a handful of highly-detailed artifacts.
This is complicated by the way that generators can be layered. For example, in Dwarf Fortress the dwarves can engrave the stone walls and floors with images, which have procedurally-generated descriptions. An elaborate engraving has a very surface-locus description, with details about what the picture shows. But the pictures are often depictions of historical events from the generated history, tying them into the structure-locus. The same generated artifact can be viewed from two different perspectives.
Tying the different generators together like this lets us build nested layers of generators that are more meaningful than any single generator would be on its own. As with the engravings from Dwarf Fortress, the histories of the sultans in Caves of Qud are used with nested generators. They are tied into the backstory lore and to places and items that the generator adds to the world. Spore is built around this idea: anything you encounter in the world was made with one of the other generators, often as designed by another player. The individual from the creature creator becomes the template for an entire species.
Hopefully, thinking about the locus of a generator like this can help us design better generators, find new ways to plug different generators into each other, and gives us new vocabulary to use when we’re performing criticism.