When somebody asks me what I do, I try to explain it in a few simple sentences. “I design levels, I place walls, enemies etc”. In return I usually hear “Wow! That’s a great job, you are playing for a whole day and you get paid for it“
. Ehhh… both statements don’t represent how it really is.
It’s easy to imagine that making a level is a piece of cake. What’s difficult about putting in a few walls, placing some enemies, adding dialogues, cutscenes or an event like a dragon riding a sledge? A day’s work and tadam! I’m drinking beer, playing my super mega marvelous level, delighted how it came out, knowing players will be exited when they play it. Honestly, it’s a shame that this couldn’t be further from the truth…
Don’t get me wrong. I love my job and I don’t see myself anywhere else, but I assure you it’s no picnic
and nothing like you imagine. You want to know why? Read on.
This is what you see in game
This is how it looks behind the scenes
Only the very beginning of the process is how you might imagine it. It involves making a sketch of a level, basically planning all the cool events from start to finish. This is the nice part. It’s also the most important phase of level creation. But that’s not necessarily because you’re planning the chain of events. It’s because it’s the time when you have to think a few months up front and analyze gameplay problems, technicalities and memory issues – how this will affect that, is this doable, will this work just as you planned etc. All this is necessary if you want to avoid huge problems in the future and have a fun and well-done level.
You need to know everything.
What is this room? How will this sequence look like? How many enemies do you plan to have here? Where are they going to walk out from? What will distinguish this fighting arena from the next 12 arenas? You have to be able to present it to others, show them a huge gray block moving and explain that you imagine this as a half-car half-monkey mutated alien baby…
But also this must be achievable for programmers, meshers and be certified by your lead, production and most important of all – the Creative Director. After couple of suggestions, a few changes, trying several different approaches, scenarios, correcting this, changing that, after another and another round of meetings, corrections etc you can finally finish your sketch… uff. You think: now for the easy part… You couldn’t be more wrong.
You didn’t even start your work yet. You need to start making more complex geometry and script everything.
The LD's vision - paper sketch of great fighting arenas
Let’s get to work. We have a simple situation to script: player’s character and his friend (sidekick) walks out on the street from a building, he says 3 sentences and after few steps forward they fight with Skull gang members. After that, around the corner they fight against Creeps. Sounds simple? Ok then let’s get to the scripting you have to do.
This is a sketch made in the editor, try to explain others what do you see...
When the player enters the area you need to spawn four Skulls, hidden from the player's view and additional two when player kills any of the living ones. Scripting this is simple. Now you have to organize the arena, but placing four crates and marking cover places for the enemies isn’t good enough.
It takes a lot of time, a lot of playthroughs, checking different enemy types, and various cover changes to make a single arena really interesting and fun.
Besides enemies, you also need to check if a player’s sidekick behaves properly and doesn’t disturb the player. Don’t forget he also needs places to take cover, other than the ones the player is using. If you want some piece of the cover to be destructible, you need to remember to script the enemies and sidekicks not to use that cover after it’s been destroyed. You want enemies to flank a player if he stays in one particular area for too long? You have to script it.
Nearly every little detail you want to be happening on your level, you have to script yourself.
Example of scripting something easy
This is not as easy as giving enemies a “flanking” command and they know everything they need to do. You have to determine a path they will be moving on, you need to tell them where to take cover, where to stop and when to start shooting. What about a situation in which the player shoots them during the maneuver? What should they do? Shoot him back, take cover, ignore? If he leashes one of them should he get up and still run to the destination point? That wouldn’t make much sense, would it?
What if the player rushes forward and kills Skulls at the end of the arena and sees your two additional Skulls spawning out of thin air three meters away from him? What if he doesn’t kill any of them and rushes even further into next arena where you spawn 6 Creeps? 10 enemies at a time? Will the player make it? Maybe. What about the memory? It may be too much and the game will crash. Yes, yes we need more scripting…
Things get a little more complex
Maybe the player won’t charge, and instead he goes back to the room he was in before going out on the street. The simplest thing to do is to close the door when player walks through it, but did you forget that the sidekick needs to do it as well? Script, script, script…
The level designer needs to analyze the player’s every possible move
, check every scenario and be sure he controls everything, there is no place for leaving some unpredicted situation unsecured or taking chances. It’s a little like playing god, but above all the player cannot see your fingers
, because he will feel cheated. How would it look like if player walked out through a destroyed door, turned around and saw a brand new metal door materializing, just because you wanted to block his way back? He was feeling the mood, he believed he was a soldier and you just reminded him that this is just a crappy made game. Look, no hands! Pure magic!
Editor view - this is where you spend 90% of your time
When you are working as an LD you need to remember that there is always a small chance that something will go wrong and you need to be ready for it.
For example what if a sidekick got stuck somewhere and won’t ever walk out that door which you wanted to close so badly? What if a sidekick was supposed to open a door to the next building? He won’t do it now. You need some scripted safety teleport mechanism, but again watch your fingers so the player can’t notice them.
You planned in your sketch that Gray was suppose to say 3 sentences about classical ballet before the fight starts. What if he rushes into battle and the ballet chit-chat is still playing like nothing happens? You didn’t think about that during sketch phase – your bad. Now how will you fix it? You could just stop him in the middle of a sentence, but this sounds unnatural. You are adding extra “WTF? Skulls!” after the stop, but it doesn’t always fit. You have to think of some other way to solve that problem.
You need one music track before battle, a different one for the fight. Slowly your scripting grows like a tangle of vines. You want the Skulls to drink beer and have a chit-chat before they notice the player, then to scatter, push over tables, make covers out of benches and you want the sidekick to kick the first one on the left? Ok, now you’ve got a jungle you need to script yourself
. Besides there is a case of making objects, animations, sounds, particles… but that’s something I’ll write about another time.
The final scripting of a complicated longer event
How much do you think it takes to make one level from the beginning till the final version? A 45 minute level, nothing special, no player in aircraft-tank-boat facing King Kong, just a normal bit of shooting. The answer is: months of hard work.
This piece of gameplay I just described above would take about 1min 30sec for the player to pass it. But there is still 43min and 30 sec of gameplay scripting to do and we work on 3 levels at the same time, so there isn’t much time.
The more you script the more variables and scenarios you get, the more complicated your scripting is and the probability of bugs rises. You need to take care of everything, test it, polish it and make it unbreakable, safe and most importantly – fun and interesting to play. You are not only coming up with ideas, but also you are the one that needs to make them work and work well. Scripting is just a part of a level designers work. There is more, but hopefully this gives you have a better idea of what we really do.
The bottom line is a Level Designer does 1001 things that an average player won’t ever notice!
Even if at times it is hard and time consuming I wouldn’t change it for anything else, because it gives me satisfaction like no other job before.
Reposted with permission from the PCF Blog