April 19th, 2008
Eric and I began discussing ideas for a Team Fortress 2 map months ago, but I became discouraged after working for hours on different versions of the map in Valve’s 3D map editor, Hammer, only to discover upon testing that the design was all wrong. After some consoling and much bribery that may have included bacon, Eric convinced me to try again and provided me with a comprehensive design document. I anticipate that with clearly defined guidelines, the map-making process will be more enjoyable this time and thus more productive than our unorganized attempt made previously.
Our map is a “gimmick” map, meaning that will not adhere to the typical game play elements enforced in Team Fortress 2. In Team Fortress 2, players join one of two teams – either red or blue – and choose to play one of nine classes. Each class is designed for a unique role in the game with different weapon sets, health points, and character behavior, fostering an interesting and balanced game experience. For example, the Scout class lacks health points and is handicapped by a short-range shotgun while the Heavy can sustain more damage and boasts a badass mini gun*; however, the Scout can run faster than any other class and can double jump while the Heavy walks insufferably slow. Working together, a team with a balanced variety of classes (and players playing the classes as they are intended) will achieve the objective.
*Not actually mini at all.
Our map will only allow players to choose Scout (red team) or Sniper (blue team). The objective is to provide players with the opportunity to practice playing each class to master the subtle nuances of each. Scouts will learn how to dodge bullets and race to the capture point while Snipers will learn how to aim at an erratic target through the scope. When the Scouts successfully capture the capture point, players on the red team will be switched to the blue team and vice versa, requiring players to attempt both classes.
Inspiration for the map came from the scene in the movie 28 Weeks Later where snipers on the roof of a tall building are shooting at zombies on the street below them. In our map, a horde of Scouts (the zombies) will emerge from the front of a building at ground level and race down two streets (an “L” shape) to the capture point while the Snipers on the roof of a building at the hinge of the “L” attempt to shoot them. Scouts may be able to enter the Snipers’ building and ascend stairs to the roof to try to distract the Snipers.
This is what Hammer looks like. I arranged the windows so that I can see a 2D view of each axis (an overhead view and two side views) and 3D view of the map that I can navigate through. The tools are exceptionally simple – the block tool creates forms, the texture tool applies textures to blocks such as bricks or sky, and the entity tool creates special features such as lights, spawn points, capture points, and doors.
In the initial stages of building a map, I use simple textures and blocky forms to facilitate modifications. Once the layout of the map has been play tested and approved, textures and details will be added to give it the aesthetic of a city. Obstructions such as parked vehicles, crates, and dumpsters will be added to the street to prevent the Snipers from having an excessive advantage.
To begin, I created the frame of a cube-shaped room to confirm that my spawn point and lights worked properly. I discovered that if the spawn point isn’t hovering a few units above the ground, the player will be stuck in the floor when the game begins.
On the second iteration, I expanded the cube into a rectangle with a tall building at the end opposite of the spawn point. The purpose of this iteration is to determine the ideal distance of the street. I noted the time required to run from one end to the other as well as tested the line of sight.
I adjusted the length of the street and the height of the building and tested it in game again.
Once we were confident that the basic frame was an appropriate size, I added a Sniper spawn point on top of the building. I ran the map on my computer and Eric connected from his computer so we could test the street distances with a player on each team. The building height and street length are such that a Sniper looking through his or her scope can accurately aim at Scouts at the far end of the map.
In previous versions, we considered creating a single street rather than an “L” shape configuration with a building on either side of the street, requiring the Scouts to run through a choke point between the two buildings. We also tested a taller building and created an invisible “kill” texture in the space below the roof so that Snipers who tried to jump to the ground would die. In the end, we decided that it would be more realistic to allow Snipers to fall to the ground and become swarmed by
zombies Scouts with baseball batz.
While there is not an official method to restrict players to only two classes, I found several work-around suggestions in level design forums. The one that I tried involves a trigger that fills the spawn room that, when touched (when the player spawns), sends a command to their computer to join a specific class regardless of what class was chosen. This works perfectly on my computer, but is ignored when Eric connects to my map from his computer. I suspect that he has enabled a setting that prevents the server from sending commands to the client for security. If this is the case, I’m not sure how to proceed other than to trust players to join the intended class.
The next steps include carving stairs to the roof with doors at both ends, providing full-featured respawn rooms with resupply lockers, and creating a capture point. The time required to capture the capture point will be tuned and the street will be analyzed for location and quantity of obstructions for Scouts to hide behind. Upon completion of these core game play elements, the map will be tested on private servers. As feedback is received and implemented, the map will simultaneously be receiving graphical updates.
I am motivated to complete this map because we have some pretty awesome ideas for our next map.