Raccoon Revenge Level Design
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:
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.
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:
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.
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.