Generation Next, Part 3: How To Create Cultures

Share this:

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?

31 Comments

This is fascinating stuff and I really hope URR succeeds in the goals it sets out for and remains a highly played rouguelike for many years. But I can’t quite fight this feeling of unease due to the fact that a game dev is allowed the opportunity to talk at lenght about the features of a yet to be released game, completely on his own terms, outside of an interview format and in the absence of any critical journalistic counterpart. Let me repeat that I wish well for this project, I’m just concerned about the fallout that might result in case parts of the community end up somehow disappointed with the final product, as in the case of NMS.

Thanks for the comment :). As I’ve mentioned in one or two other replies here, I’ve tried to be critical in this part, even if – inevitably – as someone doing lots of culture PCG stuff, I have to focus on my own work in one of these four essays.

Games journalism has turned into some weird paranoid parallel world – of course a dev can write about their project without being challenged on it. It’s up to you to understand or not, and to be interested or not. It’s how all consumption off knowledge works. Journalists aren’t magic gate keepers, and shouldn’t be expected to be.

Given the nature of the project and the fact that its free it feels much more like we’re getting an artist to discuss art both within his own work as well as others in order to illustrate a point.

If you actually ever read a newspaper you’d actually find this kind of commentary quite common. Usually its an article series written by someone with more direct knowledge or expertise than any of the staff journos has.

Thanks a lot for this comment – that’s *exactly* what I was aiming for, but from the other comments, maybe I missed the mark just a little on Part 3 here. And that’s fine, that’s how we learn and get better at writing commentary/criticism, and I’m definitely taking all these thoughts on board!

Thanks for the kind words, and for the honest thoughts – I always really appreciate them. You’ve raised an interesting point, which I have two responses to. Firstly, I’ve trying to trace a particular path in this series – Part 1 talks about lots of games, Part 2 talks about a few other games and my own work in this area, Part 3 is the focus on my own work, but then in Part 4 I’m going to pull back out and talk hardly at all about my own work, and far more broadly about games in general. Do let me know what you think about Part 4 once it comes out – hopefully you won’t have the same concern there. I therefore only see this as part of a series, and ultiamtely – as one of a small handful of people really trying to push this area – I think talking about my game is inevitable, but I have tried to do so critically, as I’m basically admitting that generating culture is super-difficult, and we need to fall back on some tried-and-tested methods and be concerned instead with player PERCEPTION, rather than how the actual generator works. Thirdly, and briefly, versions are actually iteratively released, so you can go and download the previous version, and the new version soon! But assuming you mean “unfinished” by “unreleased” – yeah, certainly, though I do try hard to manage expectations, and I regularly respond to questions of “Will URR have X?” with “Nope, afraid not” on my blog, to emphasize the worldbuilding, and now gameplay, elements I want to focus on.

Phew, that turned into a long reply. Basically: I totally take your point, but I hope you see the rationale behind this third part, and do please let me know your thoughts after the 4th and final bit!

I think that’s probably true! Perhaps it’s also the nature of being very public about development and releasing lots of iterative versions – maybe if I’d stayed secret for five years the interest would have been less, but people would have got gameplay “faster” after learning about the game?

Haha, so far, yes, but once 0.8 is FINALLY out (sixteen months of dev so far, maybe one left?) the transition into an actual game will finally be underway. It’s just the nature of the kind of game I want to make – the usual game elements (people, items, whatever) cannot actually appear in the world until all the underlying elements (politics, cultures, religions) are therefore, because all those people have to be from particular cultures, worshippers of particular religions, and so on and so forth. I didn’t fully appreciate this when development started, but we’re finally at a point where the gameplay elements are going in :)

So, basically, the answer to “how do you generate cultures?” Is “the same way you would generate anything else”? How boring. Cultures are way more than “racist” and “likes circles”. The best thing about culture is that it can be unintentionally humorous, and also frightening, confusing and hard to understand. I imagine that to procedurally generate cultures that are interesting in and of themselves, one would need to start by making a game about culture, not one where it’s just set dressing.

You nailed it : these people don’t really understand what they’re talking about I fear… The idea of “generating cultures” is preposterous, because cultures are organic beings, and not logical systems. But ambition is good for its sake, and they might succeed doing something else while trying to do that.

I agree with you both, and would add that because cultures are seen as logical systems there’s usually no room for nuance and contradiction within them, something that’s evident to anyone who is, well, alive. However, I do find the approach interesting – I mean, is it even possible to depict the emergence of a culture in a game when the tool itself (programming) is bound to the trappings of logic? Culture makes sense because it is organic, and its rules are tied to habits and cosmology, not because it is purely rational (and what we understand as ‘rational’ is also conditioned by context, by culture); if what you are using to attempt to describe a culture is (perhaps) inescapably rationalized, then how could you even proceed?

In a way, procedures like these are somewhat stretching the capacity of programming, if only because it is trying to describe/proscribe something that is implicitly beyond its reach. That makes it interesting, I think, partly because it’s doomed to failure (Even the ones trying to describe ‘nature’, not only culture, might fall into the same category, I mean No Man’s Sky is an obvious target: no, nature/the universe is not an algorithm). It’s also interesting because it shows us the limits of these ways of thinking, which are so dominant in our current context, in the sense that we believe that science or ultra-rationalizing ways of thought are not only inherently correct but also seem able to explain just about everything.

Humans and the things we do obey logic. It’s just really, really, complicated logic that instead of being designed from the ground up by intelligent beings like our computers and programming languages, has been built up semi-randomly over the last few billion years.

I don’t think the simulation of things like culture is outside the bounds of computing. Yes, a human brain is a very complicated thing, and a society of humans is made up of a network of these ridiculously complex biological machines, but I think most of the complexity can simply be ignored (for the same reason physics simulations don’t need to simulate every molecule to seem fairly realistic).

An addendum: the idea that contradictions are absent from logical systems and only crop up in the weirdness that humans get up to is false. Gödel’s incompleteness theorem asserts that it is impossible to construct a complete and non-contradictory set of axioms for all non-trivial axiomatic systems.

Even simple mathematics are not pure. Gödel’s first target was natural numbers, on which all of mathematics is build (and then everything else).

Thanks for this amazing comment – those are a bunch of fascinating questions, to which I’m not sure I have the answers! I agree with much of your second paragraph about the problems with the contemporary scientistic drive towards rationalization/quantification/etc etc, and what this means for trying to generate something like this. At the same time, though, whilst I don’t hold to a pure “universe is algorithm” view like someone like Manue DeLanda, I absolutely believe there is nothing beyond the material world. I therefore agree we can’t define these things, but not because they cannot be defined, but simply because they cannot be defined by US with our simple monkey-brains. We can just try to come close, and whether we’re talking sociology or particle physics, our objective should be to explore (and model?) the world as best as possible. Indeed, I come to programming as an academic sociologist, not a computer scientist, and that (obviously) has reflected the kind of game I’ve tried to make, but also how I program – I try to minimize the volume of numbers within generation systems and within the eventual gameplay, as the world I study in my everyday life is primarily qualitative, and I think that’s just such an interesting – and in a way non-programmatic – area to explore in games!

“Organic beings” and “logical systems” are two very broad terms, and I’m not totally clear on what you mean there (and by “these people”, do you mean me, or people leaving comments? This is a one-person project!). I personally don’t agree that anything is less-generate-able than anything else; only that it might be far harder or far more complex. I’m just realistic about what one person can do, in a very new field of PCG, even given many years; and like I say, I hold as an absolute, absolute objective that what the player sees matters more than the system. If the player sees massively different cultures that remain massively different on multiple playthroughs? Then the system works, and (from a phenomenological perspective, I guess) that’s all there is to it!

It is an information / culture roguelike, really different from most things you’ve seen and will see in games. If you go to the game official site you can read more about it, about the design and technical dilemmas confronted.

Culture it’s not a matter of “they like circles or triangles”, yet I’m pretty sure you can tell a native american indian decoration from, let’s say, a classic greek one. Just looking at the patterns and colors.

The current design has really interesting cultural traits affectong the cities, buidings, costumes, myths, religion and much more. There’s also a really convoluted but fascinating conversation engine.

Just go to the site, download the game and generate the world. And then read the encyclopaedia or just wander around.

Of course they are! But I was trying to stress in this piece (and the others) a) how difficult generating a culture is and b) the importance of generating elements the player sees, understands, and can engage with, rather than anything else. Equally, as a one-man development team, and someone who is trying to make a GAME instead of an awesome and super-detailed simulation (although elements of the latter fundamentally underpin the former), some decisions have to be made about what to show and model and what not to show and model. I totally agree it’s not perfect, and I have no doubt people in the future will build upon what I’m doing, DF is doing, games like Moon Hunters do, etc, but I think the focus on perceptible elements of culture is a really vital place to start.

And URR is, indeed, a game “about” culture – in that you have to learn about the world’s cultures in order to identify the clues hidden within them to complete the game – but I’m not sure that a game with cultures as window-dressing is any less valid than this approach! I think it would be tremendously valuable there, too, which I’ll come back to in Part 4.

I was expecting that he would be talking about generation via simulation. If you do the simulation thing, you not only have little details that can correlate with environment or history, but you could also have interesting relationships like “this valley somehow became conservative, so they’re much like the surrounding country was 200 years ago.” You’d need that kind of historical tree for languages anyway. I guess it would be basically like the possibility tree he’s talking about, except branches would be triggered by historical events or environment.

Dwarf Fortress does a bit of that in a limited way with art influenced by past events and whatnot.

Ah – I actually don’t (mostly) do generation via simulation, because that leads to a slightly different game, when contrasted with the thing I’m trying to make. If you look at URR now (and even more when 0.8 is out shortly), and look at DF, although they have very different explicit design goals, I think you can also read very different concerns into them by looking at how they do their world generation, and the concerns of DF with massive detail for world SIMULATION, whereas I am concerned with massive detail fro world GENERATION, and just walking through the spaces really shows this, often in some quite idiosyncratic ways…

Anyway, something I wish was adressed is “what elements of cultures become included in – and inevitably excluded from – such a process”, but from the ideological point-of-view.

What I’m thinking of is, on what basis can you discriminate the different elements of a culture? How do you select which elements are included and excluded? How to create the “otherworldly” cultures, that include elements unthinkable in ours?

Not (all) real questions, just brainstorming, but I was very interested in the choices made during the process as much as the process itself.

Thanks! Yes, that is a fascinating question; I tried to touch on that here in the “we want to generate stuff the player actually sees and which actually matters sense”, but you are TOTALLY right – that does inevitably come with some tacit ideological baggage of what gets excluded from this kind of cultural simulation, and it’s a fascinating question. As for including elements that unthinkable in ours… there are lots of cultures in URR that can generate and basically “remix” real-world cultural elements, but there are some variations in there which have NEVER apperaed in the real world (to my knowledge, and pre-modern world history is one of my academic obsessions, so I feel semi-confident I haven’t missed out any major pre-modern culture that did some of these things) but could have appeared in the real world. I don’t want to spoil some of them, as they’re rare but very cool generation options, but for instance if we look at (major graphic image warning, so Google at your own risk) a group like the Skoptsy, we see a pretty intense cultural idea that subsisted for over a century… and perhaps something like that could be even more common, or take hold over a wider or larger nation?

Anyway, yeah, choices are definitely made in the process, which have to have shaped the final product. I’ve tried to focus on what the player will actually notice and see, but inevitably, things might slip through the cracks, which will shape the generated cultures in unpredictable ways…

It sounds like much of this article wasn’t really specific to ‘generating culture’, as others have pointed out. The big lesson for procedural generation here seems to be: Avoid uniform probability distributions. They are much less interesting.

Hey – thanks for the honest feedback. Based on this and the other comments, I think this piece might have gone a little off what I intended. In one sentence, I was basically trying to show that (like I say in other comments here, this is especially true for a one-man team) generating culture is absurdly difficult, and that we such focus on how it LOOKS to the player, rather than on how it is actually created on a TECHNICAL level, and that there are many methods – not all of them especially new – for doing this. I appreciate the feedback!

Some philosophical objections here in the comments about the feasibility of generating culture… IMO all that we can talk about is generating temporarily compelling fiction about fictional culture! “Avoid uniform probability distributions” is a good idea, and mixed with archetypes it could be really powerful. As Mark Johnson points out, these are tricks that manipulate players. Cool stuff!

Thanks for the thoughts – the comments on this piece are really interesting to me. I tried to stress in this third part that this is very difficult, and very new, and certainly far more challenging (I think) than a lot of traditional PCG, so I hope people don’t feel I’ve “let them down” at all here; it’s a challenging thing to do, especially as a one-man team, and I’ve focused on how to make it look like cultures are truly and deeply generated from the perspective of the player, even if we have to use some classic, or less-exciting-than-you-might think systems in order to do so.