This is a simple but wordy guide to some of the basic concepts of mapping for Half-Life. If you are an Expert
mapper, then don't bother reading this... it will be a waste of your time.
Hammer is the most popular Half-Life mapping editor. What you personally think of Hammer is irrelevant. If you don't like it, you can go elsewhere, but for what it is worth I have not found anywhere near the amount of support for any other editor. (JACK is another option with the same level of support as Hammer, but it is almost identical to Hammer so these tips still apply)
So we are stuck with Hammer, let us make the most of it. To help Hammer along we really need to decide what we are going to map for? Simple question isn't it. If it is so simple, then why do we still get people trying to map for several different Mod's at once. Why do we have people loading 20 textures into the Texture Tab
from different Mod's and then wondering why their friends can't play their maps? Probably because no one explained the basics.
Before you set up Hammer for the first time
Decide what you are going to map for. Will it be a Half-Life Single Player map? Do you want to produce a Multiplayer map for Counter-Strike, are you interested in TFC, Blue-Shift, NS, OpFor or Day of Defeat. If this is your first map, try sticking to one to start with, and keep it simple.
If you are going to produce a full blown Mod with new weapons and monsters as your first ever map, then I suggest that you don't bother asking me how to fix it. MOST of the forum posts are there because the poster wanted to do something that the game engine can't handle. Just check out the amount of time someone has replied "You can't do that in Half-Life". I understand that you are not going to know the limitations of the engine from day one, so how can you know what it will and won't do. Simple: start small and get things working before you build more stuff. There is absolutely no point in building the biggest map ever, just to find out it won't run!
Before you build the first brush
A map is a series of brushes that interconnect to form rooms, outdoor areas and fun bit's. Think of a map as a shoe box. Everything inside the box is called a map, everything outside the box is the Void. You shouldn't be able to see from inside the box (playing area) to the outside (void), Even a one unit gap in a wall of your box will produce the most common error of all. The dreaded LEAK. But before we lay the first brush, there is something more important to consider.
Have you got an image in your head of what you want to achieve? Have you sketched so of the layout or taken photo's to help you place things. Can you see what you want to build? These are all relevant questions. There aren't any maps that I know of, that started from the first brush and turned into masterpieces. Planning saves time in the end, and the time spent planning can be seen in the results.
There is an article at Handy Vandals site describing the pre-planning stage by building the basic structure of the map using Lego Blocks. Weird... Childish... but so useful that I might go out and get some
The Game Engine is 20+ years old. Today's computers are far more advanced than the engine ever was, but it is the engine we have to use, so consider this:
- I would really like an XK8 Jaguar. (DREAM)
- I drive a Mitsubishi. (REALITY)
When you map, consider things from the perspective of the game engine. It is limited (unlike our dreams) and has to be mapped for. Mapping for your dreams will always end in wasted time. In the last year or so I have received a map a week that will not run. The main reason they won't run is that it was a dream and never considered the reality of the engine. The engine has limits. Dreams don't.
So if you were thinking of mapping your High School (The most common First Map) don't look at it as though it is your High School, you need to see it the same way the Engine does.
When I look out the window, I see a limited amount of the yard. My vision is blocked by the window frame and the walls. When the Engine looks out the same window, it is trying to let you see all the stuff that you might see if you moved. It is banking on the fact that you are not going to sit still.
So when the engine looks out the window, it will try to render all the textures it thinks you might see. So it textures all the yard, most of the garden some of the roof and halfway up the street, even though you can't see them!
Understanding this is the fundamental basic of mapping (and I wish I worked that out earlier :-). So next time you wonder why your map Lags and jerks... it's is probably because the engine is trying to draw more that 1000 textured surfaces.
Mapping real life
There are not many successful real life places that have been mapped. That is because in reality, where we can see is defined by solid objects. In real life we can't see through doors.... But in Half-Life, the Engine can. Actually the engine can see through any entity and will texture the brushes behind it because it thinks you can too! Engine Visibility throughout your map is defined by solid objects. Once again you have to map as though you can see what the Engine can see. Big outdoor places are ok... as long as you don't put anything in them, which sort of defeats the purpose really.
Let's imagine we are in the yard looking back in the window. We can see some of the room. The Engine can see all of the room and some of the hallway because it is trying to show you what you might see if you move. If you have an outdoor map, them most of the inside of your building will be visible by the engine! The more textured surfaces the engine has to render, the slower your map will play.
Mapping for the Engine
As I mentioned earlier, placing a solid (non-entity) brush will block the engine from "seeing" what is on the other side. Well almost. The brush must touch the roof and floor in most cases. But the thing to keep in mind is that if you can see large distances in your map as the player, then the Engine can see more. Most of the large-scale scenic stuff in Half-Life was done through cut-scenes... and a lot of behind the scenes trickery. Ever wondered why you haven't seen a CS_superbowl map? I am not saying it can not be done, I am saying that the engine isn't up to it.
So when you get your idea down on paper or firmly locked in your head, think about your Engine and what it can see. Twenty minutes spent here will save you months of work later.
Getting it to work
If you are new to mapping and you do not
FULLY compile your map every time you add a room, set of entities, lighting change or model, then there is a good possibility that you will end up with a useless map full of errors.
There are ways to speed things up, by doing CSG and BSP compiling only, but these only work if you understand the implications. There is no point building a map and leaving all the details to the final compile. Compiling early and often saves time and let's you see how your map is coming along. Jot down changes that you should make while you are testing it and implement them before the next compile.
Do not build a huge floor because you think that is going to be the size of your map. Start with the first room and add things on as you go. That way you can reduce the size of the map, and there is no need to SKY BOX the map to get it to work.SKY BOX
: If you build a big box around your level and texture it with sky, then that is what is called Sky boxing. This is the easiest way to get your first compiling error! Sky's in Half-Life are not boxes, they are carefully crafted ceiling brushes.
But I want to do the Arena Scene from Gladiator!
Obviously you haven't read much of this have you? Get a grip. Map for the engine and not your imagination. Most of the really spectacular stuff in Half-Life is done with smoke and mirrors. Think outside the square.
BEFORE you ask other people:
- FULL Compile often and always reconsider your position when you get close to the limits.
- If something doesn't work... try again.
- Check the tutorials again.
- More often than not the problem is something simple, like a wrongly named trigger or the wrong entity type.
- Try the search engine, check the Entity Guide.