So you've decided that you want to start mapping for Half-Life, eh? Great! At the moment, you're probably thinking "Well, I've started up Worldcraft, what now?" Well don't worry, its not that hard
With a bit of practice, you'll get the hang of it. This is a step by step tutorial showing you the basics of WC and should have you creating your first, simple level in minutes.
First, you will have to set up the configuration for WC. It is extremely important that you set up WC correctly.
I suggest that at this point you should be mapping only for the original Half-Life, and not any other MODS.
I also suggest that you get Zoner's Compile tools. They are much better for compiling than the original supplied ones.
So WC is set up correctly and ready to go?
1) The First room.
Now, let's make our level! There are two ways of making a simple, square room. The first, quick way is to make the shape and hollow it out. For now, lets do this. First, select the block tool. This is used to make brushes (shapes) (The tools are listed along a vertical bar on the left. You can move the pointer over them to find out what they are). We will use this to make the room. You see those 4 views in the WC screen? The top left is the 3D camera screen. If you click the word "Camera" at the top of the 3D window, a box pops up. This is used to set what each view should show. Select 3D Textured from the menu. This will make that window show the map in 3D, with all textures.
Now, you should still have the block tool selected. Holding the left button down, in the Top 2D window (the top right) drag a square shape. We will make it 320X320. Now you have to set the size and shape in the other windows. In one of the other 2D windows, make the height 320 by dragging up or down. You can see how big you are making your brush by the numbers in the bar at the very bottom of the WC screen. Now, select the box and right click it. A box pops up. Choose hollow from the box. When it asks you to enter a value, enter 16. This is how thick the brushes will be. There, that's it. Now you have seen how to do this, select it and delete it. We will now make a room using the more effective way.
First we will make the floor. Do the same as what you did before when making the shape, but when you adjust the height, make it 16 instead of 320. Do not hollow this brush. we are going to make all the parts of the room seperatley.
You should see this: By the way, you may want to use the zoom function. The quickest way to use it is to press - and + on the keyboard. Also pressing [ and ] will make the grid size bigger and smaller allowing you to adjust brushes by tiny or large amounts.
Now let's make the walls. In the side view (bottom right) drag a box that starts exactly on the top line of the floor, and stretch it up until it is 160 units high. In the top view, drag it along horizontally until it touches the left and right lines (It should measure 320) and vertically so it touches the top line and stretch it down so it measures 16. Your wall should measure 320w 16l 160h. Now repeat this for the other walls, but putting them in the correct positions. Note the sidewalls will measure 16l 288w 160h. You should end up with this: The 3D view is easy to use. Select camera mode. In the 3D view, hold the left button and move around to move the focus. Right-drag to slide up/down left/right and hold both buttons and move up/down to zoom in and out. Make the ceiling by dragging a square across the top view to fit over the shape we have, touching all the outside lines. There! Your first room. Take a look around in the 3D view. Now we must add two vital entites to our map (entities explained in section 4). These are the info_player start and light.
The info_player start entity is probably the simplest entity of all. Just go into entity mode and by default, info_player_start should be selected (if not, select it from the drop down list). When you place the cursor over the 2D screens, it will turn into a little axe with a cross. Move it to the centre of the room. The exact location isn't important here, and don't worry about height, since the player will fall when he/she spawns in the game. Just make sure it isn't touching any brushes, since the player could get stuck in a brush when they spawn.
The light is exactly the same to make, except that you select light from the list instead of info_player_start. Place it somewhere in the map and hit F9. Save your map and then you will be shown the compile screen. If you have not yet set up the compile tools, do so using the WC setup guide.
Make sure you're in expert mode and click ok. You will then be taken into Half-Life.
At the moment, this map looks plain and boring. Well let's texture it then! Select the Texture Application tool. In the 3D view, select one of the inside faces of a wall of the hollow box. You see that popup window? Use it to select a suitable texture. Here we'll use a lab theme. Click on Browse. A window pops up. Now you can scroll along, looking for a decent texture but that would take all day! Now there's a text box named filter. Type in either "lab" or "c1a0" You will see a selection of textures. Let's use C1A0_LABW4 for the walls. Press enter when you have found it. Now move the pointer (a little paint can) over one of the wall faces and right click on it. It should change to the new lab texture. It should be aligned properly, but you may want to press L, R, T, B or C to align it to your liking. Do NOT press fit, as this would stretch the texture to fit the wall. Though this is a very useful feature when you want big signs for instance to fit on little brushes, or any other textures.
Right, repeat those steps for the other walls and we'll do the floor and ceiling.
For the floor, we'll do exactly the same but choose a different texture. Type lab or c1a0 again (it doesn't matter which case you type in) and find C1A0_LABFLR. Do the same to apply it to the floor brush. Repeat this for the ceiling but use C1A0_C1.
That's it! Well, this room anyway!
Lets add a prefab to this room. Prefabs are ready made objects that come with Worldcraft. They can also be downloaded from the Internet. Try looking at some HL prefab sites. They come in various categories such as computers, random objects, crates etc. Let's add a crate. Go into selection or brush mode. When you were making the room, did you notice the Category menu? It was set as primitives and the Objects menu was set to block. Now, pull down the Category menu and select Crates. In the Objects menu, select 32^3 medium crate. Then Insert original prefab. You will see the crate appear somewhere on the screen. Drag it around so that it touches the floor and is somewhere by the right wall. Check it is correct in the 3D view. By default, this crate is a func_pushable. That means it is a normal, pushable object. Let's change it a bit. Open up its properties. You can do this by either by right clicking it in one of the 2D views while it's selected and choosing properties, or by the shortcut Alt+Enter. You will see this: Now, where it says Spawn On Break, there is a drop down menu. Select 9mm Handgun. So now, when this box is broken, the player will get a 9mm pistol from it. All the other Settings can be left as their defaults here.
Now let's add a computer. Most of the computers in the computer category are old style computers and will not fit very well into the level, so lets make our own. Exit texture application mode if you are already in it. Click on Browse. It is above Replace. Now find the texture LAB1_COMP9E2. You may notice a load of textures that start with +0 or something similar. Textures that have +0, +1, +2 etc are animated textures. They will constantly change in a sequence from +0 to +1 to +2 and so on. Textures that have +0 and +A are usually used for buttons, as the +A textures are the texture after the button has been pressed.
Ok, press enter when you have found the computer texture. The size of it is 48X128. Make sure that you are back in the primitives category and block is selected. Make a block that is 48w 48l and 128h. Your computer shape will be created and all sides will be textured with LAB1_COMP9E2. By browsing for a texture and then making the actual object, all the faces will have the selected texture. Move the computer so it's sitting on the floor and is next to the left wall, facing right. Because the object was made to the exact size of the texture, no texture alignment is necessary here. Go into texture application mode and select the front face (the one facing right in the top view window). Browse for the texture +0LAB1_COMP9B2. Remember the +0 part? This texture will make the front of the computer animated with blinking lights. (Note you may need to centre this texture)
There, you're very own computer!
Every map will need entities, or at least one anyway. These are what make the level work. There are two type of entity. Point-based entities are selected straight from the list. We have already used two examples of these. Usually point based entites need something to activate them, normally another entity. One entity will have its "Target" value set to the name of another entity's "targetname" value. If there is more than one entity with the same name, they will both be activated.
The other type of entities are brush-based entities. These are (as you guessed) made from a brush and then turned into entities. (Either by clicking "tie to entity" or pressing "ctrl+T")
There are lots of entities available, as you can see, all with different uses and functions. You can view a complete list of them at the Verc.
There are different types here. Point-based light entities that come in 3 types: light, light_spot and light_environment. Then there are textured lights. These are simply textures that give off light. There is a file called lights.rad in your Worldcraft folder that controls the brightness and colour of these lights. Sometimes, you are given 2 files: lights.rad and valve.rad, with lights.rad being empty and valve.rad with all the info in it. In this case you will have to delete lights.rad and rename valve.rad to lights.rad. These files can be opened with a program like WordPad.
Note that not all the textures of lights will emit light. You can find which ones do by looking in the lights.rad file.
We have already made a point-based light, so let's make a textured light. First, delete the light that is already there. Next, select an appropriate texture for a rectangular, florescent light fixture. I've chosen FIFTIES_DSK5A. This is for the fixture, not the actual light. Make a rectangle that is 64w 16l and 8h. The length should be going horizontally across the top view. You should notice a cross in the centre of each object. This marks the centre. Have the centre of the light in the same place as the centre of the room. In texture application mode, select the bottom face and texture it with ~LIGHT3C. You should have something similar to the picture below. If you want at this stage, you can run your map so you can see the difference between point-based lights and textured lights.
Well, that's your first, working (hopefully) H-L map. How do you feel? If you feel that's enough, then ok, get going and start mapping! If not, don't worry. The next few topics will go through making hallways, doors, glass, monsters and more.
6) Joining Rooms
Ok, we have one room. How about another? We could make another room from scratch, or we could use the quicker way. While in selection mode, drag a box in the top view window around everything. It will all turn red. While holding shift, drag it to a new area of the grid, above the original in hte top view, but overlapping the original in the side view. When its in place, let go of the mouse button and then shift. Make sure you press shift and then
start dragging. Now we do not want half the objects here. Delete the crate, computer and the player start in the new room. Move the light in the new room so it is no longer in the middle, but near the top (in the top view) also, change the light texture to ~LIGHT5B. You will notice this is a dark texture and emits no light. So lets place a light entity there. Select the light entity from the menu and place it in the centre of the light fixture, but have it below it. You could open properties and change the colour, and style of the light; but if you, say made it a red light, you should change the texture of the light fitting to a dark red texture.
Join the rooms together!
First, we will want a hole in each wall. There are different ways to do this but here's how we will do it.
For the first wall, of the original room we will clip it. Set the grid size to 8 by pressing [ or ]. The rooms should take up 5 grid squares across. Now select the wall that we are going to clip. Go into clip mode. Count the gridlines from the inside left to the inside right. On the second line draw a straight, vertical line going down- cutting the wall into 2 pieces. Note, if you see when cutting, 1 part goes white, and 1 part red, then click on the clipping tool until it all goes white. This tells it to keep all the pieces rather than deleting the clipped off pieces. Do the same again on the large part of the wall, but counting from right to left. Set the grid size to 32. Now with the smallest clipped piece of wall selected, count up 3 squares and clip it horizontally. If you select the bigger part of the object we just clipped, it should be 64w 16l and 96h. You can delete this piece. There, a hole in the wall. Quickly texture the edges of the hole by going into texture app mode, left clicking on a wall that's already textured, and right clicking on to the bare part of the doorway (Use the ceiling texture for the top part of the doorway). For the next hole, let's use a different approach. This is just to show you there are multiple ways of doing this. For this doorway, we are going to carve the hole. First make a brush that is 64 w and 96 h. The length doesn't matter here. A quick way to do this is to make a brush in the same place as the hole we have made; the same size and then move it to the new position. The new position will be in the same place as the previous one, but above so it's going through the bottom wall of the other room. When it's in place, right click it and select carve. This will carve a hole in the wall the same shape and size of the object you made. Delete the object and you are left with a hole.
Next you must make the hallway. First the floor. Make a brush that goes from the first wall with the hole in it to the second, 64 w and 16h at the same height as the other floors. For the ceiling, clone this floor (holding shift and dragging) and move it vertically so it matches the other ceiling parts. Texture it the same as the other ceilings. To make the walls of the hallway, create brushes that go the length of the hallway floor, on the outside of the floor and are 16 units thick and 160 high. Make sure the wall fits without gaps. You can either make another wall or clone the previous one for the other side. Ok, that's the hallway.
You should have this: Let's do something with this new room. Add a wall that goes horizontally across from left to right, is 160 high and 16 thick, and touching the walls but leaving no gaps. It should be in the middle of the room. Texture it the same as the other walls. What we will do with it is in the next section.
7) Adding glass
Make a brush that will be the window. Make it 96 units long across the screen, and 64 high. Change the grid size to 8 units (you may need to zoom in to make it smaller). Place the object 2 grid squares in from the left wall, and 4 up from the floor (The top of the window should be the same height as the top of the hole for the hallway). Make sure it is sticking out through each side of the middle wall. Texture it with the GLASS_BRIGHT texture. Carve it. Resize is so that it fits in the middle of the gap in the wall, 4 units thick (You may need to set the grid size to 2). You should have this: To make this breakable, see through glass, we need to turn it into an entity. Do this by either clicking on to Entity, or by pressing ctrl+t. Now go into properties. Select func_breakable from the list of entities. Now to fill in the properties. The strength is up to you, but I'd use around 10 to 20. The next couple of steps are important to making it transparent. In render mode, select Texture. In FX Amount (1-255), put in a value of 100. The lower the number, the more see-through it will be.
There you have it! A breakable window.
Almost done! Ok, here we'll make a sliding door with sounds. First we need a door brush. Make a brush 64 in width and 96 height. Place it touching the floor, and the inner right wall, going through the horizontal wall with the window (How much it sticks out is not important, just as long it sticks through both sides). Now if you move the shape across to the left, you should see a dotted line shape in the original place, and a full version where you are moving the cursor (This is while holding the left button). Now place it so that it's touching the left side of the dotted line shape, like this: Let go of the mouse button. Carve a hole in the wall from the door shape. Now resize the door so it is inside the wall, turn the grid size to 4 and leave 1 square each side of the door (from top to bottom).
Turn it into a func_door from the same method as the glass but selecting func_door from the menu. Open the door's properties. The angle and speed should be fine left as they are. Set move sound to vacuum and stop sound to chunk. Next set delay before close to 3, and lip to 1 (Lip is how much the door will stick out). If health (shoot open) is more than 0, set it to 0. This is so the door will open when the player walks towards it, not if they shoot it.
Now to texture it. Select the texture- C1A0_DR3B and apply it to the whole door. You will notice that the texture is both the wrong way round and it doesn't fit perfectly, since it's a different size texture. Fixing this with WC 3.3 is simple. Select the front face to bring up the texture application tool. Click on Fit. This stretches the texture to fit exactly the size of the door. To flip it round, just put a - sign before 1.00 in the x box, just below scale. Click C to centre the texture if it is misaligned. Now move over to the back face and right click it to apply the same texture properties to it.
This is the last part of the tutorial.
Adding monsters couldn't be simpler. Just go into entity mode and select monster_scientist. Then simply place the green cursor where you want him to appear. Place him in the small room behind the glass. You should end up with a blue rectangle. Move it about so that it touches the floor. Be careful it doesn't touch any walls, or you could get errors. Open it's properties. The only setting here you may use is body. It is set to random. You have a choice of 4 scientists- each with their very own skin! Take your pick.
Go into flags from the top. There are a number of tick-boxes. Gag will disable the scientist's constant chatter, prisoner will disable him from hurting anyone he would usually do in-game (like he really would!). Pre-Disaster will make him like in the beginning of H-L -he wont follow you, saying he's too busy and Fade Corpse should be pretty obvious.
Also, lets place a crowbar to smash open that crate and bash that scientist around with!
Do the same as when you placed the scientist, but select weapon_crowbar. Place it where you want.
Hit F9, compile and play your new map!
10) Note on Leaks
Leaks. Evil things! But what are they' Well, leaks are gaps in your map. They can be as little as 1 unit thick, but still cause a leak. Also, having entities outside of your map does this. So what do they do? For a start, they make your map full-bright because HL can't calculate the lighting effects, so it just gives full brightness to light up the level. How to fix it? Well the simplest way would be- to be careful! Watch that you don't leave any gaps between brushes. It can be rather difficult in more complex maps where you have lines all over the place, but then you can use the next method. If you run your map and see you have full brightness, you should run pointfile. It draws a black and yellow line in HL, which points you to the leak. Simply type pointfile in the console and it will draw the line. Follow it from start to finish and you should find your leak.
Hope you found this tutorial useful. Find it easy? Well go on to the more complex stuff then. Here, I've only explained the basics of WC and mapping. If you feel your still stuck, there is so much info on the Internet you should find everything you need. I know I keep on telling you to go to www.valve-erc.com, but it really is the best place to go for any help, advice and info you need. The forums are an excellent place to ask questions and get help, but please search for the answer before asking the question!
Thanks for using this tutorial! Please send any questions or comments to firstname.lastname@example.org