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

14 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.

      • My thoughts on random loot are as follows.

        I enjoy the idea of random loot and not knowing every reward with every play of the game, however I also get annoyed for the same reasons.

        Baldur’s Gate: I knew exactly where every good item was, always knew what I would get, the surprise and excitement of new finds was removed.

        Icewind Dale: The semi-random chest drops kept the game fresh, but was frustrating when I knew the chest I opened could of had X item but gave me Y.
        IWD example: A chest could drop either a ring of protection, cloak of displacement, horn of smiting (bard only). Then you get the horn without a bard in your party. This leads the min/max or perfectionist people (myself) to try and save scrub or just feel frustrated by the system (note this is a made up example).

        Skyrim: Every chest at the end of every dungeon was all random loot, I never got excited to open them because nothing was ever interesting or unique.

        I also despise games without don’t use a “what you see is what you get” system for enemies (lots of MMO games) as it annoys me when I kill an evil knight with an awesome flaming sword and it drops a frosty quarterstaff.
        Also wolves and other animals should never drop gold/potions/swords etc. it annoys me and breaks my immersion.

        For me personally if I could choose what I wanted from Druidstone? I would want a mix system. Have the randomly generated rooms have random loot (Skyrim), some of the scripted areas have random pools (Icewind Dale) and them some rooms and bosses have fixed loot (Baldur’s Gate).

        I think big named items should always come from a big moment and not a random chance. I am find knowing the minotaur boss always drops the vorpal greataxe if the minotaur boss is not always in the same place.

        That’s a little wordy and rambly but hopefully makes sense and the examples give you something to mull over.

  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.