I thought I'd showcase a practical example of how I built one of my favourite rooms in my hold King Nareik's Dungeon. This hold comes from a later level and it's a really spoileriffic explanantion, so to prevent any accidental spoilers I've put the post in secret tags.
The room is Level 16: 1 South 1 West if you'd like to try it first before reading this. The hold has a warp room if you go South from the start, so you can go straight to this room (the Entrance room of L16 is a mini goblin tutorial so you'll have to pass that but it should be easy enough).
×
Here's the room, I've numbered some spots that I'll refer back to. At first glance it looks like there's a lot going on here. How do you end up building a room with this much stuff in it to make a coherent end result?
The first thing I do when building a room is to come up with a simple idea or interaction, then decide if it's something you want to make happen, or something you want to avoid. So in this case, I started with the interaction of a tar stuff mother trying to spawn a baby, but it's being blocked by a serpent. And in this case it's bad, you actually want the baby to spawn.
So first thing to do is to set up a small widget to test the viability of your idea. So here I have a serpent in a small loop that's divisible by 30 (in this case it's 10 tiles big) so that the serpent is always in the way of the baby spawn. This is area (1).
Now in this case I wanted something to shrink the serpent so that it wouldn't be in the way anymore. But I need it to be something that behaves different to a tar baby to ensure that spawning the baby is what you want to do. As this is in Architect's Edition I have two options, a Wraithwing or a Goblin. As Goblins are all about careful and precise manipulation, this is the perfect situation for one.
So I have a room with a tar mother, a goblin, and a serpent in a loop. I try it in the editor, use the goblin to shrink the serpent and a tar baby spawns. Hooray! The basic concept works.
Now I need a reason for you to spawn a tar baby but also not just use the goblin in its place, and in Architect's Edition one of the best ways you have to enforce putting a monster somewhere is to use it to kill a serpent, so the serpent at (4) exists for this purpose. The tunnel at (2) has two things in it that prevent you from using the goblin, the eyeball force arrow trap stops Beethro walking through the tunnel pushing a goblin, and the force arrow trap at the North stops you trapping the goblin in the tunnel via the original serpent and dragging it in via the main area. Adding these widgets came about from me playing around with the goblin in the editor to find out ways to try and break this while still being shaped so that a tar baby can be pulled through it. On the other side of the serpent at (4), that tunnel is shaped the way it is to also prevent you taking both a goblin and a tar baby through it while allowing Beethro to traverse it.
There's another problem that becomes clear while testing this, you can just kill the serpent at (1). Goblins are usually used to kill serpents and this feels like the most obvious course of action, so I'd really like to find a way to ensure that the player has to leave the serpent alive. This is where the widget at (3) comes in. I need to ensure that you can only use this widget after you have spawned the tar baby and used it for its purpose, so it's blocked off by doors with the orb at (4) being placed behind the serpent the tar baby needs to kill, this ensures that you can't get rid of the serpent via the (3) widget first.
So here I have a perfectly functioning room. But I'm not totally happy with it. It doesn't feel complete yet. My big issue is the goblin. It's use seems too obvious. Why is it there? I want to try and hide the aha moment of using it to shorten the serpent so I'd like to give it another use that seems more obvious at first. At the moment I'm just killing it immediately after its done its job. So the serpent near 5 gets added, make the initial assumption for the goblin's purpose seem obvious, clearly the goblin needs to be moved from one side of the tarstuff area to the other to kill that serpent. At this point the tarstuff needs more time, so the area expands to be quite big, the tarstuff is moved farther away from (1) and the rest of the tarstuff area is a big clean open area. It's cool to watch tarstuff fill up an area and it's quick and easy to cut it when the area is big and open.
OK that's good and all, but now there's one more major problem. The tarstuff and the tar mother. Why is that even here? I try and think about what a player is going to think when they first enter the room. You've got this big open area with a tarstuff mother in the middle, but why? What is it doing? So the player might run in and just stab the tar mother to give them time to mess around with the rest of the room. The serpent at 4 is guarding a shiny cool orb so the first plan is to try and push the goblin into there, and they try that, but it won't work. Hopefully the player will eventually realise they want to use a tar baby and try it on the right side, find out that won't work either, and come to the conclusion of spawning one on the left-hand side instead, and thus the aha moment comes and the puzzle is solved. Well, it would be cool if the tarstuff therefore provided one more problem.
So the final resting place of the goblin at (5) gets tweaked. Now it has a separate entrance and exit for the player with trapdoors and an evil eye force arrow trap to enforce that, and these passageways can get blocked by tarstuff. So when the player finally realises why they need to keep the mother alive, suddenly this area poses a problem and they need to deal with it that they weren't considering before. I mess around with the shape of the tarstuff and the area and settle on the final result you see and the weird tarstuff shape. Because the room now has a green door, I make some tweaks to minimise annoying baby spawns so there's less tedious cleanup at the end.
At this point the room feels fun to play, there's enough going on to keep the player occupied and it feels the right level of challenging and complex that I'm aiming for. Generally I have some rough idea of what level of difficulty and complexity feels acceptable for the hold I'm making and if the room doesn't reach that, I add stuff until it does, and if the room far overshoots it, then I either got carried away when expanding the room and need to simplify it to its core idea, or it's fundamentally so complex that it should be a secret room or post-game content, or saved for another, more appropriate hold.