Procedurally generating cultures
Rifts has a ton of worldbooks and dimension books. Since quantity has a quality all its own, being able to produce an equivalent level of setting detail is a desirable goal. However, I don't have years and years to pour into this project, nor unlimited creative power to do so. I am a good programmer, so I'd leverage those skills.
The Worldspinner Kickstarter is doing amazing things with dynamic cultures and history, but they aren't solving the specific problem I have. I want to feed existing maps into a system and generate cultures in broad strokes, letting me tailor the output with my own races and people and problems. I want reasonable borders and boundaries and places.
What I want is Perlin noise.
For those who don't know, Perlin noise refers to an algorithm for creating 2- or 3-dimensional grids that are random but exhibit reasonable graduation between regions. The classic application of Perlin noise is creating random terrain maps, such as in Minecraft, where mountains and valleys and similar biome features look "natural".
Instead of geography, I'll create society. We'll start with three metrics: Intrusion, Safety, and Advancement. We're going to ignore "civilization" since that's an emergent property of these metrics. Intrusion means the level of "alienness" in an area. Minimum Intrusion is a fully Earthlike area, with human inhabitants. Maximum Intrusion means a fully alien area - a bug hive, magic labyrinth, or reified psychic landscape. In the middle are things like flying cities or dimensional markets. Safety means the level of security and freedom enjoyed by the typical inhabitant of the region, and/or adventurers entering the area. Minimum Safety means life is at stake at any moment, while maximum Safety means well-policed regions, monster-free utopias, and so on. Advancement means the level of technology, magic, psychic power, or whatever other power source the inhabitants prefer to use. Minimum Advancement means stone knives and bearskins, while maximum Advancement means post-scarcity nanotech, wish-fulfillment magic, or whatever.
We'll write a program that takes as input a map, and some configurable settings for Perlin noise. We'll then generate three 2-dimensional grids of Perlin numbers, from 0.0 to 1.0, for each of these metrics. The result is that each coordinate on the map has three values for these. For example, we might discover that on a map of the United States, Seattle has Intrusion 0.5, Safety 0.75, and Advancement 0.75. This suggests an alien presence and good levels of both personal security and technology/magic, indicating a cosmopolitan civilization. Detroit, on the other hand, gives us Intrusion 0.9, Safety 0.1, and Advancement 0.8. The low Safety and high Advancement tell us that this area might be at risk from some high-tech or magic menace, and the Intrusion level says it's probably not of this Earth. We conclude that Detroit is a hell-hole infested with out-of-control chaos magic, spawning dangerous monsters and mysterious dangers everywhere.
Once we've made these determinations, we apply an edge detection algorithm. Edge detection will give us a sense of the "regions" we've created. We might discover that there's a distinct region around Seattle where the Intrusion, Safety, and Advancement numbers are all similar. We might also have a new settlement to the east, south, or north, with different values. We can treat these discovered regions as independent political entities.
Finally, we can supply our program with a list of adjectives: "alien", "undead", "cyborg", "robot", or whatever. We can declare that certain adjectives are mutually exclusive ("alien" and "human" aren't compatible by definition). We can add additional adjectives declaring a stance for the region ("belligerent", "mysterious", etc.). Some of these adjectives will correlate to certain metrics. For example, a high Intrusion might favor "alien", while a low Safety might favor "undead". The program then makes random selections for the adjectives that describe each region. The result is a set of adjectives that sum up each region and suggest its relationship with its neighbors.
Our remaining role as designers is to give names for these places - which could be handed off to an algorithm as well - and convert their metrics and adjectives into a coherent narrative. This gives us an important starting point for our creative efforts.