Skip to main content

Generation Next, Part 3: How To Create Cultures

From clothing to chair designs...

Mark Johnson is the developer of Ultima Ratio Regum [official site], an ANSI 4X roguelike in which the use of procedural generation extends beyond the creation of landscapes and dungeons to also dynamically create cultures, practices, social norms, rituals, beliefs, concepts, and myths. This is the third in a four part series examining what generating this kind of social detail can bring to games.

In the real world we know which cultures are, broadly speaking, akin to which others. There is no escaping the cultural commonalities in northern Europe, or East Asia, or between Australia and New Zealand, India and its subcontinent neighbours, or many of the countries of South America. This is not of course to suggest that there are no differences within these cultural groupings, but Norway and Sweden are, without a doubt, more “similar” in their cultures and expectations than Norway and, for example, Vietnam. But how do we perceive what belongs to what culture, and how do we perceive the differences in these cultures? And, more importantly... how might we go about implementing these internal commonalities and external differences into a game?

In the third part of this four-part series, we’ll explore what exactly it means to generate a culture, and what elements of cultures become included in – and inevitably excluded from – such a process. In doing so I’d like to start a discussion about both the technical procedural-generation side of this topic, and the experiential side of what the player sees and how players “read” virtual worlds. How best should we combine these to develop our knowledge of these areas to create worlds with deeply detailed generated cultures, contributing to both background detail and gameplay potential?

In the previous part of this series I talked about my work in this area through the massive roguelike game Ultima Ratio Regum I’ve been making for a little while, and I’d now like to return to it here. In its development to date, I’ve made a point of only including cultural details that are either already physically or visibly present in the game, or will be in near-future releases. When you encounter someone and they tell you about the large army of a certain nation, for example, that army is there. By contrast, you’ll never encounter someone who talks about the beautiful porcelain of their nation, because that porcelain doesn’t exist (yet?); it’s very important to me for the player to know that what they read about is actually there. By doing this we avoid the problem of games whose lore far outstrips their mechanics or worlds, and it shows us that we only really want to be making cultural elements that are really there, rather than only read about in books.

This is also a good way to make commonalities in cultures. Buildings might be churches, hospitals, mansions, arenas or jails, but they all have, for instance, the same style of chair. It’s a totally trivial thing, but those chair styles then serve to give some unity to the entire culture – perhaps this culture has a particular aesthetic preference for circles, and all the back of the chairs are circular. This kind of low-level cultural preference, I’ve found, can be easily expanded elsewhere. For a nation that likes the aesthetics of circles, you can change furniture, shop signs, doors, floor tiles, book covers, and almost anything else you can think of. One doesn’t want to go overboard here and make everything circular, of course, but just enough to give a sense that you’re always within the same culture, even as you’re moving between different buildings, towns, social contexts, and so forth.

With these kinds of commonalities within a culture, we should then ask: what about the differences between cultures, and how should these be depicted and shown? Before No Man’s Sky was released, it seemed to epitomise the fears of many with regards to whether procedural generation could ever produce meaningfully different game worlds. Many suggested that there was no way all of its billions of planets could ever be interesting, whilst others suggested that when all planets are unique, no planets are unique, as the player will become almost overloaded with all the variation and cease to really appreciate how distinctive every world is. NMS developer Innes McKendrick, in a ProcJam 2014 talk, actually addressed this very issue, suggesting that Hello Games were perfectly content with some worlds being (relatively) dull, because those would make the interesting worlds stand out all the more.

However, I think there’s more to it than just “allowing some areas to be dull”. We want to create cultures that are not only different, but substantially and meaningfully different – and in a perfect world, none of them would be dull, but they would also avoid the risk of overloading the player with uniqueness and noteworthy places and events. How to strike this balance? So far, I’ve found three solutions.

Firstly, using what we might call fractal, rather than flat, generation. We don’t want everything to have the same set of variables, and for those variables to have the same probabilities. For example, we could imagine creating a nation generator with a hundred variables – inclination to war, interest in literature, the verbosity of its citizens, what style of clothing they wear, and so forth – and each of these variables has twenty options. One option is chosen at random for each nation. This, very quickly, is going to make all of these nations quite similar. Two nations you encounter are statistically almost guaranteed to share some features, all features are equally likely and therefore none seem special, and the player will quickly see the entire possibility space of these options. Remember, if every civilization has to have every variable, then every variable in shown in every civilization – once you encounter a few civilizations that vary in clothing style, then you come to know that all nations vary in clothing style.

By contrast, we want to use a system whereby civilizations vary in the variables they contain, and then vary within those variables. Or, to put it another way, not all nations vary in the same ways, and some variables are connected to others. Maybe one variables has five options, and if one option is chosen, then that “unlocks” another set of five variables to further vary the original selection, and one or two of those also unlock even more detailed variables. Perhaps the top-level variable is the “kind” of religion a nation has, then one rare kind of religion has many subsets, and then some of those subsets have further details. The player then cannot perceive all possible variables for far longer, because something might be unlocked by particular combinations you’ve never seen.

In Ultima Ratio Regum, for example, there are some procedural procedural name generator variations that can only be unlocked with specific and extremely rare alignments of political ideologies. Most players will never see this! And some who do might not realize how unusual it is; but some who see it will realize how rare it is, and will discover that the game’s culture generation can produce an output of a sort that couldn’t have been predicted. Equally, in my experience this kind of technique makes players experience similar feelings to uncovering a secret in a non-procedural game; that sense of having uncovered something placed there quietly by the developer. Rather than knowing something was out there but you hadn’t found it, you didn’t even know it was there in the first place until you first stumbled upon it. My work to date is full of these types of trees, and whenever I playtest and find one of the hidden variable trees coming into play, it’s always exciting to see how it varies a culture, and how unpredictable that very variation is. To put it another way, elements that are unchanged in most cultures are suddenly changed in one or two, but the player didn’t even know those elements could be changed.

Something akin to the opposite of this also works, which is to have procedural elements that affect every level of the thing being generated by removing, rather than adding, possibilities. Imagine we’re trying to create a medieval culture with particular styles of drawing artistic elements – people, horses, hounds, buildings, the sun and moon, gods, trees, mountains, other landscape elements, and so forth. Most systems would, as we discussed earlier, roll a die for each and come up with a solution... but that brings with it the problems we’ve already discussed.

Instead, imagine a system that picks one of those at random to start off with – mountains, for instance – and then makes a randomized stylistic selection. Based on that selection, some possibilities from the other categories, that would clash (based on the designer’s decisions) with these mountains, are removed. It then chooses another element, maybe horses, and picks a style, but that style is now guaranteed to mesh quite well with the mountains. We then remove from the list elements that clash with that style of drawing horses – whilst ensuring each category has at least one variation left in it – and keep going until we’ve chosen every stylistic elements. By allowing higher levels of generation to prevent other options, rather than (in the striated model) enable other options, we go a different route to the same effect – elements of the output seem consistent with each other, and you’ll often get unique combinations of elements that are much harder to predict. Over time, you’ll also find emergent “groups” of elements that fit well together – which brings us onto the third method.

A final technique, which might sound very un-PCG is first, is using archetypes and templates. Have a particular orientation of elements that will always be interesting and compelling to the player? Save those elements, have the game sometimes select that specific orientation (instead of picking the variables that make up that orientation at random), and then vary the orientation enough that it’s always different, but still maintains the core elements that made that combination interesting in the first place. If there are enough of these, and they appear rarely enough, and they vary sufficiently whilst still making sure they maintain that nugget of interest, this is a surprisingly good way to ensure variation in particularly complex and multi-variable procedural systems. URR contains a range of archetypes for certain interesting cultures, or religions, or clothing styles, which aren’t always added into the mix, but strongly complement the more profoundly procedural variations that exist alongside them.

Finally – to return to our first discussion of cultural groupings – an archetype technique can also produce these same cultural groupings, highlighting the differences when you cross from one grouping for another by reducing the number of cultural groups, whilst still varying the cultures within those groups. One can often find in URR cultures that share an almost-identical clothing style and live near each other, or have very similar gods and are closely related, and so forth. Again, this upsets the traditional ideas of similarity/difference and offers a much richer space as a result.

So what do these produce? In the first example, we might take a particularly racist culture. 1/X times it’ll produce a culture that actually specifically blocks people from certain backgrounds from entering their borders. If that’s selected, then it’ll roll another die to decide how. Are there ID guards? Border checks? Each of those can then roll another die; how are these border checks carried out? How common are they? How strict are they? A player can then encounter a culture that is particularly racially uniform and hegemonic, but have no idea the border guard variation even exists. If all nations had a “border guard” variable, however, then the player instantly knows this is possible.

In the second example, removing possibilities, the aesthetic example I gave above is very well-suited to making the point. Procedural painting generation is coming in 2017 in URR – with the possibility of clues being hidden within those paintings – and this is the precise technique I plan to employ there.

In the third example, I’ve found clothing styles to be especially well-suited to archetypes. What are the elements of clothing? Sleeves, buttons, collars, dresses... but then as soon as I type that, I realize that varying these in a traditional procedural manner might produce some odd results. I naturally want unique and interesting clothing styles, but also believable ones, and our notions of believability are inevitably shaped by the real world. A culture could certainly have long dresses with shirt collars... but to our eyes, it might look very strange, and possibly even unintentionally humorous. This is where the use of archetypes emerges, by limiting the game to selecting combinations of clothing elements that are always interesting, but also always believable, and then varying those within reasonably tight parameters.

All of these techniques to ensure variation are, of course, to a certain extent, tricks! They are designed to make players feel as much variation in the worlds they explore as possible, and they do this through a range of technical and psychological means, by altering where differences are, where commonalities and connections are, the scope of each, and so forth. We cannot escape the limited set of possibilities, however large it may be, nor that players who play enough will slowly but surely come to appreciate anything the game has to offer. The point is twofold: firstly, to ensure that a single playthrough contains (or seems to contain) the most possible variation, and that the point of PCG satiation is as far in the future as it can be. Ideally this would exist beyond the lifespan of the game’s interest to players, i.e. the variation is such that only the most obsessive and dedicated players will ever come to appreciate the full variation, but at the very least it should be as late as possible.

We talk a lot about the technical methods of procedural generation, but ultimately, the player experience is surely what truly matters far more. That’s effectively what I’ve been talking about for this entire series, focusing on the creation of convincing game worlds with social and cultural detail that comes at least somewhat close to the real world. For the final part next fortnight, it’s this element I want to finish with: what new experiences can we produce with these kinds of systems? And do we, as game-players, actually want these experiences?

Read this next