Level Design Overview
Brushes: the Foundation of 3D Level Design
Blocks. Wedges. Cylinders. Spikes. They may not sound like much, but these are the basic building blocks of all architecture created in Hammer. You can carve 'em, clip 'em, and manipulate 'em. You can combine these solids (also called brushes) to make any shape possible, real or imagined. This is known as constructive solid geometry (CSG) and this is the editing style Hammer uses. Creating brush solids is described in the section Creating Brushes.
Once you create a brush, you'll assign to it a texture, which is a pre-existing bitmap image created to make the brush resemble something in the real (or some imagined) world. Examples of textures include bricks, rock faces, and water.
You say you want more in your game world than inanimate solids? Well then, what you want are entities. Where brushes are "world objects" used to form the basic inanimate structure of your level, entities are the objects that move, have sound, or are interactive. An entity is anything that performs some type of operation or task within your level. Models are a type of entity.
There are two main types of entities: point-based and brush-based.
Point-based entities exist only at a certain exact point. Examples include lights, monsters and players. (Monsters do have an area, but this is defined by the game code and is not modifiable from within the map.) Some point entities are just that: points. For example, the env_beam entity, which controls beam effects, uses two point entities as targets; you place the two points and the beam of light runs between them.
Brush-based entities are entities that depend on a brush for their physical presence, like doors, platforms, and other moving objects. A trigger is another type of brush-based entity; it requires that you indicate an area or activation field which controls the trigger's operation. The model entity points at a model file on disk that is rendered by the engine.
The creation of both point and solid-based entities is described in the section entitled Creating Entities.
Putting it All Together
Using these simple components, you can create a virtually limitless variety of levels. Whether its a barren room or a vast, complex world, you'll do it by using solids and textures to create your architecture, then adding models, lights, monsters, buttons, moving platforms and a host of other entities to bring your creation to life.
Once everything is in place, you will need to compile your level by choosing Run Map from the File Menu. This is the process that turns your collection of solids and entities into a playable level that you can run in the Source Engine. Although the compiling process happens when you think you've finished your level, knowing something about this process ahead of time can save you many headaches.