My Level Design Process
This page documents my process for designing a level.
I work in 7 steps.
Step 1: Establish goals and pillars.
Step 2: Plan on paper.
Step 3: Plan in-engine (whiteboxing).
Step 4: Add detail (Greyboxing).
Step 5: Minor polish.
Step 6: Test and iterate.
Step 7: Final Polish.
It is worth noting that, while one particular part of this process is listed as the testing step I will show my work to others constantly throughout. I have noted a few areas where testing is particularly important for me but it is safe to assume that after any change I had other people look at my work to make sure I’m going down the right path.
The example level is one for a personal project based off of third-person melee action games.
Step 1: Goals & Pillars
I like to start any design process by listing out my goals and anything that the team really needs to have. This can be something as simple as an emotion, as in a lot of narrative-focused games a level’s goal within the whole experience may simply be to make the player feel a certain way. Other times it can be very technical, for example, teach the player how to use this new mechanic.
Pillars are often more vague. Pillars describe any kind of event, location, moment, etc that the team want to have in the level. For me personally when given a level to design I will often look for inspiration elsewhere to find some kind of moment I want to draw upon.
This is also the point where I will consider what tools the player has access to in this level. This will inform me of the abilities and mechanics I can make use of.
For the example level, I had a small prototype combat and traversal system that I used as the basis for this project.
The above video is a quick run through what the player can do. The controls are a pretty typical 3rd person controller including a jump and dodge option.
Combat is very simple with a lock-on, block/parry, and three hit combo.
One thing I didn’t show in this video is a grapple system that allows the player to quickly zoom toward specific points (as highlighted by a yellow orb).
Step 2: Plan on Paper
Now I know what I need to make I will start with some paper and a pen by sketching out an idea for the level. At this point I will often look for inspiration in the real world or other works again to get an idea for the level flow. Often I will do one or two sketches and combine parts that the team likes into a ‘somewhat final’ design. This is one of those points where testing is really important. I’ll often show other team members sketches of a level and describe how the player will navigate them to see if they agree with my thinking or not.
For the example level, I made only a couple quick drawings and moved on to iterating in-engine. I had a few pieces that I knew I wanted to get in the level. The first being a final fight area where an enormous spear had been thrust into the ground.
I started with that area up on a hill so it would be nice and easy to see at most points of the level. I then wanted the majority of the level to be along a river as it provides an intuitive, natural barrier the player can’t cross. I set the other side of the level against a cliff and set most of the level in a small river-side village.
Finally I knew the two primary tools to be the combat and the grapple. I set up three combat areas and a section of the level toward the end that featured heavy use of the grapple.
The main change from the first drawing to the second was in the ascension to the hill. Originally I had it curl back on itself but I felt like this was unnecessary. To keep the hill always in view I went for a more straight forward approach.
Step 3: Plan In Engine (WhiteBox)
At this point I like to jump into the engine (or another engine if ours isn’t ready) and actually start putting things together.
The level of detail here depends mostly on how confident I am in the engine. In UE4 or Unity I’m familiar enough to make a relatively detailed (i.e. more than just boxes) layout of the level. If I’m less confident in the engine then I may just stick with boxes. My main focus is speed.
The goal here, of course, is to make something that testers and I can play within as quick as possible. The layout should be there and the primary interactables should be usable but everything else is absent.
This step is followed by the first step of really valuable playtesting. Now people can move around the level I can get an idea of how it flows, if it’s successfully conveying the feeling we want it to, and if it could accomplish the goals I set out with.
If the level is designed to teach a mechanic or something more complex than just a level, then I will often have some pretty brute-force versions of this in the level. E.g. If I’m teaching a player how to use a new weapon I’ll probably just have a text-box pop up with tutorial text to indicate how to use it. No dialogue, nothing fancy, just text.
I probably won’t add any sound in this phase unless it’s really vital to the experience.
In combat heavy games I will add some enemies in this stage to accurately convey where combat encounters will happen, however the combination of enemies and their exact positions won’t be something I put a lot of time into yet. Similarly in a puzzle game I’ll have some very simple versions of the planned puzzles implemented by this point.
At the end of this phase I should have something I can put in front of players to interact with. They may not be able to complete it properly but a brute force way to get to the end of the level is ideal.
For the example level I was using Unity so I was pretty confident and eager to jump in and start working in the engine rather than on paper.
I started by making two simple assets in Maya. A house, as I knew the setting was a village, and a rock that I could twist and contort into thousands of shapes. The only other model I used from Maya was the spear which I had from an older project. I then used Unity’s terrain tool to sculpt out an area to build the level in. The primary benefit of the terrain tool was it gave me a background with minimal effort, I didn’t intend for the player to interact with the terrain as anything more than a flat surface in some places.
After sculpting the terrain, creating some water, and placing some rocks and houses I had a simple layout of the level to start filling in.
Before moving on to the next step I took a little extra time to fill in the opening area where the player drops down from this walkway. As falling can feel like a failure in some game situations I spent some time trying to make sure it was clear the player would survive, so they’d be willing to descend to the next part of the level.
I also took note and re-positioned some objects to make the opening view of the objective clear. From the first moment the player emerges from the caves they can see the enormous spear in the distance. Even if they don’t recognize what it is yet they’ll be intrigued. This was also one of the only objects I put in color just to make it stand out even more when testing. Planning out this view is somewhere I found testing to be particularly helpful. Simply showing people the screenshots and noting what stands out to them, where they think they’re going, what they expect to find, etc.
Step 4: Fill in some details (Grey Box)
This is the point where I don’t expect any HUGE changes to the level structure so I can start adding more detail. This includes adding significant colors to the level and molding out individual pieces of the level with more precision. This is where the purpose of each level section is the most important to me. I take the combat areas and start to mold them into areas that will work for fighting. I’ll take an area where the player is using a specific tool and craft that out, including the mechanical pieces that are needed (e.g. grapple points, doors & keys, etc).
A rule I was taught for designing levels was to make sure the player has something to look at or interact with every 5 seconds. This step is where that becomes most relevant to me. While filling in areas I will place notable landmarks, even small ones, so that the player has something to see/do every 5 seconds. Often this can be as simple as a peculiar section of plant life, a blood stain, or a pool of water.
This is the phase where I will start to add sound effects that are significant to the experience.
If the level is particularly combat-heavy this is the phase I’ll start to flesh out the combat experience by testing different enemy encounters. Often as this is changed the environment will be changed with it to make a better combat encounter. Any puzzles in the level should be fully representative of how they’re planned to look by the end of this step so they can be tested properly.
This phase can often take quite a while so I like to playtest as I go along, section by section. Often times this step can blend with the next as I might place some temporary enemies or puzzles to help with testing.
For the example level I started by adding color to the rocks and doing a quick pass on a lot of the area. My main goal was to create the three combat areas, grapple section, and final fight location. When designing combat areas I like to refer to Andrew Yoder’s Gamasutra article “The Door problem of Combat Design”. One of the main takeaways of which is disclosing information gradually so that a player feels comfortable entering a combat area, rather than hanging around at the entrance to it.
The third combat area was already segmented by a jutting piece of raised terrain that I felt I could work with sufficiently. However the previous two combat areas were very open and thus not very welcoming as a combat area. For the first area I decided to place a bonfire-like structure in the center and a section of rocks. I then decided to separate the two combat areas with a collapsed tunnel and crater-like area. Having something so apparent on the ground made it clear the player was moving from one area to another.
The second fight area was to be much larger so I used a larger circular fountain as the centerpiece. Then to limit the area further I closed off the water-side area with rocks. This had the benefit of making this combat area feel more enclosed and thus slightly more intimidating. One notable problem I had at this point was that the section between the crater and fountain was too bland. This is something I add to later.
Before looking back at the third, and last, combat area I decided to change the ascension to it. I found that my controller, particularly the camera, was not the most co-operative in the confines of the tower I had planned to have as a grapple area. I decided to replace it with a rocky area, which ultimately worked a lot better.
Now looking at the third combat area I used more rocks to confine the area and built up the outcropping to make it easier for the player to go from the ascension to the combat. I also tried to imply a cave-in on the path to the left where I put the tower now that it wasn’t in use. The idea being that when in-game people are traversing this area they’d simply use the tower rather than the enormous stairs on the right.
Now to get this area completely traversable I added in the grapple points to the ascension and the stairs. These are just basic yellow orbs that glow so they’re consistently visible.
Now I went back and added trees, logs, bushes, and other foliage to the level.
Some of the more notable changes at this point include:
A small TV-head in the first combat area.
A few outcroppings of stone and shrubbery in the second combat area between the crater and fountain.
A more detailed sculpting of the terrain in the final fight area.
I also used some rocks to create small glowing crystals I could use to light the area.
Finally now I changed the terrain texture to something that looked more appropriate and set up the lighting. I knew I wanted the town to feel slightly swampy so I chose to have the sun just nearly setting and slight fog throughout the area. This also allowed me to place the sun right by the enormous spear to bring even more attention to it.
I also changed the skybox and recorded some footage of me playing the level so far. The main purpose of this was to get an idea of the moment to moment imagery the player will be exposed to. One of the big takeaways was that the opening section didn’t facilitate the first view very well because the sides of the walkway were too large. I also felt a few sections were too long, particularly the walkway and staircase in some areas.
On the positive side I also noted that the third combat area allowed for a good view of the spear before the final stairs toward it. Though this wasn’t intentional, I’m glad it worked out that way.
Step 5: Non-necessary detail polish
While the level is fully playable at this point it doesn’t yet present the full experience of playing through it. In this phase I like to do a generic polish pass. This includes adding more sounds that primarily exist for detail, like ambiance or soundtrack. Creating robust tutorials if necessary. Adding secrets, bonuses, power-ups etc. If I haven’t already worked on enemy encounters then I will start to add them to the level in this step. This is also where I’d consider adding flavor elements like dialogue, if it’s considered a big part of the experience.
For my example project I was more focused on the level design than enemy encounters. In the previous steps I spent time creating areas I felt would be interesting for combat, however I didn’t implement enemies until this step.
I referred back to Andrew Yoder’s Gamasutra article “The Door problem of Combat Design” to create some simple encounters in the three combat areas of the level. To briefly summarize, my goal was to make combat areas the player felt they could move into safely rather than retreat from.
To do this I thought about each section in terms of value to the player, or danger to the player. +1 being safe areas, -1 for dangerous areas, and ? for areas the player can’t see from the start. First and foremost I believe that be modifying the amount of unknown to the player in each section I can make for three different and interesting combat encounters even with only one enemy.
For the first combat area the main mysteries are what is behind the bonfire and what is behind the rocky outcrop. The rest of the area, especially leading to the exit is welcoming. I want to draw the player to the right but also make sure they engage in some combat here. I added two enemies, one of which is visible from the start and the other is hidden behind the bonfire. The first should push the player away from the left side of the area and toward the exit, the other should work as a surprise once they progress into the safe area and push them into some combat.
The second combat area is much more open and so inherently a little harder to draw the player into. To help with this problem I don’t have as much mystery, and a lot more room to navigate within the mystery. i.e. should the player find something they don’t like behind the fountain they have plenty of space to backtrack without retreating to the entrance to the area.
From the start three enemies are visible. The two on the lower path should be threatening enough to push the player along the upper path where there’s only one enemy. Additionally this lone enemy is very close to where the player enters so they may clear them out before fully evaluating the area.
Following the upper path the player will then encounter a pair of enemies that were obscured by the fountain. Thankfully they have space along this path to back up and fight them rather than retreat to the door. Finally, they will encounter the last enemy right next to the exit. Again though, they shouldn’t be much of a threat at this point after the player just took out two at a time.
Finally for the third combat area I’m relying on the novelty of surprise. From the start area there are very few directions to go but in toward the welcoming area, at which point two paths will be revealed to the player. I placed one enemy on the upper nook hiding from the player so that once they enter they will be driven away from that enemy and deeper into the area. Finally there is one last enemy that the player may stumble upon if they retreat too much from the other. Ideally, the player will be confident enough at this point to take the enemies on so the last enemy will just one last surprise before they finish the area.
Step 6: Test & Iterate
Though I believe in playtesting throughout the entire design process this is the point where I will ideally be putting the level in front of someone outside of the team to play. The level should be fully functioning and vaguely representative of what the end product will look like so feedback is the most important thing.
Like all testing sometimes this step will see me revisit earlier steps. Ideally testing in those earlier steps should raise any major concerns so they can be changed early, however if those problems aren’t found until testing I may go back and ‘Whitebox -> Greybox -> Polish’ a section of the level again. Ideally most problems come up with things that are easier to modify such as enemy placement, puzzles, guidance, etc.
For the example project I found a lot of feedback that mirrored my initial thoughts. Testers found certain areas too large, particularly the opening and ascent up the staircase-like section. Rather than simply make them smaller I felt the main issue was that the players were simply going forward with very little variation.
For the ‘staircase’ I decided to add a number of new elements to change how the player traversed these areas. I added a lot more rocks and some enemies so that each new ‘step’ would be interesting.
The initial walkway in the opening was a bit of a problem. Initially I modified it so the player got more of a view of the rest of the level, however I then found players started jumping off of the walkway and into the river below rather than walking to the end. To fix this I changed the walkway to have a dip that the player has to drop in to. Though the player still has the option to jump off into the river, I found players more consistently took the entire walkway. I believe players are being pulled forward by that section of the walkway so see now make their way to the end of the path.
I also added a broken TV head right before the view to further pull the players forward on the walkway.
Step 7: Final Polish
Once the level has been tested and iterated to a point of satisfaction (or often simply until time runs out) then I’ll add any finishing touches. This includes final art and sound, smooth gameplay elements like puzzles, combat, and narrative, and minor interactables like secrets.