The purpose of this tutorial is to introduce you to some of the basic concepts you'll need to understand in order to begin mapping. Most of the time you are just expected to know what entities, FGDs and BSPs are, but when you first open a map editor (hey, what's a map?), things can look really confusing.
Hopefully after reading this quick tutorial, you'll be able to understand what's going on in the editor, and the basics of how it works. We're dealing with Hammer here, but the principles are the same throughout all Goldsource editors.
Hammer is the editor of choice when it comes to Half-Life, although there are others that can be used. It's relatively simple to set up and use, and most Half-Life mapping tutorials on the web work with it. However, it's all a bit daunting at first, and getting the application ready to build maps is the first hurdle to overcome. Details on how to set up hammer can be found in the Hammer setup guide tutorial
. Follow that, and you should be all ready to go.
The structure of a map
3D first person shooters have always relied upon some form of three dimensional construction for the player to move around in. Thus, Hammer and many other editors give you three side-on 2D views, in addition to the 3D view. The 2D views are useful for editing, as your computer is designed for 2D interaction. The 3D view is useful for viewing the level as it would appear in-game. The 2D views in Hammer are: top (x/y), front (y/z) and side (x/z). You will need all three to make a proper map, so be sure to become accustomed to using the 2D views.
Maps are made up of two main things: brushes
. There are different skills involved when dealing with each of these, so some people will prefer fiddling with entities, while others will enjoy solid construction. But you need to understand both in order to create a good map.
- Brushes can also be called solids. They are the structural things in a map: walls, stairs, terrain, and so on.
- Entities are the active things in a map - they light it up, they give it sound and movement, they create monsters and control them.
- Point entities are pure logic objects - they are invisible to the player, but provide important functionality such as monster spawn points, lights, or sounds.
- Brush entities are physical objects with extra logic - such as doors, water, or trigger areas that cause something to happen when the player walks through them.
An extra mapping element in Hammer is grouping. A group is a collection of objects (entities or brushes, or even other groups) that acts as a single object when you select it. This makes it easy for you to move around complex collections of objects without worrying about the objects within the group moving about relative to each other. Grouping is only an editing feature and doesn't have any effect on the final result in-game.
Hammer works with two formats: RMF (Rich Map Format) and MAP (Quake map format). The RMF format should be the format you use at all times, as it supports features in Hammer such as grouping, colours, visgroups, and cameras - MAP doesn't support these features. The MAP format is only used for the compile stage, and Hammer will automatically convert your map to the correct format during compile. Other editors may use alternative formats by default, but they will support RMF too. Using RMF ensures that your file can be opened in any editor, so you should use it for all Goldsource maps. For Source, the format you should use is called VMF.
The RMF file as it is used in Hammer cannot be used by Half-Life. First, it has to be compiled
. This is a complex process involving various programs that combine the brushes, entities, light, textures and other information into a single .bsp file for use in the game. The default compilers (BSP, CSG, RAD, VIS) are included with Hammer, but it's a good idea to download newer build tools as they have been improved significantly over the years. As of 2018, VHLT
is the most up-to-date toolset to use. Hammer needs to be told where to find the compile programs (see Tools > Options > Build Programs
- *RMF*: The format used by Goldsource editors. You should use this format for your maps.
- *MAP*: The format used by Goldsource compile tools. You shouldn't use this format directly, let the editor and compile tools deal with it for you.
- *BSP*: The format that is played by the game. This is the file that you distribute when you want other people to play your map.
- *VMF*: This format is used in the same way as RMF, except for the Source engine. If you're mapping for Source, you will be using VMF instead of RMF in Hammer.
Other files in your editor
Various files are included with Hammer that are crucial to mapping. As already mentioned, a set of default compilers are found in Hammer's main folder, but there is also an FGD (Forge Game Data) file and a lights.rad file.
- FGD: halflife.fgd is a kind of intermediary between the editor and the game engine. It stores information about available entities, their properties and flags, and how they look in Hammer. The file provided with Hammer is fine, but you can find custom FGD files online with extra useful information.
- lights.rad: This file stores information about 'texture lights'. It lists the names of textures that act as lights, along with their colour and brightness. .rad files are used only by the compile tools, not the editor.
Mapping for other mods
Since mods are now more popular than the original game, you might want to know how to make maps for them. You will need a separate 'game configuration' for each mod (read the setup guide for details), and a separate FGD, which you should be able to find on the web or in the mod's install folder. Then you can simply choose which configuration you would like to work in for each map you create.
Modifications of the game often only have a few extra entities to get used to, or some changes in the way existing entities work. For CS, more information can be found in the Counter-Strike mapping tutorial
. For other mods, it's best to refer to the mod's official documentation.
That's about all there is to it. Remember, experimentation is the key, but if you ever get stuck, you know where to point your browser! Also, remember to check out the definitions page
for more in-depth explanations of many of the terms used in this tutorial.
Now that you're familiar with the concepts of mapping and you've set up Hammer, it's time to continue to: Tutorial: In the Beginning Part 1