Converting Brushwork
This section will help you out with converting brushwork in your old Half-Life 1 map to the Source engine, or help you get started with Source based mapping if you are familiar with Half-Life 1 mapping.
For more reading on other aspects of map conversion, see Source Mapping for Half-Life 1 Mappers.
World Brushes
All your world brushes should be fine without any changes.
Basic Brush Entities
Let's start with the two core brush entities you're probably familiar with in Half-Life 1: func_wall
and func_illusionary
.
func_wall
In a nutshell, if the func_wall
doesn't have a name or any kind of special rendering property, just convert it to a func_detail
. The func_detail
entity is new in Source. It is basically a func_wall
which has no special render properties or any other properties. Like any brush entity, they do not block visibility. There is one exception about func_detail
and render modes. If you are using a Half-Life 1 rendermode SOLID (an old "{" texture) then go ahead and convert the brush to a func_detail
. It will automatically be rendered as it should be.
If you have func_wall entities with names because you are targeting them with an env_render
for example, make the brush a func_brush
. Because you are probably doing something a bit more complex, you may wish to explore the new capabilities of Source and find some other way to get the same effect you are using.
func_illusionary
These haven't changed in Source, so you should be able to just leave your existing ones as-is.
Rotating Doors and Other Entities with Origins
In Source, you no longer need to place an ORIGIN
texture brush tied to brush entities needing an origin. Instead, all brush entities now have an origin point associated with them. You can see the origin point as a small "+" symbol on the brush in Hammer's 2d views. To move the origin, click on the "+" and drag it to a new location. You may want to zoom in a bit to better be able to select the point. Place this origin point where you want the rotation axis to be for your object. So if you have a brush based func_door_rotating
, put the origin on the side of the door you want it to rotate about.
Trigger Brush Entities
Brush based trigger entities the remain the same as in Half-Life 1, with a few difference. There is still a trigger_once
and trigger_multiple
entity in Source. When converting, texture all your trigger entities with the new tools/toolstrigger
. The bigges change with triggers is how trigger entities target things. Targeting entities in Source is rather different than in Half-Life 1, but much more powerful and useful to the mapper. For more information on targeting and triggering, see Converting Entities.
Ladders
If you have any func_ladder
entities in your map, you should texture them with the new tools/toolsinvisibleladder
material. Other than that, you won't need to change anything.
Water
If you have water in your map (func_water
or otherwise), convert all the brushes into world brushes. If the water has a targetname, convert it to a func_water_analog
. Then texture them with a water texture from a Source. Paint all the sides of the water brush not visible with tools/toolsnodraw
material. There are a few special rules for using water in maps, which are covered in Adding Water.
Special Materials and Textures
There are a few new materials available in Source which you will want to get familiar with. Below is a list of basic materials you may be familiar with that you need to convert. There are additional special materials available in Source however we're only covering the ones with equivalents in Half-Life 1.
tools/toolsclip
This is the same clip texture you are used to in Half-Life 1. It has the same behavior as you are used to. Replace all your old CLIP textures with tools/toolsclip
.
tools/toolsnodraw
If you are familiar with the NULL texture from Half-Life 1 mapping, then you will understand this new material. Basically, any face textured with this new material will not be drawn. It can be used to texture faces of brushes you know the player will never see. Since nothing is drawn on these faces, they won't add to the load on the engine to draw them. Replace all your old NULL
textures with using the old SKY
texture to create textures that don't draw, also replace it with tools/toolsnodraw
.
tools/toolsskybox
This is the same as the old SKY
texture. Replace all your SKY
texture with the new tools/toolsskybox
material.