Old Zelda-like Dungeon Design in Anodyne, part 1 of ?

Throughout development of Anodyne, one of the largest challenges I’ve faced is the task of developing a number of dungeons for the player to explore.

What are Old Zelda-like Dungeons?

At a very high level, an Old (for the Zelda fans, I define this as everything up to and including the Oracles, excluding Zelda II of course) Zelda-like dungeon (we’ll refer to this as just “dungeon” from now on) is a game mechanic that takes place in a grid of interconnected rooms, where the player starts in one designated room (think the entrance to your house – A), and ends up at some final room (think your bedroom – B). This journey from A to B must have a few additional details to bring it from some abstract definition to the more “Old Zelda-like” category:

1. Going from A to B involves defeating enemies which exist to kill you – example – killing a bat that gets in your way.

2. solving puzzles, which are just sets of entities which need to be manipulated in some fashion to progress – example – pushing a block that triggers a door opening.

3. finding items in order to progress, or serve some more game-specific goal – example – finding keys to open locked doors.

In the context of Anodyne and *most* old Zelda games, the interconnected rooms are just a grid of equal-sized rectangular rooms. Very much like grid paper, with each cell being a “room”. In the context of only Anodyne, dungeon rooms are fixed at 10×10 tile dimensions. The choice of a fixed size for tiles was based in hardware for the old Zeldas, but in Anodyne’s case is just a design choice – 10×10 is easy to deal with mentally, and usually offers wiggle room of 8×8 tiles for room design. (where the border can serve as walls for the room.) This is an example of a dungeon, this is the tutorial dungeon from Anodyne, as of 8/10/12 (very prone to tweaking, being the intro dungeon and all – where design matters a GREAT deal)

The tutorial dungeon from Anodyne.

Designing and implementing a dungeon comes in a few steps: (At any point:)

1a. Entity design – enemy and puzzle entities

1b. Scale choice – how many rooms

1c. Flow design – abstracting out sections of the dungeon, pacing through those sections, complexity of sections..

Then, when those are roughly finished

2. Chunking up the map and concurrently implementing rooms or outlines of room

3. Finishing up room designs

4. Playtesting to iron out bugs and other imbalances.

With my workflow, it works best for me if I solidly have 1b and 1c down, and at least 1a partially done before I get started in the later steps. This order isn’t definitive, they can come in any order and often do interweave as you iterate on ideas or need to tweak. It’s a ton to talk about, so we’ll just touch on a few points this time around. In this case, I want to discuss 1b (Scale) and 1c (flow, or structure of the player’s route through the dungeon) a bit, and a little specific to Anodyne as well, in order for me to get a more solid understanding of what I’ve been trying to do, and also to give you some stuff to think about if you’d like to go try designing dungeons as well.

Scale

Turtle Rock is…big. Image credit from VGMaps!

Is your dungeon tiny, like the picture of the Anodyne tutorial dungeon? (or, for the familiar, Maku Path (OoA), that other intro in OoS)? Or is it monolithic (Turtle Rock (LA) – see picture, Ganon’s Tower (LTTP))?

Scale correlates to the number of rooms – the game boy zeldas usually cap out around the high 40s and low 50s – , but obviously whether or not this even matters depends on the structure of the dungeon. (More on that in a bit). But it’s a good rule of thumb to be aware of how many rooms you’re planning to implement. You want to be very aware of the size of your dungeon and where it comes into play in the timeline of the game – it’s a good idea to keep the size of your dungeon in mind depending on how much the player has experienced too far. Give a large dungeon early, and you risk frustrating the player by unfairly expecting skills out of the player that haven’t been developed through a logical progression of dungeon difficulty, give a small dungeon late, and you risk the perception of both being a lazy game designer and boring the player. That much seems obvious, but it’s useful to keep in mind.

In the case of Anodyne, my smallest dungeon is a mere 10 rooms, only 5 of which actually require some sort of meaningful interaction. On the other hand, the largest dungeon so far is a little over 60 rooms, although a handful are deliberately not very content-filled, and an entire part must be completely finished before going into the rest of the dungeon. Once you have some sense of scale pinned down (which you might still come back to, nothing really gets set in stone), you can think a bit about

Dungeon Flow Structure

Okay, that’s a lot of buzzwords…this is the high-level “flow” of the player through the dungeon – a overview of “how does the player get from A to B, and what are the main sections of this travel?” In Anodyne and the Zeldas, locked doors are used to help segregate sections of the dungeon, and give a sense of pacing – rather than making the player sprint through 25 action-packed rooms, maybe the designer chooses to have finishing 5 rooms open a door that lets you come back to that point quickly. A basic example:

The player first travels through these 6 rooms (section A). There is a key.

Player opens a door in section B, which leads to 6 more rooms (section B), and another key.

Key opens another door inside of section B, which leads to a large enemy.

Killing the large enemy leads to a treasure room.

These sections don’t necessarily need to be physically separate rooms. Perhaps the environment of a room changes so that you can only go through certain exits, maybe the room changes itself, maybe there is overlap in the sections based on some item you get that lets you move. Etc. When I design the structure, I generally do have a few rough mechanics or events related to the dungeon in my head – it’s hard to go off of absolutely nothing when you just have “a big dungeon”.

For example, one dungeon I decided that I wanted to have some big triggered events that open up new parts of the dungeon, and went from there. With these mechanics, I think of a segregation of the dungeon that makes sense for the necessary complexity at that stage in the game, roughly decide what keys go where, and then move on from there. The tutorial dungeon in Anodyne (pictured above) is incredibly deliberate in each room’s design – it has a short latency for death in terms of returning to where you die, and object placement is intended to make the desired action very difficult to not do, in order to show the player what to do. More on those mechanics later and why this is important (basically, because it’s the tutorial), but the structure is:

Player solves easy puzzle.

Player gets weapon.

Player kills enemy for key.

Player opens door, solves easy puzzle.

End.

How you teach the player how to do these things in a nonintrusive way is an entirely different ordeal, but that’s for a later post. Two other points:

It’s important to also take into account for player choice moving through the dungeon, if you have a lot of locked doors, absolutely be sure that you don’t have a possibility where the player becomes permanently stuck! There’s some easy-ish graph theory ways to think about this if you split sections that are lock-segregated (or event-segregated…or whatever your dungeon does) into vertices in a graph, and making sure each vertices has as many keys as it has outgoing edges (locks)…etc.

Through designing dungeons I’ve been forgetting a bit how difficult it is at time to keep a picture of the dungeon in my head as I play it for the first time. When I say “complexity”, I mean how much the player needs to passively keep in their head to avoid being totally lost and confused. In real life, navigating a one way street isn’t very complex if you know where you need to go on the street. Navigating, say, Manhattan, is a tad more difficult – you need to maintain your bearings, for one, as well as be aware of the convention of increasing street and avenue numbers. In games, a dungeon can be very large in scale, but not have a “complex” structure, if it’s one linear romp (note that doesn’t necessarily make a BAD dungeon, it could be action packed, etc…). Or, a slightly smaller dungeon could be very complex if it has intertwining paths that are sometimes one-way depending on the dungeon state.

Scale and structure build off of one another. Most of these words don’t have super strict meaning, and there really aren’t rules so much as guidelines that strive to help create a sane experience for the player, but hopefully this will give you some things to think about if you want to design a level like this in a some Zelda-like of yours (or maybe it helps in other sorts of level designs!)

Like this:

Related

4 Comments on “Old Zelda-like Dungeon Design in Anodyne, part 1 of ?”

Great article. I’d really love to hear about the technical aspects of loading rooms in memory, defining the walls that transition to other rooms and whether or not you used external files to define the dungeons as opposed to a large number of classes.