Map Creation

I have had a few ask me about how to start a map so I will show you all the first few steps in creating one. Now I am not a professional or very knowledgeable in the field yet but I can help get you started and looking at all the tutorials this one is the best way. Once Hammer is configured (which it should so by itself if not then go here) open up the hammer editor and make sure that CS:S is closed, even if you have the worlds fastest and strongest super computer the source coding and mainframe isn't stable even without CS:S running, if you do you're likely to get several crash errors and lose all of your work. (its happened before)

The first thing you need to do is select the brush constructing tool, also known as the Block Tool. A brush is the term mappers use for a block of solid geometry. It could be a wall, a ceiling, part of a window, or even glass. For now, you can just think of a brush as something solid that the player cannot walk through in the map. The Block Tool is on the left side of the screen, it is a small white-ish Grey box in the toolbar menu. With the Block Tool, drag a square-shaped block in the top (x/y) view. Drag out a 256x256 block. Don't make it too big. The dimensions in Hammer is generally bigger than you expect. You would be surprised on how the ratio affects the dimensions of the map, too big and it's no fun, too little and it's too fast. In the side (y/z) view, drag the rectangular shape until the block is 192 unit tall. When the block is 256 unit wide, 256 unit deep, and 192 unit tall, hit Enter to create the block.

You're not done yet. The block you just created is completely solid. It's just like the wooden block kids play with. Players and entities cannot exist inside a solid block. So now you need to hollow out the inside of the block to make it into a room. With your box still selected (the edges of the box in 2D view should be red), press Ctrl-H. A small dialogue box pops up, asking you for the thickness of the wall. As prompted in the dialogue, a negative number will extend the thickness of the wall outward, allowing more space inside the hollowed box itself. I tend to always hollow outward, so type in -32 for the thickness, and press Enter. For future references, the external wall of a map should always be at least 8 unit thick. Anything thinner might cause a problem with leaks and people attempting to glitch through a wall. No, we're not there yet. We still need at least a light entity and a spawn point in the box.

These are the minimal requirements for a map to load. As you'll learn later, light entities are crucial in making a map look good. Without proper lighting, even a map with great architecture and textures would appear badly. Even the simplest map needs at least one light entity. Otherwise, the map would be compiled into a full-bright map (because the compiler would rather have brightness everywhere rather than complete darkness). Full-bright is a four-lettered word in the mapping community. Don't make the mistake of making a full-bright map! So, let's select the Entity Tool on the left side (just above the Block Tool). Then, choose the light entity from the entity selection list on the right side of the screen. We'll leave the default setting for simplicity sake. Click somewhere inside your box on the top (x/y) view of your map. Then adjust the position of the light entity along the z-axis until it falls inside the box you've created. Make sure that the light is actually inside the three-dimensional box.

This is very important. Otherwise, you'll turn out a full-bright map. This means that if you were to place the light entity outside of the map there is no way for the light to get inside, it works just like a normal real light. If your wanting a dark map then pm me about it and I can show you some easy ways to create a darker light setting for the map. (great for the zombie server) After the light entity is positioned at the correct spot, press Enter to finalize its position. A small red dot with an X in it should appear inside your box. Now, we still need to place a spawn point inside the map. Otherwise, the map simply won't know where to put the player when the map loads from the console. We won't worry about buyzones and teams for now. For goodness sake, we'll spawn a counter-terrorist. Make sure that you're still using the Entity Tool. On the right side of the screen, type info_player_counterterrorist from the entity selection box.

As you probably notice by now, the list automatically zooms in on your entity as you type, so you don't actually have to type in the whole entity name. Press Enter to select it. Click inside your box on the top (x/y) view again, and then adjust the vertical placement of your green player entity. It's very important that you place the entity at least eight units above the floor. Otherwise when the map loads, your player is going to get stuck in the ground, unable to move. We're almost there, and it's so close we can taste victory already. But first, we have to go through this painfully slow compiling process. Depending on the complexity of your map and the power of your hardware, a compilation could take anywhere between a few seconds to days. I've heard people spending more than three days compiling a single map. But it's a necessary evil to overcome before the game can load your map. Now, here is a very important thing to remember. Have you saved all your hard work yet? If not, go ahead and press Ctrl-S right now. Since it takes so long to compile, there is no telling what will happen during the process.

The electricity could go out, a terrorist might bomb your apartment, your cat might pee on your keyboard...who knows. It's always a good idea to save your map source before compiling. This will save you immeasurable grief later, I promise. For testing purposes, name your map firstmap. Press F9, and a dialogue box will pop up. It's important to read carefully what each option says, especially during your first few times compiling. Make sure you check "Normal" for Run BSP, Run VIS, and Run RAD. And check the option "Don't run the game after compiling". Leave the additional parameters blank, and press Enter. For this small map, it should take just a few seconds for the map to compile. You can see the compiler generating a long list of messages during the process. Just ignore them for now. When the compiler is finished, the last few lines from the compiler message should read:

After all of that is done there will be a copy to clipboard button that you really don't need to use yet, though for advanced mappers it is a smart idea to keep track of changes and codes your adding in. It's the moment we've been waiting for, and there's no description for the pure w00tness that you'll experience when you run around in your own virtual world for the first time. It's something you'll never forget...like your first kiss, or in Peter's case his first nacho. Anyways, quit Hammer first. That's right, close the sucker. I don't care whether you have a monster computer with fourteen processors all linked together, Hammer uses a lot of resources, and Counter-Strike:Source isn't very stable when both Hammer and the engine are loaded at the same time. Running them both.

Fire up CS:S, and after you bring up the console, type map firstmap or w/e you named it and hit Enter. Wait for a few tantalizing seconds, and watch your creation spawn. If you encounter an error message when attempting to load the map, then you did something wrong and you don't fail at life... yet, just go back and look at what I have said and what you have done and see what went wrong. Congratulations, you made your first map! I know it's not an incredible looking map, but we all got to start somewhere. Have fun feeling claustrophobic and shooting at the brick walls around you I know that it was the best half hour of my gaming "career". When you can shoot something that you made... it gives you that warm fuzzy feeling inside that only 100 liters of Mountain Dew and a few pounds of stale chips give you... minus the hospital visit.

Well that's all of it for now, I would upload some screen shots that would make this easier but I typed this in class but don't tell my teacher :3 I will upload them as soon as I get a chance along with my map that I have been working on for a while now.

Edit: Now for those of you that would like to see uploaded screen shots of one, there is one that I found looking for a more advanced tutorial for myself you can find it here and I changed around the wording, his was better then mine but some things he left out that I re-added in. His has all of the screen shots necessary for this one to so now I don't have to do it. Well good luck mappers and I think I just made the longest post on the forum... w00t!!!! Spam