how i design vaults


If it doesn't fit anywhere else, it belongs here. Also, come here if you just need to get hammered.

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Friday, 7th December 2018, 07:14

how i design vaults

Here is an attempt at putting my personal vault design principles into words, and maybe pictures too. This isn't endorsed by the devs, and it doesn't say anything about the technical side of things; it's not a vault-making tutorial. That's covered well enough in docs/develop/levels/ .

How to not make autoexplore suck
One of the most common vaults in the game:
  Code:
NAME:   hangedman_pestilent_swarm
DEPTH:  D:8-14
: food_weight(_G, 8)
WEIGHT: 15
TAGS:   uniq_second_food extra chance_second_food no_monster_gen patrolling
MONS:   hornet / worm w:5 / worker ant
MONS:   hornet w:7 / soldier ant w:13
ITEM:   ration q:1 w:40 / ration q:2 w:10
MAP
.xxxxxxx
@xx.x.xcccc
 ..x1x2cddc
@xx.x.x+ddc
.x1x.x2cccc
 xxxxxxx
ENDMAP
This vault's terrain is designed so that autoexplore places you next to one or two hornets. This is terrible. A character that is manually exploring is under no threat from this vault, because the terrain at its entrance does not generate naturally - they can easily avoid the hornets. A character that autoexplores into it can just straight up die or have to use consumables.
This is far from the only "autoexplore trap" vault, but it's probably the most well-known one.

Your job as a vault designer is to not do this. If you want to have easily avoidable monsters, make it so that even players using autoexplore can easily avoid them. This can be accomplished with translucent walls, for example.
Some vaults try to avoid being autoexplore traps by placing something that makes autoexplore stop, such as an item or a feature with stop_explore set. While well-intentioned, this is not very good because many players autoexplore by mashing the key repeatedly, which will blow right by your item/statue/whatever.
A more effective approach is to put a monster or two there instead! Mashing 'o' passes over items, but is still stopped by monsters. It doesn't have to be OOD or something wacky like a hog, just some '0's is fine.

How to not make exploring your vault itself suck
First, avoid fog generators (clouds) and liquids, since those can be really annoying to traverse. Second, avoid blocking the path with plants, fungi, or bushes. Those two are easy.

What often gets ignored, however, is how monsters in your vault will come into LOS. You should make your vault so that monsters start at the edge of the player's LOS, or as close to it as possible, and give the player an immediate means of getting the monster back out of LOS.
This is because a spoiled player is going to figure out how to do that anyway. They can recognize your vault, they can check the des, and no matter how much you randomize the monster placement, they can lure the monsters out of your vault with noise and into better terrain. So do it for them instead; it saves unspoiled players from stupid deaths and it saves spoiled players from doing extra work.
So try to avoid situations where the player turns a corner and ends up right next to a monster, and try to avoid situations where many monsters come into view at once. Think about the possible paths through your vault, and try to place your monsters so that they're seen as soon as possible from those paths.
Remember that in some branches, the monster produced by a '0', '9', or '8' could be a storm dragon or crystal guardian, so try not to have walls behind the player.

How to make big-ass vaults fast
If you see a vault I've made that's bigger than like 10x10, I probably made it not in a text editor but in GIMP. It's really easy: treat each pixel as a square in Crawl, using black for walls and white for floors. Then scale the image to double its original size with no interpolation, and export as .txt. GIMP's text export feature turns each 2x2 block of pixels into one character, so you'll be left with a text file that has the exact vault layout you drew; you just need to use your text editor's replacement tool to replace the 'Q's with '.'s and the ' 's with 'x's. This is WAY faster than manually typing out your big vault.
You can add additional colours beyond just black and white, if you want to draw on doors and monsters or whatever too, but you'll have to use trial and error to figure out which colours result in unique characters.

Here's the thing though. I've been very hesitant to even share this method because most big-ass vaults are really bad. Maybe your 50x40 vault is cool the first time you play it...but what about the fifth time? Small vaults work so well because the level generator creates different terrain and monsters around them every time, and because the vault is small, that terrain is going to be relevant when doing the vault. Larger vaults don't have this.
Of course, feel free to go absolutely hog-wild with Bazaar, Trove, and Temple destination maps, it's no problem for those to be huge.

How to minimize the encouragement and impact of spoilers
Don't have hidden stuff. Like, duh. If you want to have some items that are only accessible by digging or whatever, make sure they can be seen through translucent walls.
But there's another part to this that's often overlooked: don't make it look like there's hidden stuff! Conspicuously placed or shaped rock walls can make players waste dig charges, or check the .des to avoid wasting dig charges. One way you can completely cut this off is by making all the wall tiles in your vault visible from the outside. For example, if a vault would have a shape like this ('x' stands for rock and '.' stands for floor in vaults, if you didn't know):
  Code:
......
.xxxx.
.xxxx.
.xxxx.
.xxxx.
......
the rock walls in the center of the square are not visible from the outside. For all the player knows, those spaces could be a hidden chamber filled with acquirement scrolls. So instead, I'd use a shape like this:
  Code:
......
.xxxx.
..xxx.
.xxx..
.xxxx.
......
Just by removing two walls, the problem is gone: no tiles are hidden. If you look at my recent rock wall vaults, you'll find I'm pretty serious about this, although there are certainly examples where I failed.
But sometimes doing this is impractical. In those cases, you can use stone or metal to at least prevent people from wasting digging wand charges. This is not as good since it doesn't explicitly deny the possible existence of a hidden area - and you also might want to allow the player to dig for tactical reasons.

Identify any specific items you place. You would think this would be obvious and yet the game is filled with vaults that violate this. If you're placing a scroll/potion that doesn't have the exact same type distribution as a floor scroll/potion on the same level would, you'd better add ident:all to it, or I'm inscribing that bitch and telling everyone else to inscribe it too. Same goes for weapon and armour egos, rings, amulets, wands, books, etc.

Do not place explicit gold in early vaults, due to how Gozag and Zin piety work (spoiled players can avoid revealing the gold in your vault until after getting their god).

If it's easy to prevent a monster or group of monsters from leaving your vault, either because of a runed door or just the general terrain, use transparent walls to show the player that (which also stops them from autoexploring into those monsters!).
In particular, any vault with a runed door or transporter that does not reveal everything behind that door/transporter is a terrible, terrible vault. I am going to go look at the des every single time I encounter such a vault, and then probably post it in the bad vaults thread because it is a bad vault.

Avoid no_tele_into if you possibly can. There is no mechanism for players to tell which squares are no_tele_into besides spoilers. If your vault has islands, use escape hatches instead of no_tele_into to prevent players from getting trapped in them.

Randomize monster numbers, types, and locations. In particular, you don't want players to get an advantage from counting the number of monsters they've already fought in your vault. My preference for this is to use a binomial distribution, e.g. instead of just placing eight '0' glyphs, place 32 '0' glyphs and use SUBST: 0 = 0... to give each an independent 1/4 chance of having a monster. This still has eight monsters on average but counting to eight will only very very very slightly help the player, and it also handles randomizing their locations nicely. The more glyphs you use, the more effective this is.
That said, developer preferences seem to be otherwise as I see a lot of vaults using NSUBST: to guarantee a minimum number of monsters (some of my own vaults were even modified to do this).
As for monster types, you shouldn't, say, put some specific monster in a room that only spoiled players will know about - if it's a dangerous monster, unspoiled players get punished for being unspoiled because some of them will go into that room and die. If it's not a dangerous monster unspoiled players still get punished because some of them will avoid that room not knowing that it's safe.
The easiest way to avoid this issue is to simply use the '0', '9', and '8' glyphs to generate regular monsters for the branch. But if you do want to place a specific monster, it works well to put it in front of the entrance of the vault (before the player can see anything identifiable as a vault) so that spoiled players can't avoid it. Or you can use transparent walls once again.

How to prevent players from skipping your vault and coming back later
If I know what's in a vault, or what could be in a vault - whether from spoilers or translucent walls or anything else - I will probably just put an exclusion on it and ignore it until later in the game when it becomes trivial. This is the price of runed door vaults and transporter vaults: it can completely negate spoiler advantages (as long as you remember to use translucent walls to show all of it), but it will also never be a challenge because competent players will just wait until they can do it safely.
There are five approaches to this that I've seen:
1. Put really good loot in the vault. This doesn't really work. Items aren't so good that it's worth risking dying to get them.
2. Put one or more of the staircases in the vault. This is pretty much guaranteed to work, especially if you put all three upstairs or downstairs in the vault, since unlike vault loot, you kind of need stairs in order to progress. The downside is that it means you have stairs in your vault.
3. Make it easy for the monsters to escape the vault and roam around the level. This works very well because skipping a whole level is a lot harder (and misses more loot/xp) than just skipping the vault. However, for a lot of vault layouts this just isn't practical, even when using generate_awake.
4. Just give up and let it happen. This is the most common approach to this problem, and really, it's not a disaster - if a cyclops or manticore or whatever generates on D:8 naturally, you're going to leave it alone until you have enough HP to not die to it. It's not unique to vaults. But it's not exactly good either.
5. Just use '0's. No '9's or '8's or specific dangerous monsters. I've been doing this increasingly often because it works extremely well! You can still provide interesting terrain, decorations, etc. without using guaranteed OOD monsters. 0 will still produce OOD stuff at the normal level generation rate.

Features that I avoid using altogether outside of Bazaars/Troves/Temples
Recolouring, retiling, renaming, and redescribing features.
Vaults allow you to change the colour of a feature in console, and/or the tile of a feature in tiles, and/or the feature's name and description. However, in my opinion this is almost always an awful idea, for two reasons.
1. It makes you use x-v a lot. Console players rely on colour to tell them whether a wall is rock, stone or metal. Tiles players rely on the tile to tell them that. If you change the colour or tile, now they have to e'x'amine the wall to get that information. If you renamed it too, then they have to use x-v. If you, against all reason, redescribed it too, then they have to look at the goddamn .des file to know whether they can dig your stupid wall or not. Fuck you, Cigotuvi's Fleshworks. Fuck you.
2. It makes autoexplore worse. If you see a recoloured/retiled wall or floor, you know that you found a vault...but autoexplore doesn't, and will pass it right by. Not a problem for encompass vaults, but a big problem for any other vault. Littering your vault with explore_stops could theoretically solve this, but it's also super annoying. If you really must recolour/retile floor outside a portal/encompass vault, at least do it only in the inner regions of your vault where the player will have already encountered some monsters.
3. It confuses players. A lot of players do not know what DCSS's wall types are. To them, your stone wall that you renamed "bone wall" might be mistaken for an entirely new type of wall, and then you get wasted dig charges, and confusion over LRD damage, and probably a lot of other bad things.

Water outside of Swamp/Shoals
Even a single square of water, shallow or deep, incentivizes merfolk players to lure monsters there so that they can fight with their water bonuses. This is degenerate gameplay and improving vault flavour is not, in my opinion, worth creating degenerate gameplay. Depending on how the water is placed, the same degenerate gameplay can result for every other species too, thanks to flight.
Of course, if the vault is only placing in Swamp/Shoals, then there's water everywhere anyway and this does not apply.

Lava, except as a rim around walls
Lava orcs are thankfully not in the game, so lava does not have the merfolk problem. However, a flying character can still use lava to prevent monsters from reaching them. So to prevent this, you have to make your lava in lines no more than 1 tile thick, that are walled off on one side (preferably with undiggable walls). Here is an example in both console and tiles:
Image
While the player could still kill confused monsters using this lava, that's not really an issue, because killing a confused monster normally is much easier, it's already confused.

Cloud generators (other than harmless fog)
Damaging/mutagenic/chaos/etc clouds break autoexplore and autotravel, steal xp and piety by killing monsters, and leave items in really annoying places.

Traps
These promote luring, and hidden vault traps are massive awful spoilers. If you really must have traps, at least make them revealed from the start.

Unnaturally hard rock walls
What are you even doing? These don't have their own colour in console (so a ridiculous amount of 'x'ing will ensue), LRD doesn't work on them, they shouldn't even exist except at the level border. Just use a stone wall!

Altering monsters
Vaults allow you to alter the names, tiles, HD, HP, spells, etc. of monsters. Don't do this. If you want to add a new monster to DCSS, do it properly (look at past commits adding new monsters) instead of sneaking it in via a vault. Merfolk avatars have too much HP for your D:3 portal vault? Then you shouldn't put a merfolk avatar there.

Patrolling monsters
Patrolling monsters are a joke. They're trivial to escape from even if they're fast, and give yet another advantage to spoilers: you can find out whether the monster(s) are patrolling by reading the vault, but not by examining them in-game; you'd have to trial and error it by running away from the monster and seeing if it follows you or not, which is pretty dangerous if the monster turns out to not be patrolling!

Stationary monsters
Even more of a joke.

Triggers, unreachable items/monsters, non-hostile monsters
Triggers are spoiler city. Unreachable stuff and non-hostile monsters are just pointless and annoying.

For this message the author duvessa has received thanks: 12
all before, chequers, ebering, gammafunk, Implojin, nago, njvack, Octopode-monk-of-XOM, RBrandon, Shard1697 and 2 more users

Dungeon Master

Posts: 250

Joined: Thursday, 27th November 2014, 19:12

Post Friday, 7th December 2018, 13:20

Re: how i design vaults

duvessa wrote:hidden vault traps are massive awful spoilers. If you really must have traps, at least make them revealed from the start.


Thankfully some dev stupid removed all hidden traps so it's impossible to place these.

For this message the author ebering has received thanks: 3
duvessa, nago, radzia

Abyss Ambulator

Posts: 1193

Joined: Friday, 16th January 2015, 20:20

Post Saturday, 8th December 2018, 20:09

Re: how i design vaults

Will die for loot.
User avatar

Pandemonium Purger

Posts: 1341

Joined: Monday, 24th October 2011, 06:13

Post Wednesday, 12th December 2018, 06:40

Re: how i design vaults

if you slot "do" somewhere in that title you get a significantly shorter OP
seattle washington. friends for life. mods hate on me and devs ignore my posts. creater of exoelfs and dc:pt

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Wednesday, 12th December 2018, 07:18

Re: how i design vaults

honestly, i was thinking this would be moved to a hidden forum within a few minutes of being posted. it looks pretty weird now.
User avatar

Spider Stomper

Posts: 185

Joined: Tuesday, 8th July 2014, 10:18

Post Saturday, 15th December 2018, 16:53

Re: how i design vaults

i can print this and spread it in my town if ya like, maybe some escape room artist will use your ideas and give you attention that way. thanks anyway :P

Halls Hopper

Posts: 67

Joined: Tuesday, 24th January 2017, 21:44

Post Sunday, 24th May 2020, 16:45

Re: how i design vaults

will also never be a challenge because competent players will just wait until they can do it safely


and yet there are many transporter vaults nowadays. i guess these vaults have become popular because most players are not competent, and are eager to tempt fate?
Yiufcrawl, a dcss fork with extra species
Pu, LO, HE, SE, "MD", Im, ST, BK, viewtopic.php?f=17&t=23209

Return to Crazy Yiuf's Corner

Who is online

Users browsing this forum: No registered users and 29 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.