2D Sidescroller Level Design
2D Sidescroller Level Design
Creating a fun, well balanced level takes an immense amount of effort and multiple aspects of game design need to be in place before a single level is created. We aren’t going to go over all the planning (for instance, how to create a Game Design Document or an enemy flow chart) but what we are going to look at in this article is all the information that goes directly into a single level. That way we can take all that information and create a compelling level and take that from start to finish.
For simplicities sake, we’re going to assume that we are creating a side-scrolling action/platforming/puzzler game.
Defining Gameplay Components: Every game is different, but most games should have at least two or three different aspects of gameplay. For instance in a sidescrolling game like Iron Man 2 DS we have Combat, Platforming, and Puzzles. Typically a lead designer provides what elements are going to be in a game but if you are working alone, this is a crucial step before designing a level. Each component has specific requirements that make these sections unique and sometimes these are engine requirements.
Some considerations for different components include interactive objects, moving platforms, the size of a room, and what kind of graphical fidelity you can have in the background. High poly backgrounds that have multiple shaders might be good for platforming areas, but if you combine a combat scenario in the same space there could be significant performance issues.
For instance in X-Men Origins: Wolverine, I had to plan ahead to create combat rooms that had adequate doors in the background so I could spawn enemies from behind. If I had put all of my combat encounters inside cavernous rooms, it would have changed my flexibility for spawning in enemies. So lets create a table
Gameplay Component: Combat Arenas
Required Elements: All combat arenas need small arenas to take advantage of player wall jump abilities and limit the AI playspace. Each room should have some sort of obstacle that requires a platforming maneuver (ducking, jumping, hiding from enemy weapons, etc…)
Optional (preferred) Elements: Each room should have multiple entrances somewhere on the back wall. Adding multiple breakable objects will also lead to more visceral gameplay. Optional elements include dangerous fans, grates that occasionally spit fire, and other hazards.
Barred Elements: Combat Arenas are processor intensive scenarios. All effort should go to limiting the amount of non-gameplay related artwork, lighting, and processor intensive effects. Arenas can not have large foreground obstructions, complex platforming that would stop the enemy AI from maneuvering properly, or physics based hazards.
From here we have a basic ruleset for how to create levels.
Define your Building Blocks: Every device and game has a different feel to it and making a game that feels well designed starts long before you begin designing levels. There are a lot of essential information that includes, but is not limited to
- What is the camera’s viewable area on specific devices / resolutions?
- How tall is the character? How high are they when they crouch? How thick are they?
- How tall is a doorway?
- How high is a single floor of a building compared to the player character?
- How far can a character jump? How high can a character jump?
- What are different attack radii for melee attacks?
- What is the damage that weapons can do at specific distances?
- How wide is a the max/min/comfortable size of two walls for a wall jump?
Not only should you determine what all these elements are but you should also create prefabs/static meshes that allow you to create a level quickly. To start this process grab any grid-based software or paper. I typically use Illustrator because of the handy grid and snapping features.
For gameplay purposes, I typically create a series of playroom whiteboxes to help me test out different components and figure out how the mechanics of a character integrate into the world. These whiteboxes should iterate every variable possible so that you can create the appropriate measurements in your written documentation. For instance if you have a gun that can shoot through different materials, you should create a target range with all the available materials and thicknesses as an example.
For platforming in an editor like UDK, you should create a series of gaps in the floor that start small and scale linearly. You should also label these in-game with accurate measurements, for instance an 8 unit jump should be marked with a sign or perhaps a collider that pops up a message to the console. From there, you can figure out ideal jump lengths and also what jump lengths to avoid. Creating these playroom whiteboxes makes your job a million times easier later on (unless you change an aspect of a gameplay mechanic midway through development, then it can be disastrous).
Now that you’ve gotten these basic white boxes you need is the character measurement from your art team. Some studios have a standard height for their character (in a real unit of measure such as cm, or feet). For this example, we are going to assume that our character is six “units” of height in Illustrator which correlates to 6 feet in Maya. Draw a small figure that helps represent basic world scale.
The next step is to create your building blocks based on your character mechanics that you tested out in your playrooms. You want to do this on paper/Illustrator instead of creating them in the editor because inevitably someone is going to want a document based on your work. Working on paper is faster, but you can create extra layers in a tool like Illustrator. That gives you the power to place notes on enemy placement, notes for your producer, or any number of things.
I typically take as many mechanics as I can and create an easy, medium, hard, and hardest building block out of them. *NOTE* Make sure grid snapping is on. Once you are done with your gameplay prefabs create symbols, so it is easy to duplicate. You might also take the time to create symbols of all of your enemy characters, inter-actable objects, etc…
From here, you have all of your game building blocks to create level sketches quickly and without a lot of bug fixing/rework. Take these sketches and create an in-engine version of them. You want to double check that your sketches match the mechanics you’ve created.
Gameplay Flow (AKA Rhythm AKA Difficulty Curve)
Utilizing all your gameplay components and rotating them in and out reduces player fatigue. Player fatigue is when players get frustrated or bored with one type of gameplay (for instance combat) and are more likely to put down the controller and turn off the game. This happens in nearly every game to a certain extent, but it is avoidable if you have robust sets of gameplay components. You want to keep the gameplay varied and stimulating throughout the game. While this sounds obvious, I am sure you’ve played a game where this has happened to you.
For instance in Iron Man 2 we had several different gameplay components. We had A)Combat, B) Puzzles, and C) side scrolling shump-esque gameplay. Combat could be further broken down into 1) boss (challenge) battles, 2) land combat, and 3) air combat based on the composition of the enemies involved. We would constantly rotate in new components and challenges to insure the player was doing something different and then in later levels we’d throw them a curve ball by playing with gravity or the camera in some way.
There are two types of gameplay flow, macro and micro. Microflow refers to one section/level of a game. Now some open world games might make this a bit difficult to suss out but even those games typically have a ramping difficulty that starts with dumb skeletons that you can hack to pieces to higher level enemies that might require more knowledge of gameplay mechanics to defeat. Much like the brutes in Halo.
Within one level this flow is important but you also want to build upon the difficulty of these components. Macro-flow allow us as designers to create more complex levels later on that can continue to be challenging as the player groks easier mechanics. Typically a lead designer is in charge of creating a difficulty ramp that entry level designers then implement. This difficulty curve is based on the introduction of new gameplay and builds from previous levels. For instance
||Jump small gaps
||Jump medium size gaps
||jump large gaps
||jump the maximum distance
||Jump while at a walk on stationary platforms
||jump on slow moving platforms
||jump on quick moving platforms above pits of death
||multiple jumps on platforms that move up/down and circular
Macro flow design needs to take a lot of different scenarios into account. You want to limit which techniques the level uses based on its overall position in a series of levels. Is it the last level? Is it the first? At the beginning of the game, you need to introduce each component one at a time in a semi safe environment.
Creating an entertaining and engaging flow is hard to master. You must take into account the current skill level of the player, the golden path gameplay objectives, and the overall skill level of the audience. Furthermore, you’re only going to get a rough approximation of your games difficulty until you start running usability studies.
Sometimes things can be devilishly hard on purpose, but other times your gameplay is going to be affected by little things. For instance in early builds players had a lot of trouble using the belly slide in Madagascar: Operation Penguin. We ended up introducing the mechanic sooner, and we made sure to continue using it throughout the game and created a specific visual feel to indicate where belly sliding was required. Alot of this is designer instinct.
Creating Teachable Moments
Every mechanic has a specific learning pattern that you should adopt. Many times, a talented designer will teach players about mechanics without them knowing that they were taught.
Step 1: Show how the mechanic works without any interfering systems in a safe environment. Players should not have the ability to bypass this step with other mechanics. Example: Double Jumping: To teach the player double jumping we need a platform that blocks the player from continuing until they double jump up on it. If you have a mechanic like wall running, you need to take that into account in order to create a custom scenario that makes wall running useless (preferably without disabling it for no reason).
Take Half Life 2, for example. The player comes across a crow that flies into a barnacle tongue (the enemies that hang from ceilings). The crow gets eaten, and the player learns “Those things hanging from the ceiling will grab things that touch its tongue”. This is an intentional learning moment.
Step 2: Introduce the mechanic with a small difficulty ramp but still in a safe environment. Using our Double Jump Example, perhaps a series of 4 platforms that all require double jump but the fourth one requires near-perfect timing while the first one is easy. Not only does this reinforce practice of the mechanic but it also shows a few different ways that the mechanic is useful to the player and in what scenarios they might see it.
Step 3: Have the player use the mechanic in a stressful or timed environment. For instance, perhaps a gorilla is hurling flaming barrels at the player down a hallway. The player must double jump (or get hit) in order to get past the barrels. This step is the first true implementation of the mechanic into the gameplay.
I’d like to point out that teaching mechanics don’t all have to come at the beginning of a level in the form of a heavy-handed tutorial. You should be constantly implementing new skills to master throughout the game and as the player is mastering one skill they might begin learning a new one.
Defining context: The player has multiple different skills and techniques available to them but providing contextual visuals can make it much easier for a player to make a decision on what the should do or could do in a situation. As you create your building blocks put some thought into how your art team is going to represent them in the game. If possible, you want to create a visual vocabulary that allows you to express specific techniques or skills a player is expected to use in any given situation.
For instance, many sidescrollers have a “leap of faith” in order to provide the player a sense of vertigo or simply get down from a high place if the designer couldn’t get them down any other way. You can indicate where these leaps of faith are and where it is safe to make them through consistent visual imagery. Assassins Creed does this with small wooden posts that always have birds sitting on them and a hay bail at the bottom. When a player is running away from enemies and needs to find a safe way off the rooftops while running full speed, these areas allow a player to make a snap decision without plummeting to their death (most of the time). They also did this with white cloth over boxes at ground level to indicate places where a player could climb to the rooftops.
Some ways to create context are
- Using specific color while being conscious that some people may be color blind. Many games use lighting to help direct the player to the next room or obfuscate secret rooms that players only find by exploring.
- Using a mechanic specific object like putting a cracked texture on a wall to indicate that it is breakable. This texture could be on wood, brick, or steel walls, and it would still communicate the function of that wall. Similar to hay bales.
- Lighting conveys a great deal of information and is extremely useful in explaining to the player where they should go. If you’ve ever played modern sidescrollers, designers often hide collectables or special powerups down dark hallways, which is also a use of lighting.
- Play sound effects or mute the music that indicate specific context. Horror games have this down exceptionally well. If you plan on including a sound effect that is mechanically significant *please* insure that your closed captioning system properly represents these sound effects. Some people are deaf or they simply don’t play with the sound on.
Develop Visual Architecture
In some companies, the level designer is also an environment artist while other companies a level designer simply creates whiteboxes and places pre-created assets into a scene. Although you might not be the person that creates the art in the scene, a level designer is still responsible for creating the basic architecture of each area.
As the level designer, your job is to create memorable terrain out of very repeated 3D assets. Alot of this can be done by planning ahead to create visual components that work well together and can be reused multiple times in different ways. The same way a player gets gameplay fatigue they also get visual fatigue when playing monotonous environments. I hate to pick on someone but Elder Scrolls: Oblivion was a good example of too much of the same thing in this regard.
You can create many different engrossing environments by varying visual components to provide a more dynamic experience. You can attain these effects in several different ways
- The depth of a room behind the player. In a sidescroller example, you could have a cavernous warehouse that you can see far into the distance OR you could be against a wall. In both situations, the player has the same gameplay space, but you’ve created a different feel.
- Varying indoor/outdoor areas. Are your players moving through a warehouse building? Perhaps they take a detour over the roof or along a catwalk on the outside or perhaps a massive tank shell destroyed part of a wall, and you can see out into the distance.
- Lighting rooms in contrast to each other as well as having different times of day.
- Create claustrophobic or “voyeuristic” areas by utilizing planned foreground elements with tighter level geometry.
- Create “verticality” which is the sense of moving upward or downward. Many sidescrollers do a lot of side-to-side motion but completely forget going upwards.
Now that you have all these pieces it is is time to assemble a level.
Actually creating your levels. A step by step process
Throughout the game development process playtesting your work is extremely beneficial. I expect any good developer to play their own work and have others play their levels through every step of the following process. This allows the designer to iterate on their level.
I like to write down all of the level requirements based on the Gameplay Flow down into their own document while I plan out the level. This includes available AI, game mechanics, and assets, but typically a lead designer gives a lot of power over a level to the level designer in charge. In this case, I also take the time to plan out
- “Look and Feel”: What kind of feelings does my level evoke from the player. Are they scared? Is this level supposed to feel abandoned or under attack? Is it falling apart or is it a new construction? All of this informs the rest of your work. For instance if there is no power all the doors don’t work so you might need the player to smash their way through doorways.
- Story: There are two kinds of story, the first is the basic verbal back and forth between characters. It is necessary to take a look at the script and copy in any big moments of exposition and plan for them. If you do it right, you can work some genuinely interesting cinematic scenes into your level. The other kind of story is the environmental storytelling. Based on your look and feel, if your level is an abandoned army base because it was invaded by aliens you can create deep stories just on what you plan on creating. Perhaps there are tools strewn all over the hangar bay or the player comes across the skeletons of an unlucky group that tried to barricade themselves in a room. All these story elements create a rich story.
- Key Locations: Sometimes these key locations are mandated through your story but sometimes you can create them based on your own intuition. Typically these key locations are going to take some large custom assets or technical feat, so it is necessary to plan in advance for them. For instance in Half Life 2, the player comes across a vista right before they enter a cave. On that Vista, they get their first good look at District 17 and the combine tower. This is an extremely pivotal scene, and it conveys a lot of information to the player.
- Wow Moments: These are when the player simply says “Wow” or has a visceral reaction to a scene. This could be a final kill animation, a large jump, or an enemy crashing through the rear wall. It is when a player is surprised, scared, awed, or affected by the game in a way that they weren’t expecting. Wow moments are like key locations but are generally more about scripted sequences. For instance in Call of Duty, the player is in a trench when two tanks roar overhead. The first time I played that it took my breath away. Those moments need a lot of planning and typically a lot of unique assets to pull off, so planning for them early is essential.
Remember all those gameplay building blocks we created? Now it is time to use them. Using a 2D package sketch out your level. Like every good story, a level needs a beginning, middle, and end. This is also the point where you determine all of your gameplay objectives that keep the player moving throughout the game, hidden collectables, etc… Good objectives need some specific information.
- The objectives from a mechanical point of view. Kill 5 of X in rooms A/B/C
- How the objective is communicated to the player. How does the text read to a player? Are there any icons or arrows on the screen?
This is also a good time to sketch out The Golden Path. Golden Path is a term for the shortest distance between the beginning and end of the level while completing all objectives so that the player can move to the next level. If you want the player to backtrack a lot, for instance in a Metroid style game, then you can quickly ensure that the player actually does a lot of back and forth. Shadow Complex has an impressive sketch that started on paper.
The Asset List
OK so this is probably the most tedious part of any game development process but unless you are creating everything on your own you need to create an asset list. This list probably includes
- Sound Effects
- Visual Effects
- Special Code like custom AI behaviors
Now that you’ve created all of your sketches and documentation you’re ready to implement your level with basic collision. Almost none of this is going to end up in the game but slap down all of your terrain with a basic texture on it. This allows you to run around your level and make sure that the in-game feel is what you want. It also lets you test out any issues you might have.
For instance, you might have made some platforms to far away from each other based on the in-game camera. Working these problems out early is much better than rejiggering artwork and scripting later. It’s also important for you to block out what kind of environments you are planning. As I mentioned before you should figure out if this is an inside or outside area, how much depth a scene has, and what kind of effects you are going for.
Scripting Part 1
Now that you’ve created all your rooms you’ve got to get all of your level elements working. This includes getting all of the moving platforms moving, ladders with their appropriate climb volumes, and begin blocking in enemies so that they spawn in the correct rooms. If you don’t do this now, you might not discover critical bugs like enemy pathfinding around specific objects or that your moving platforms need to be tweaked. After this step, you should have a fully functional level that anyone can play from beginning to end.
Testing: Ideally you level is now ready to be played by the rest of your team. Now is the time to do a thorough review of your gameplay and get any feedback based on level design and usability tests.
Art implementation: Eventually artists are going to give you lots of intriguing art assets to play with, but they typically hate re-doing their work. That is why up until this point we haven’t implemented any art assets. You should implement textures and critical objects into the scene to ensure that nothing looks “placeholder”. Also, a good tip to making entertaining areas is to create “outside” areas within a level that the player can see but not touch. For instance, a bathroom with a door haphazardly bolted onto the frame gives players a tantalizing view of a horde of zombies inside but thankfully not dangerous.
Now that you’ve got your basic art assets in the time comes to light your scene. Most designers forget this step and get confused about why their scenes don’t look as dramatic as they could. When focusing on lighting you need to keep in mind where the light is coming from, what is casting a shadow on what, and where your enemies are going to be. Unless it is your intent to make it impossible to see the baddies coming at you, lighting your rooms poorly could result in unacceptable gameplay.
One terrific game that takes advantage of lighting is Deus Ex: Human Revolution. When you play through, notice how certain side hallways or secondary paths have lights, or enemies tend to patrol only where the majority of lights are.
Another important issue about lighting is that guiding the player to vital areas like buttons or the next room. This lets you stealthily guide the player forward without being heavy handed like the old Golden Axe games with a blaring arrow.
Most games have some sort of scripted events that don’t directly affect the player’s gameplay experience. Sometimes these are rendered cutscenes done in Maya or perhaps in a comic strip form. In that case, you don’t have to do too much, but “in-game” cinematics are exceedingly common. This might include a hulking plane flying overhead or a battle between two AI opponents duking it out in the background. Now is the time to create these cinematic moments to make your level come alive.
In Iron Man 2, we took advantage of a exceptionally basic camera system. Not only did we do full fledged in-game cutscenes but we also used the camera in more subtle ways. For instance, when the player is flying the camera will zoom out and lead the player more than if they were standing still. When Idling, the camera would actually zoom in tight onto the player.
You thought there wasn’t anything left to do? Well it is time to tighten those graphics. You’ve got a lot of the big effects in, but there are a lot of small things that can add depth to the scene. This often takes form as visual effects and sound. For instance creating little willowisps that float in a dark area, or a chain that rattles as water splashes down it (think Alien). These little touches are hardly noticeable most of the time but create a much stronger experience.
In Wolverine, one of the levels was held in a Mutant prison. We added small particle effects like fluttering pieces of paper, sparks, and smoke to create a haphazard environment.
Well there you have it, you now have one fully created level. There is a good reason why games take so long to develop since any given AAA style title has hundreds of developers working on it for years.