The Hammer World Editor is a video game mapping tool for the GoldSrc and Source engines released by Valve Software. It relies on Binary Space Partitioning to compile environments, as popularized by John Carmack for Doom. It requires all point entities to be enclosed by brush entities, and brush entities must not be too big as not to result in performance issues shared by the compiling program's PortalFlow operation and in-game rendering. It was initially released alongside Half-Life, Valve's first game, to allow for easy modification by the playerbase. Hammer's ease of access attracted many modders and eventually led to Valve hiring several to allow for official release of their mods. This resulted in the Day of Defeat, Counter-Strike, and Team Fortress series as products of Valve. These games (Day of Defeat being excluded) now have several franchise installments, ample external media taking the form of animations and comics, and loyal playerbases.
As hammer relies on Binary Space Partition, it requires things to apply the space partitioning to. The main catalysts of this process are Brushes, or more complex Brush Entities. Brushes are 3D objects that lay the base of all Source engine maps and are composed of flat faces. By default, a brush will have 6 faces (as does a cube), but the amount of faces can be manipulated via:
Brush entities are brushes that can relay inputs and outputs, with brushes of the "trigger_" and "func_" prefixes being used most prominently. Trigger brushes take note of when a type of object (of which is specified within the entity's "Flags" tab) collides with the trigger. This is mainly used to trigger outputs when a player steps into the trigger. An example may include a func_movelinear receiving the 'Open' input when the player touches the trigger, resulting in the movelinear moving in its speficied direction with its specified speed and distance.
Point entities are entities placed with the Entity tool. These may include anything from static 3D models like barrels to player starting points to drivable vehicles. The entity's class is specified by it being set by the mapper. Point entities are most often used for props, 3D models that aren't brush based. These props are used to detail a world, bringing it to life.