Published using Google Docs
07/20 Level Design Documentation
Updated automatically every 5 minutes

Raccoon Revenge Level Design

Making a Level

Here's the recipe for making a level in the game:

What you'll need:

A copy of the Raccoon Revenge Project

Unity

Software that can edit single pixels and have transparency.

(Easier with a software that can deal with PNGs and PSDs, such as  Photoshop, GIMP, or Paint.net)

Directions:

  1. Duplicate "L_Template.psd" found in "Levels > Textures"
  1. Rename it to what you want to call the level (making sure to keep the "L_"
  2. Open up the file, you'll see this file with 7 layers and 8 pixels on the bottom left.
  1. Palette has the colors you'll need
  2. Base is where you draw the basic form of a level
  3. Shapes is where you draw major shapes and structures
  4. Obstacles is where you draw the minor pieces
  5. Enemies is where you draw the waypoints and enemy locations
  6. Cans is where you draw trash cans
  7. Player/Flag is where you draw the player, flag, and teleporters.
  1. The 8 pixel colors correspond to the different game elements
  1. Black is for walls
  1. Note: the outer edge is added in Unity, no need to draw a border
  1. Green is for the flag
  2. Blue is for the player
  3. White is for teleporters
  4. Yellow is for cans
  5. Cyan is for waypoints
  6. Magenta is for enemies
  7. Red is a placeholder
  1. Change the level size as needed
  1. Draw a level
  1. Save your image
  2. Export a png version
  3. Go into Unity
  4.  Find the image
  1.  Click on the presets button and select "LevelPreset"
  2.  Set compression settings to none.

  1. Go to the Level > Levels Menu.
  2.  Create a new level by right clicking, Level (at the top of the menu) > Level

  1. Drag in your image into the Level Map Data field.
  2. Specify the rest of the parameters:
  1. (Example: A PUP weight of 3 means you will find a powerup in one of the trashcans for every 3 you pick up)
  1. Example: You drag in a speed powerup and a knockout power up.  Set the speed to 1, knockout to 3. Knockout will spawn 75% of the time when you get a powerup.

  1. If you want to play the level: Go to Levels > Level Registry.
  2. In the Level Registry currently in use, drag in the level object you just created into a desired slot.
  3. Test the level:
  1. Congrats you made a level!

Making A Level Registry

Level registries are how we order levels. We've made a few so we can test different progressions and level sets. When building, use the Release registry.

  1. Right click on the project panel (hopefully in the level menu) and select Level > Level Registry.
  2. A level registry is an array of levels and the amount of trash to unlock a level. Set the array length to what you want.
  3. Drag in levels and set a corresponding trash amount (Make sure the trash amount is equal to or larger then the trash goals of each level)
  4. To be able to play with the level registry, you'll need to drag it into two slots.
  5. First is MenuManger > Level Data > Registry on the LevelMenu scene
  6. Second is LevelController > Registry on the Level Scene
  1. The menu manager controls UI and Saving with levels, Level Controller loads the levels in the game.
  1. Test to see if it's in place
  1. You don't have to do this immediately, but never push what you haven't tested.

Designing a Level

Making a level is a deeply creative process, and you will have your own inclinations on how to make the choices in that process. Here's what I do, and some resources used.

There are a few starting points to a level. There are times when you want to make a level to introduce a mechanic, or when you want a level with a certain difficulty, or when you want a level to follow a certain theme.

There are 5 levels in a set, and generally they follow this pattern:

  1. Introduce a new mechanic - 10-30% (very boring if something wasn't being introduced)
  2. Use that mechanic with a theme - (30-40% - good solid dynamic level, but not too difficult)
  3. Combine the mechanic with something else - (40-50% - contains some trickiness, start to challenge players to think deeper)
  4. Bring back in all mechanics - (50-60% really dynamic and exciting, should be the best level of a set)
  5. Test the player with the mechanic - (60%-70% really tricky, starting to be frustrating, but never passing the boundary. This level is about making sure the player knows what's up before bringing them back down with the next level set)

This pattern is a good starting point, although they can be moved around as need be. The percentage corresponds the difficulty of the level. The exact metric that maps onto is - up to you - but let's assume it's how many players fail in their first 2 attempts.

These three starting points lead to different levels, however they should always be considered in every level.

Here's how I went about each specific type of level.

Levels introducing a specific mechanic

The goal of this level is to make the mechanics use completely clear. If you want a level introducing the knockout powerup. There should be an enemy visible when you pickup the first powerup. You want to control what the player sees and when the mechanics are shown. This is a utilitarian level, and that's okay. If it's 8x8 and only has one enemy, that's okay. If you're certain a player will understand what's happening, you've succeeded.

As you bring in more mechanics, try to make levels that balance it together to really show off the dynamic possibilities of the mechanics.

Levels with a specific difficulty

The first thing to do is to look at analytics and see what levels are doing what. We hopefully will have a good set of metrics for each level. When that's in I'll report back here.

Until then here's some rules of thumb: Difficulty is most closely correlated with:

G / C * A

Where G = the trash goal of each level, C = the amount of cans in a level and A = the trash per can

The higher this value, the more difficult the level is. There's other things like enemy amounts, where enemies are, powerups, and level geometry, but if those are generally average the equation works. Maybe I'm wrong, but this is what I've seen. This is a designed way of going about finding the metrics.

Levels with a theme

It's easier to make a level with some starting idea on what it will look like. I use general concepts of buildings or events to map out levels. You could do something else, as long as it is something.

Here's a 32x16 level being drawn out using a theme. The theme will be a train station.

Start with the base and draw out a shape. It could be 3 vertical stripes,  a star, a cross, some basic idea to build off of.

For this level, I based it off of Boston's South Station, where there's the station on one side, with a central door and rails on the other side.

Then start drawing shapes, shapes that reinforce the theme or add interesting moments to a level. Make corridors, doorways, plazas, pathways, alleys, grand halls, and employee entrances. Yes, it is at max a 32x32 canvas, but you can do a lot.

For the example, I continued with the theme and made 4 shops and an information center, as well as tightened the back of the level. It might seems weird to be giving such specific names to what are basic shapes, but I find understanding the level narratively helps me with later steps and makes for a better level. You'll also notice the shops are closed up, we'll open them up in the next step.

To finish up the walls, draw obstacles, small elements that make the level more natural and give a few other routes to take. I have a tendency to make levels symmetric, but I break that up with the obstacles.

Here's the final version. You'll notice each shop got a different treatment. Obstacles are also where I start thinking dynamically, where the player will be and where I want them to go. The next steps will be all about that.

After you are done with the walls, move onto cans. Place them throughout the entire level, maybe some big chunks, maybe small pockets, rows of them, some in the middle of rooms, some on the edge. Be wary of exactly how many you are placing. When specifying the level goal now how much of the level the player will have to be in to open up the goal. A level that only needs 25 trashes, and has 5 cans en-route to the finish will be easy. A level with 25 trashes, and only 5 cans will be difficult.

Here's the cans. I want moving through the shops to be the main gameplay of the level, so I put the most trashcans in the shops. I'm going to set the trash goal here to be the amount of trashcans in the shops. There's enough trashcans in the rest of the level for snatcher to skip one, but if the player goes to each they'll have done all I want them to do in the level.

Next add enemies and waypoints. The AI is not advanced enough to stick to a given spot or roam beyond the paths to the waypoints, to be diligent to make sure there's enough enemies and waypoints to have their threat be felt everywhere. To add tension, add a waypoint to the same spot as the flag.

Here's what I got. I drew where I imagine the enemies will go on top. (Although I might be wrong, the AI surprises me.) You'll notice that I put one waypoint in each shop, this is to make sure there's tension in those spots. I also added more trashcans to the center to further incentives players down there. The starting locations of enemies are all about timing, so paly around with that.

 

Finally, place Snatcher (the blue pixel) and the goal (the end). You probably have a good idea of where the beginning and end are, so you got that.

So this is the level. Let's drop it into Unity and actually see how it plays.

Here's the initial specifications.

Testing a Level

Once you've completed a level it's time to test. Make sure the right level registry is in place and your level is in it. Start up the project and jump in.

Step 1: Does the level work?

What's missing from the level? That's right, Snatcher is no where to be found. We have a big error.

Most likely this is caused by two things. Either you didn't save the final changes (which is what happened here) or your color data is not precise.

Compare your level to the texture, see where there are holes. Make sure all colors are only 255 or 0 in their RGB values. Save the image. If there's still issues look into the level a bit more.

Step 2: Is it balanced?

This is a hard question, and it's likely the full answer won't come fully until you show it to people, but there are a few testing methods you can use to see.

Ask yourself:

Am I getting the trash too quickly or too easily?

Are enemies too much of a threat or do I barely see them?

Am I playing this level for way too long, or did I beat it without any hesitation?

If you’re feeling any of these factors are too extreme, you should start to play around. In this level, the knockout powerup makes visiting each shop not necessary, so the first thing I did was cut that out.

Just by cutting that, the level was a lot more dynamic. I lost it the first time, but it went well the second time.

Step 3: Is the level fun?

This is the question. The correct answer is you will never know for sure, and it's really hard to know if you're only playing the level.

Ask people what they think, get notes, and continue refining it.