Apparently, I have a liking for letting algorithms do the work I'm supposed to do. This thread is something like an open thought process and discussion platform at the same time. Feel free to add your own thought or pick up where I left off.
But first, let me tell you a bit about
Pen and Paper Roleplaying Games. It's basically an excuse for nerds to get together and do social stuff while still keeping up their regular I'm-living-in-a-cellar-reputation. I occasionally happen to be part of such events and organized one myself. Here are the basics, if you don't know them already:
- 4-5 people get together and decide to play a Pen&Paper RPG over the course of a few tightly packed days or in a long-running session (once a week or so) that spans months or even years.
- One of those people will be the game master, the others will be players.
- Each player plays a character in the game world, with actual stats and inventory and stuff, written on a piece of paper, the character sheet.
- The game master designs, "simulates", represents, plays and describes the world, including all NPCs, challenges, storyline, setting, etc.
- Players describe what they attempt to do and how they do it.
- The game master describes what happens - both in the world, and what happens as a response to non-trivial player actions (do they work? how well? what happens?)
And here we go. That's basically it, the rest depends on the ruleset and mostly, on the playstyle of game master and players. As far as rulesets go, there are a lot of them: Dungeons and Dragons, The Dark Eye, Vampire: The Masquerade, various Warhammer 40k systems, and many more that I probably forgot here. Now, what does pen & paper rpgs have to do with Procedural Generation?
As a game master, you're in the position to not only come up with a general storyline and setting, as well as applying the rules, but you also need to react dynamically to what players do. If they decide to visit that mining village you just mentioned at some point, well, you better come up with something soon. Essentially, you're building the world around them, and it's always a challenge to do so fast and consistent enough, so they don't notice the seams, or those spots where you didn't think of something yet. And this is where Procedural Generation comes in handy.
So, the core thought of this was relevant when I needed to come up with a big city, looked for city map generators and didn't really find a good one. Wouldn't it be awesome if you could just generate the city in a consistent way, with different quarters, a reasonable layout, from way up to a general overview to way down to individual buildings? This would certainly be useful not only to pen & paper roleplay, but also for digital roleplaying games.
However, as I discovered during my master thesis, a key ingredient to consistency is context. You can't just generate a building without knowing where it stands, what purpose it has, or why it is there in the first place. And you can't generate a city without knowing what's around it, why it was founded at that specific spot, what Resources it has access to, what needs to be imported and what can be exported. As you'll notice, we're slowly approaching "Dwarf Fortess" terrain here.
Okay, so.. suppose I wanted to create some serious ProcGen backup for my pen & paper stuff - or, a digital rpg game - I should probably start at the world level, right? Generate a reasonable world first, and then proceed with.. say.. countries or "political regions". Next in line would be.. cities and settlements? Then city quarters, local demographics, then... buildings? Next in line would be NPCs?
To actually generate all of this from way up to way down is probably not viable, or too much work for a small side project, but it's kind of an interesting thought. Do you know any existing projects in that direction? Where did it fail when it was tried before?