About proceduralism

To our surprise, there has been some heated discussion about Druidstone being procedural. We didn’t really expect that but in hindsight it’s easy to see that we should have communicated more clearly what it means when we say Druidstone has procedurally generated content. Otherwise it’s way too easy to get the wrong idea.

So let’s talk about proceduralism in Druidstone. Procedural games can be roughly split in the following categories:

1. Fully procedural games like Minecraft, Dwarf Fortress and No Man’s Sky, which generate the whole world procedurally. Most of them have sandbox type of gameplay.

2. Procedural games with some predefined content. For example, most roguelikes have special rooms that are handmade (often called “vaults” in roguelike jargon).

3. Games with handmade, predefined content in randomized order. E.g. FTL has designed encounters but their order is randomized and Binding of Isaac has handmade rooms whose order is also randomized.

So, which category does Druidstone fall into? Druidstone has a story that unfolds as your progress in the game, so option 1 would not work. Telling a predefined story in a fully procedural generated world would be almost impossible. Technically options 2 and 3 would both work but in the end we picked option 3 because it just fits better into the game design and is just so much easier to accomplish.

What that means in practice is that the world of Druidstone is split into areas that are “randomly” connected. An area could be almost anything, a room in a dungeon, a forest meadow, a graveyard, an encounter with a NPC, you name it. Internally we call them all “rooms” even though they may not resemble a real room at all. Basically each room is a handcrafted mini-level in itself, and can have enemies, traps, NPCs, etc. Rooms are picked from a large pool of rooms, so that there are more rooms than fits into a single playthrough.

Technically each room is defined by a piece of Lua code, so the system has a lot of flexibility. With Lua it’s easy to have some randomly varying content in the rooms as well, if we want to. For example, the enemies or items in the room may be randomly determined. We try to keep the rooms relatively small to maximize the potential of surprising room combinations.

The rooms are essentially 2D grids (tactical battles are just so much better on a grid), so it’s only natural that the rooms themselves are connected on a grid. We really like our grids! 😎

In addition to these randomly chosen rooms there are special key encounter rooms that can only appear in predetermined points in the game. The key encounters usually advance the story but they may also be some cool moments or bad-ass boss fights.

So there you have it! If you have any questions, please don’t hesitate to ask in the comments section. Until next time!

Petri Häkkinen

Developer

13 Comments:

  1. Why not just make everything static? When people here procedure driven they think generic, at least I do. Not a fan, though I’m sure you are making a solid product.

    • It’s a good question and answering it would be a good topic for another blog post. The short version: reincarnation & procedural generation has a important role in the story of the game. Also, there are many RPGs with static level design (including the two Grimrock games), so we wanted to create something different.

  2. It’s something new to me – but I’m excited. You did a very good job with Legend of Grimrock – so I’m confident that it will also work out this time.

  3. There better NOT be randomized loot . Nothing pisses me off more.

    • You mean – save, open chest, check loot, reload 😉

      • Note that you wouldn’t be able to do that with a permadeath system. That said, we haven’t decided yet if permadeath is the only gameplay option. We’ll know better when we get further into development (closer to alpha).

    • The levels being procedural (or randomly picked from a pool of maps), random loot is a pretty good match (it brings variety to the rooms). Why does random loot turn you off?

      • Hmm, maybe if my character is spezialized in axes and the loot contains only powerful swords. I think the balance is important.

      • IMHO:

        The problem with randomized loot is that, for me at least, loot is part of the story. It’s much more compelling when an enemy drops loot that’s appropriate for it to have been carrying, with a background that ties in with that of the enemy itself, possibly even works as a lead towards a new branch of the story. That’s especially true for “special” enemies such as bosses, of course.

        I liked the WoW system wherein bosses had a chance to drop random items picked from that boss’s preset item pool, maybe with some small, interesting variations. It added an element of unpredictability while keeping the items intimately tied with the boss itself. But then again, WoW bosses could be killed over and over again until they finally dropped a desired piece of loot; this probably wouldn’t work in a single player game, resulting instead in frustration and save scumming.

        On the other hand, it makes sense to randomize loot for cannon fodder characters, because they’re not worth describing in detail – the sheer cost of it, and the added complexity to the world-building process that risks derailing internal consistency, just aren’t worth it.

        • Randomized loot doesn’t have to be totally random.
          Bandits could have a chance to drop:
          Leather Armor (when they don’t, assume it’s too damaged to use)
          Sword
          Gold (5-50)
          Food
          etc

          Also, maybe this bandit just robbed someone and has an item of value that isn’t useful in combat to the bandit (so that’s why it wasn’t used against you) but still has value:
          A gold wedding ring, inscribed with a name.
          A ring of spell storing(depleted)
          Maybe the bandit’s sword is a sword that can do some magic effect if your skill is high enough .. and the bandit’s wasn’t.
          A mage staff (assuming the bandits aren’t magic users themselves)

          You can have different loot tables for different enemies.
          Unique items (like the wedding ring – maybe it’s a quest) could possibly only ever drop once, so they’re on the loot table, but won’t drop if they’ve dropped before.

          I think random loot is important if you’re doing procedural generation – ifyou have randomized dungeons you want some randomized loot. That doesn’t mean you can’t GUARANTEE certain things if you need them either.

  4. Hi, how do you rig your characters ?

    • We rig our characters in Blender using it’s standard tools. Nothing too special trickery 🙂 All the rigs are custom built because each character and monster has it’s special needs for the rig.

Leave a Reply

Your email address will not be published. Required fields are marked *