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.
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.
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.
When the player enters the area you need to spawn four Skulls, hidden from the players 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 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. 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 yourtwo 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…
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 see 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!
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 next time.
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.
If you enjoyed reading this, you may also like:








MY DREAM JOB!!!!!
Great entry
oh my gosh what a complicated Job….abut such a nice Game..great Work. Thanxx
Tom from Germany
I like games! For the un trained eye it look very complicated, but I do think that its nothing to the guy with a good computer and a open mind so good luck man things are looking grate!
It look realy good and I think If I was a couple of years younger I will love to do somthing like that my self!
Wow, I always knew it was a lot of work, but STILL I overlooked so much of it.. I’m planning on doing something like this in a couple years if I meet the right people (but more along the lines of programming), and this entry REALLY helped. Thanks a lot Szymon.
This is so true! I’m looking forward to being a level designer! I’m currently attending game school right now and had a level design class this quarter and wow did I get a wake up call. Granted we worked in Unity but I can only imagine what the Unreal engine was like. I’m so stoked. Great game though guys!
Nice! I want this Job too,
But UDK doesnt run on my PC..
I hope someday i can made Levels for Million Peoples.
But when it all works in the end it’s sooo good. I find scripting to be really fun, like solving a ridiculously over the top puzzle. That said I haven’t done anything on the scale of a full level yet, just a small boss fight…with some errors still in.
Great post. This is one of the things that help to make video games into an art form.
Now that is what I call a good post! Thanks for sharing.
Any chance for releasing Bulletstorm UnrealEd for PC in the future?
Not to discourage you from your job, but level design is an aspect of a shooter that I value above others – and Bulletstorm fails to break the mold of chest-high cover systems with aggravating linear map design. It’s become a very annoying trait in FPS games. Since you’re someone who puts a lot of time and effort into level design I would like you to know that I want more freedom in my games. I don’t want another Gears of War clone, I don’t want another Call of Duty clone, and I’m not asking for the same open-ended map design like you’d find in games like Oblivion.
Use your position to resist the industry trend of never breaking any new ground, of never taking risks. I’m looking forward to Brink. I hope its level design can teach the industry a way of breaking free of crouch-behind-cover and railroad-narrow linear design.
[Polish removed. - Admin. Please stick to English.]
This is by far, one of THE BEST articles I have seen come out of this blog. Thank you Syzmon for writing an entertaining and informative article on Level Design. I really appreciate the hard work you put into both this post and Bulletstorm.
Great write up! I’ve done some hobby work with udk but the stuff I’ve done has been nowhere near the complexity you’ve demostrated. Impressive stuff. Feeling inspired to open it up and try some of it out
Damn that’s pretty.
As for scripting and seeing all that complex debug info (overlaid IN editor IN realtime AT the flip of a toggle (which you normally keep OFF ;D)) – well, psh! Sonny, back in the day (like, just a few years ago) we didn’t have such fancy thingamigigses.
Scripting with a visual editor*! Whooo!
How many hours do you wait for your level to VIS in between any changes whatsoever? What completely undocumented scripting system written by an autistic** programmer did you work in?! I bet you even have VERSION CONTROL!!! ;D
Just be happy it isn’t a game being made for Facebook (yet…) I’d imagine you’d be placing monitization nodes everywhere.
*Is visual really helpful at this point? It looks like you need a book on some good design patterns and a real ide at that point. Spaghetti code!
**ok, ok… <3 autistic programmers are the best programmers.
Damn, that is a LOT more complex than the map editor I’ve been using! Oo
“Nearly every little detail you want to be happening on your level, you have to script yourself”
Using a GUI is not scripting. Writing the code yourself is. UDK is for kids that need their hands held.
Level design scripting doesn’t have to be coding, although sometimes LDs have to code something as there is no GUI tool for them.
But in many projects, it’s not recommend for LDs to code for level-based events and gameplay, coz that kind of coding is usually buggy. You know most LDs don’t know much about programming. They are designers, not coders. Besides it’s much more fun and useful to focus on gameplay and logic than dealing with hardcoding.
PCF, thank you a lot for such a great Game which the Bulletstorm is! I think PCF + EPIC = EPIC WIN = Blockbuster kicking ass game of every genre!
Really nice read. I assumed it was shitload of time to script everything but some of the things you described I didn’t think about. Thanks for the enlightenment
PS. Is there any way we can get an article “Life of a concept artist” ?
“I draw pictures”. Haha, just kidding. Of course we can ask around if anyone is up for it, but they usually prefer to draw instead of write.
Thanks for asking
I hope someone is up to it. This is my dream job so I am really excited for any insights from people who work this for a living
Nice art ! How does it meld with the work of an AI/gameplay programmer ? How do you split the work, decide which behaviour should be generic for a character and which should be customized on per-level behaviour ? And is there some AI stuff with default behaviours like “when I need to run there then take cover in that way” that would not require manual conducting ?
It’s a longer subject really and no simple answer.
In short, the AI has its basic (core) behavior which you observe most of the time: shooting, changing covers etc. That’s programmers stuff. Also each enemies specific behavior is coded. Unique actions or those which would involve too much unnecessary coding and are easier achieved with scripting are done by LD’s. If you want something to happen in a very precise way you have to script it. Suffice to say is that programmers give us variety of tools with which we can control/change AI behavior in certain moments or force them to take some action. Everything depends on a situation, arena specifics etc. Sometime it involves scripting, sometimes we barely have to do anything.
Thanks
I do not intend to register at Bulletstorm forum, but there’s something that level designers or someone else should look at:
http://www.youtube.com/watch?v=q-vO76TAH9Q
Very nice article, which gives a good view into your work
.
I’m also a Level Designer, but I’m working for an dungeon browser game, so the workflow is similar, but not exact the same. Since now, I have nothing to script. But maybe I have to script in the future, I don’t know.
But I think scripting with Kismet is very convenient, isn’t it?
Greetings from Germany
Benjamin
Thanks to you guys for sharing LD things of this game!
Kismet is much more friendly than the script tools I used before in our projects.
I still hope maybe in Bulletstorm 2, the editor will be there for us to create something for this game.
[Post removed - Admin.
Please stick to English.]
Nice article. I’m studying in this way. By the way – do you still need LD? Because on your web site that proposition disappeared, and I’m a bit concerned of this fact
.
Hi Ketrab,
At the moment we’re not looking for an LD. But like our jobs page says; if someone is exceptional we want people to get in touch anyway.
Thanks for your explanation, Arcade. Anyway – I’ll be still work to be much better in UDK, and I’ll try a luck on the next time, when you want another LD
.
Are you the one who scripted the electroflies movement patterns? Just kidding, they were fun to shoot.
I liked the article and enjoy BulletStorm. Liked the Rakim reference (I saw him at Rock the Bells in NY a few years ago). I am just getting back into playing with the UnReal editor. For levels this massive what size display or displays do you recommend? (ex. Two 24″ monitors, etc.)
Szymon is OOF this week, so I’ll be jumping in to answer this one. As always, the bigger the better.
Dual monitors is always a plus but in no way a must. This particular level was made using one 24″ 16:10 and one 19″ 4:3.
This a fantastic article! I would love to see more articles concerning the actual production. Anything about model pipelines and/or problems or just art pipelines and problems in general! cant wait for more!
Best Job ever, i am student and really want to be a level designer;)
I think this is the best part of the job;)
Hi, im studying Gameplay and Design at University i found this one of the most interesting articles I’ve read in terms of level design, I use UDK for my modules and have wondered what exactly i would need to know to specialize in level design, this has given me a good insight to what goes on.
Do you exclusively use Kismet or are you required to know any Uscript?