
KF-CornerMarket is my submission to the Killing Floor Mapping Contest. I developed it within the month of July 2009, from soon after the official announcement to the deadline of the contest's first wave, to the 31th of July. This text is an explanation of how I designed this level, and a conclusion on what went right or wrong.
Killing Floor is a survival first-person shooter which gameplay can be easily summed up: place six players in a level and force them to fight off increasingly strong waves of monsters, until the boss shows up. Each monster has its special abilities, including grabbing the players, running at them, screaming a deadly noise, or puking acid on them. In between each waves, the players have to run to a trader shop selected at random, and buy their weapons before the time runs out.
Since there's no rivalty between two teams, designing a level for KF is different from most multiplayer games. Here are the particularities of KF level-design:
I feel that the official WestLondon level, while featuring a satisfying layout, is a let-down for these reasons:
I decided to create a city-themed level as well, but to use distinctive London buildings, objects and signs; to use a night-time/early morning setting so the level is bright enough to play without the flashlight on, but dark enough so the lights still stick out of the background; and to try and make it look more believable by detailing the buildings and using better textures.
To make my level stand out from the existing WestLondon in terms of gameplay, I needed to have different types of area. So while WestLondon features a few interiors, namely a church and a police station, I decided to have it all open. There would be no door to block the monsters' progress. While this decision basically removed a part of Killing Floor's gameplay, which is to lock doors to slow down the monsters or channel them, I felt it made sense: I wanted the players to keep on the move, to have nowhere to sit and wait for monsters to show up at the other end of a corridor.
With that in mind, I imagined the layout to be mostly circular, so the player doesn't end up in a dead-end by mistake and gets slaughtered. But running in a loop is only fun to gerbils, so it needed to be open enough and allow them to cut through at multiple points. A particularity of London is its Crescents and Parks, small green patches stuck in between residential streets. I decided to use such a small park in the middle of the block. That way, the streets around it would form a circle, and the park itself would break the circular layout. To achieve that same goal I also set two sloped streets around the park, more interesting than horizontal ones.
But that wasn't enough: I needed another location in the level that would stick out of the generic city look. I chose to add an indoors market as well as its open-air counterpart. The Borough Market is one of my favourite London places, and I thought a small reproduction of it would be a nice touch. Also, it is open on one side, so it fitted my no-doors premise.
Finally, to nail the London theme, I added an aerian Tube line, an Underground entrance, and a Pub. The Tube line was helpful to provide a cheap way to limit the level on one side (less time and resources needed than a row of buildings). The pub seemed mandatory: they had one in WestLondon, but it wasn't really recognizable. The Underground entrance allowed me to add another monster spawn.

Traders:
Since the level is quite small, the traders had to be as far apart as possible to force the player to move around the whole level. I placed one in the market, in the kitchen of a burger shop, one in a cybercafe, and one in the entrance of a garage, in the backalley. There's usually about 5 traders in the official levels, but since my level is smaller (it doesn't feature long indoors corridors and such), it didn't make sense to fill it with shops.
Spawns:
Adding locations where the enemies can spawn without being seen in such an open environment proved a bit tricky. In an indoors level, you can place some in every room, but in this case, where the player can see most of the level at once, the spawns had to be placed behind cover, such as vehicules, corners, walls... It worked though, with the cheap trick of having a spawn on top of a building, in the backalley. As a rule, I tried to have at least 3 attack-points for each sub-area, meaning 3 paths from which the monsters can arrive. That would remove the ability to camp by covering only the two ends of a street.
The WestLondon textures are all gritty and worn, but nothing really explains it. London is a tidy town, and the monsters don't seem to have a grudge against the pavement or the buildings, so the gritty aspect of the textures didn't make sense to me. I decided to go for a cleaner-looking town, with still the usual amount of trash and stains.
What made more sense than the worn out textures was fire: deserted buildings would be quick to catch fire. So, I added lots of smoke to my level, and a yellow-ish tint to the sky, to simulate an ambient glow from all the fires around town. The contrast between the warm fire colors and the cold ambient early-morning light made it visually more interesting.
As mentioned before, WestLondon doesn't really resemble London, at least not what most people know of it. I worked with a lot of reference pictures from the time I lived there, to make sure the buildings, signs and objects would have a british style about them. Most of the textures I created are based off these photographs. I made sure that notable assets (such as the bus stop sign, ticket dispenser, Underground entrance, borough sign, etc.) were looking as close to the originals as possible.
Here are some of the pictures I used as reference, and the in-game result:















I overlooked the performance aspect of the level and jeopardized my chances at winning the contest. The Killing Floor engine is quite old, so I figured it wouldn't be my main concern, that computer owners would be able to run it. Also, beta-tests results on the matter were all positive, even using old laptops.
But it seems that the retro engine actually attracted people whose computers can't run the recent games. I had multiple complaints about players who can run the original game levels okay on low settings but have low fps on my level. Sadly, the feedback came too late for me to be able to do much about it before the contest deadline. Actually, the very layout of the level would have to be reworked to please that player-base, because the amount of buildings visible at once is the reason for this drop of fps. That just wasn't the best design considering the engine, since there's little way of optimizing it. I realized that too late.
Another complaint that poped out a few times is how the level is too clean for people's taste. I guess compared to the game levels, it's true it stands out. But that was the premise I set myself. It just means that some people don't get what I was trying to do here. I failed at getting my point across about the overdone gritty aspect of the game textures. While this is something I didn't like in the game, it seems many players liked that.
Lastly, in the process of creating the buildings under 3D Studio Max and then importing them into UnrealEd, as well as learning both tools, I messed up some of the proportions a bit. Most of the assets size are alright, but a good part of buildings doors are too large compared to the player's size. However I knew about this issue, I didn't manage to correct it before the deadline. Nobody reported this though, so I suppose it's not that obvious.
With no knowledge of most of the tools at hand (UnrealEd, 3D Studio Max), and within only a month, I managed to create a level that looks believable and plays well. I usually like to take my time to get things done right, but I proved myself on this project that rushing in works as well. I jumped in, and got every aspect of the job done: even if taken seperately these models and textures would not impress, they amount to a good result.
The layout worked fine immediately, providing enough challenge and keeping players moving like I wanted them to. This was even more surprising as it is my first multiplayer level ever. And after running beta-tests with friends, I was able to make the necessary additions to the gameplay. For instance, it was too simple to camp near the ambulance, because there was only too paths to reach it, so I added a rock in the park on which monsters could climb to jump over the hedge, right next to the ambulance.
The feedback was positive and I feel like this was a good entry to the contest, compared to the quality of other custom levels submitted at the time.
Eventually, I ended up winning the 3rd prize of the contest.