Exploring the random art of procedural levels
Have you ever heard the saying "All roads lead to Rome"? Don't believe it – it's a lie! Some roads lead to other roads. I know because I was heading to Rome myself, but took a wrong turn and ended up in the Desert Temple level during the Minecraft Dungeons beta instead. Now I'm stranded in this maze of windy roads for all eternity. There’s literally nothing I can do to find my way back and complete this level before the game is released on May 26. :(
“There are several things, actually. For starters, there’s a map that you can look at the whole time,” says Laura de Llorens, game and level designer on Minecraft Dungeons and sudden savior of hopelessly disoriented writers. “You can either have it on the whole time while you play or bring it up whenever you need it. There’s even a yellow arrow that will always point you towards where you are supposed to go.”
Oh, that big transparent map in my face was a map? I had no idea! Then again, Laura de Llorens and fellow level designer Christian Berg are experts in this field. Their timely arrival means I’m not just saved – I also get to ask intricate questions about Minecraft Dungeons’ many features! Features such as procedural generation: the thing that got me lost in the first place. So what is procedural generation? In short, it’s about generating randomness. In vanilla Minecraft, environments are procedurally generated by a AI, creating landscapes as you go. Dungeons does that too, but instead of generating everything block by block, the game generates levels room by room. However, these “rooms”, are built by hard-working developers, creating a pool of content for the AI to pick from. This means that Minecraft Dungeons doesn’t have “set” levels per se, but set pieces. So how are these pieces made? Laura: We actually build all rooms within vanilla Minecraft with a special editor that we made just for Dungeons!
Christian: It’s like creative mode with a few extra tools; we have different sets of brushes and marking tools. For example, if you want to delete a large section, we can just select the delete tool, double click, and all the geometry that connects to that one block will disappear at once. We can also raise the ground level with a single click or create large structures much, much faster than normal – which is a relief because building things in Minecraft takes a long time! (Laughs)
Laura: So it’s like a bit more advanced creative mode with world edit, basically. Then we import everything directly into Unreal and in Unreal we prettify it with extra bits and bobs.
I love bits and bobs! It must be an interesting challenge since Minecraft tends to be first-person while Dungeons uses an isometric top-down perspective?
Laura: Yeah, we build it in first-person. So it’s a bit of back and forth between building things in vanilla and trying it out in the Dungeons perspective, making sure that all the rooms weave together nicely and that they make sense with each other.
Christian: I think it’s important to know that after you build levels for a certain time, you’ll eventually get used to the measurements and distances between things, so you’ll know that “Alright, a pathway this wide or this tall will work, whereas one this tall or wide won’t” and what kind of geometry to avoid to not obscure the player with geometry and such.
Laura: The good part of building it this way is that we have access to such a big palette of blocks because Minecraft already has so many things to offer, so we get a lot of the building blocks “for free” in a sense, then we add a lot of stuff on top that is our own.
RANDOM VS FIXED PIECES
While many rooms are randomly generated throughout the levels of Minecraft Dungeons, there are also ones that are fixed and never change. These rooms serve as landmarks, or set pieces, meant to create red threads for every mission – a good thing if you ask Laura and Christian, as procedurally generated content needs boundaries.
Christian: Let’s say that, after you have cleared five rooms, you encounter a landmark room. That room can have four different variations, but it will still make you realise that “Alright, I have cleared five rooms” even if you didn’t really keep track of that in your head. It will also make you realise that “Alright, I’ve now reached an environment that is different from the rest” – and that will tell the player that they’ve made progress through the level itself. It also breaks up the monotony and makes the level look more interesting!
Laura: Landmarks are important for the sake of the missions and the story. But in our secret missions, we don’t need as much, because they are bonus quests, so then those are a lot less landmark-y and are a lot more labyrinthic and wild in that sense, so there’s still a bit of both!
So what decides how much procedurally generated content a level gets?
Christian: If we take Desert Temple for example, we specify how many rooms that level should consist of. We can also tell the generator editor that “Ok, we want to include these specific rooms” or even what type of rooms we want to include, like rooms with traps. For instance, you'll only encounter a certain amount of trapped rooms at a certain point in the level, which is something we've defined beforehand.
Laura: There are levels where this is very clear. Fiery Forge for example, where you always start the level outdoors, then enter the forge which includes all of these different groups of rooms. So within that, they are very random, but they are always going to appear in this order.
What about mobs? What decides when or where they show up?
Laura: We try to think of the world as one big thing and a living universe – not just scattered missions. There are many things that decide that and it depends on the particular area. There are groups of rooms that we can assign different groups of mobs to. So say in the trap area in the Desert Temple, you'll get the chance to meet husks, skeletons, spiders, and wraiths. Then it depends on how strong the player is, how many players currently play the level, and how far away in the progression the player is. The quantities and the strength of the mobs also vary.
Christian: There are definitely some rooms that are dedicated to specific mobs, like the spider cave in the Creeper Woods for example. We’ve also made sure that there’s a nice spread of all the mobs, so that you won’t fight the same type over the course of the entire game. You will always be encountering fresh new entities for different levels, and we made sure that the combination of the different AI behaviours and the different kinds of mobs also work together well in the set missions.
All this randomness must surely create happy little accidents every now and then. Do you have any examples of it?
Laura: Well, there’s this group of mobs called “enchanted mobs”, which is like a mob that is buffed and is extremely strong, much more than the others and have specific enchantments. The system works as such that animals are part of this mob group, so we discovered that both cows and sheep can become super Cows and super Sheep. I thought that was hilarious because they don’t attack you, you don’t attack them – you just see this extremely buff sheep running around setting things on fire and looking super cursed when it’s just roaming and eating grass, so that was one of my funnier discoveries! (Laughs)
So, before we wrap up this interview, could you share your favorite room in the game?
Christian: I don’t think this is necessarily the most interesting room in the game, but it’s definitely what I believe to be the most well-designed and advanced room. It’s a level that we have not yet revealed, so I can’t be specific about it, but it includes a puzzle. The way the player is presented to it in that room is very elegantly put. Pontus Hammarberg [our space wizard designer, editor’s note] made that room so all credit goes to him. I’m super jealous of him for it! (Laughs) Laura: I’m a sucker for vistas, so I would say either the Fiery Forge first tile, where you see the forge and things walking around and there’s lava everywhere. It’s so ominous and I really like it!
Laura? Christian? Hello?