Unlike Half Life 2 or Counterstrike, Left 4 Dead offers a remarkably different player experience. It's primarily a Co-op game. You have to rely on other gamers or bots to survive and complete the content. You move through it as a team and experience the world together. This allows for some pretty unique gameplay but also creates some mapping restrictions when designing a level.
The team must be able to seperate and rejoin at any point in a map. They must be punished for splitting up (team play is paramount here remember) and rewarded for sticking together but either way they cannot be seperated by the map itself. This forces the mapper to eliminating certain events. You can't destroy the path they have taken in case someone gets left behind.
There are ways around this of course. Triggers can be used to ensure that all members of the team are in a certain area before you trigger an event but for the most part any change to the map layout will need to happen before the players have to traverse it.
As an example, in my current map I have the players moving through a lift shaft across the top of the elevators. As they jump from one of the elevators the cables snap and it plummets to the bottom of the shaft. As the elevator forms part of the player path, I've now removed the ability for anyone left in the map behind the lift shaft to move forward. So I have 2 options here. I can either spend a lot of time building in checks and balances to ensure that a player never gets stuck or I can introduce an alternative route that only becomes available once the elevator has dropped.
I'm going with the second option and I'm going to make it a real bitch of a route to punish the player for not staying with the group.
The other major challenge posed by L4D is that it takes place in a mostly real world setting. Unlike, Half Life 2 for instance, where moving platforms and other very platform game like concepts can be introduced, Left 4 Dead needs real world excuses for these. A forklift truck, an industrial lift etc...
Finding ways to make interesting, dynamic environments can be a real headache.
In my map I've chosen a collapsing building. Players will head from the roof (beginning at a botched rescue attempt with helecopter crashing) and make their way down with the threat of the whole building coming down on them at any moment. As the building shakes and quakes, walls and floors and ceilings collapse exposing new paths for the player to take. Of course all this time the player is having to blast their way through infected so it really ramps up the pressure.
This concept has its flaws.
I'd like to start it with a panic event on the roof but the way hordes work in the first level of a campaign in L4D means it would be only one wave of infected. Hardly the big opening I was hoping for!
Also.. trying to make each floor of an apartment block seem interesting (there will be eight floors in total) is going to be a challenge. Traditional apartment blocks have the same layout on each floor so this creates a real headache.
The final challenge is how do I emulate being 7 floors up and looking down at the ground. I'd like my players to be able to walk on ledges around the outside of the tower but how do I create a realistic street scene below without the player seeing the edges of my map.
I'll let you know how I get on.