In Crypt of the NecroDancer all movements and actions by player and enemy alike can only happen on the beats of the song on each floor. Enemies and obstacles have a pre-determined pattern of movement, so knowledge, quick decision making, and a sense of rhythm are all necessary to reach the stairs tile leading to the next floor. Normally, the game will randomly generate a dungeon for the player to delve through, but there’s also a custom map editor built into the game. This article will discuss some of the design philosophies I’ve discovered as I worked on Chamber 17 a custom map I made. If you have the game, I’d encourage you to play through it before reading this because most of these ramblings will probably make more sense that way.
Chamber 17 is a map that revolves around the urn (or as it’s called in the game files “teh urn”), a container that the player can push around the dungeon. Unlike barrels and crates (the other pushable containers in the game) the urn has 3 hp and a brilliant purple hue. Puzzles with a movable object reminded me of Test Chamber 17 in Portal (the one featuring the Companion Cube), so naming the map was much easier this time than in the past.
Width of Solution Space
As I mentioned, NecroDancer tests both game knowledge and quick decision making. This creates a dynamic interaction between game knowledge as the ability to uncover the options available and decision making as the ability to properly appraise the results of them all. When trying to design for this, I think of the range of options that ultimately leads to a favorable result as the “solution space” of a map. The difficulty of a map is often highly related to the width of solution space for that map, with wider solution spaces representing moments where it’s more difficult to fail and narrower solution spaces representing moments where it’s more difficult to succeed.
Replayability is also affected by the solution space of a map, where the capacity for players to find faster or different routes adds an meta completion element to play. However, in my designing of custom maps I’ve also observed that the solution space is linked to the pacing of the map. In other words, the tension naturally ramps up as it becomes more difficult to quickly find and execute a favorable option. Using this lens provides commentary on three aspects of pacing within map design: Types of Challenge, Effects of Layout on Tension, and Effort to Restart.
Types of Challenge
A variable tension curve in a game allows players to anticipate upcoming difficulty and appreciate their accomplishments. Tension is usually dependent on avoiding fail states, which in NecroDancer is when the player has to restart the level. The two most common reasons for restarting are manipulating the puzzle into an unwinnable state or being killed. Within solution space, these are both represented by lines of play that have terminated (ie can no longer lead to the solution), but that isn’t necessarily how the player experiences it.
A player’s feeling of tension will only increase if the danger is properly telegraphed. If they are suddenly killed or reach an unwinnable state, that does no good for the tension curve. Generally most games are better at telegraphing danger of the lethal sort, and NecroDancer is no exception. Because of this, leaving in too many lines of play for the player to manipulate the game into an unwinnable state or allowing those lines of play to be too difficult to distinguish can lead to frustrating restarts.
Considerations from types of challenge are also why many puzzle maps are played as Bard. If a player is looking to be challenged in their game knowledge, also having to deal with the mechanical skill of more difficult characters can be frustrating.
Effects of Layout on Tension
Variance is another aspect of tension that I noticed while planning maps. Naturally, some regions like hallways or areas without enemies have a wider solution space, and others like trap areas tend to have narrower spaces. By arranging the map so that the player will naturally alternate between these types of spaces, it can help create that sought after rise and fall of tension in the pacing. One layout that I found fairly successful at this is the hub and spokes. With a safe hub, the player can decide which wing of the floor they want to tackle next and then respond to the dangerous puzzles on each end of the spokes. As the player backtracks from each of the spokes, the traversal time while deciding which spoke to go to next makes for a great rest period.
Effort to Restart
The “effort to restart” is the amount of effort a player must expend to get back to a point of interest in a game after making a critical mistake. Loading screens, the walk back to the point of interest, and even a boss’s pre-battle soap-boxing all contribute to this. While some games use this as a punishment for lacking vigilance and discipline (see: Dark Souls), it’s generally better for this to be as short as possible in puzzles.
Bringing it back to NecroDancer map making, at first glance, it can seem like a cool idea to have a dungeon span over multiple floors and have the player progress by accumulating items. Unfortunately, the tradeoff with this philosophy is that it allows the effort to restart to scale all the way up to the effort to get to the last critical obstacle in the dungeon. It’s easy to see how maintaining an acceptable effort to restart puts a limit on the dungeon length, but it also indirectly limits the difficulty as well. Because puzzle difficulty is linked with complexity, and complexity requires effort to parse, a limited effort budget also indirectly limits the difficulty of the map.
Fortunately, checkpoints can circumvent these limits by allowing a player to pick up where the left off after making a mistake, and floors in NecroDancer work perfectly for this purpose. Because all maps are played from the editor, if the player fails, they can just navigate to the floor they got stuck on in the editor and start again from there. However, this requires that each floor in a dungeon be self-contained, neither requiring items from previous floors nor affecting later floors.
Not requiring items from previous floors is easily enough planned for, just giving the player duplicates of the items they would require will usually suffice. However, preventing acquisitions from affecting later floors proves more difficult since forcibly removing items from the player is fairly convoluted. Here’s the method I figured out:
First, force the player to use the Shrine of Phasing by blocking progress with a wall they can’t dig. The Shrine of Phasing will remove all of their items and give them a Ring of Phasing allowing them to move through the wall. Of course, the Ring of Phasing is a total nightmare for map making, so using an exploding gargoyle and bounce trap in the orientation above can force the player to replace their ring (I usually prefer the Ring of Charisma). If you need to limit the player’s Phasing further, remember that the player cannot phase through traps, enemies, or shrines. This makes bounce traps, glowing mushrooms and the Shrine of Sacrifice good for limiting the player’s movement further. Finally, a frailty item (Glass Jaw, Ring of Becoming, or Gi depending on character) is required to force the player not to take the gargoyle’s explosion damage because the Ring of Phasing won’t be destroyed if the player takes the explosion damage while standing on the same space as it.
Chamber 17 was the first major map I’ve finished using NecroEdit, an external tool featuring mouse controls, floor-wide editing, and access to a couple of additional assets. While not being able to playtest from the tool meant that I’d usually have the original map editor open in tandem, I’m overall quite happy with it. One of my favorite features of NecroEdit was the ability to set up Dove/Monk Shops where you get a free item out of a selection, but it the others disappear when you pick one.
Of course, I wouldn’t say Chamber 17 is the perfect map, even within theme of pushing an urn around. My two biggest criticisms of the map is that I didn’t use every mechanic related to the urn. Some mechanics I left out were making sure not to build too much damage so pushing it wouldn’t break it and setting the contents specific items via NecroEdit.
Further, while each floor did provide a good showcase for a different way of interacting with the urn, when looking at the overall structure in retrospect, I feel that I missed out on putting them together to provide an interesting twist on them. Lacking an upset to the player expectations will likely lead to the dungeon being perceived as too easy or straight forward.
Overall, it was a fun experience working on the map and I hope some of these ramblings can provide insights for future designs.