info and resources for this modern brush-based level editor tool
TrenchBroom (or TrenchBroom 2, or TB) is a free open-source cross-platform 3D level editor with modernized Quake-style brush-based construction and ongoing updates / support. It is widely used across several modding communities as well as commercial projects.
We recommend TB as a decent general purpose 3D level editor tool that potentially works with multiple game engines on Windows, macOS, and Linux.
TB departs from previous Quake-era level editors to emphasize 3D construction in a single view pane.
Clipping planes can be 3D, and all brushes are automatically validated for convexity. TB is also great at resizing many brushes at once, with SketchUp-like handling of shared planes and contextual extrusion. For its construction capabilities alone, we recommend TB for building blockouts, but it also allows surprisingly detailed modeling and texturing when art passing.
TB's vertex manipulation and automatic brush validation, by Benoit "Bal" Stordeur
TB's visual UV texture editor with "mapversion 220 (Valve)" style skewing, by Benoit "Bal" Stordeur
building a 3D torus using TB's brush tool, clipping tool, and CSG merge by Benoit "Bal" Stordeur
TB currently has only basic tools for scripting levels. It parses a .FGD file for entity definitions, and users can create and edit keyvalues to script gameplay, with some limited autocomplete and colorpicker support. This is suitable for simple Quake-style scripting with entity chains, but lacks the functionality of something like Hammer's extensive entity I/O system.
Outside of Quake modding, most users do their level scripting in the Unity / Unreal / Godot editor itself, and make minimal / no use of TB's entity support. But if you really want to implement custom entity support for your game, you must write your own .FGD file and create your own TrenchBroom game configuration.
Is TrenchBroom a good choice for your game engine? There are two levels of technical compatibility to consider:
- .MAP support: can your engine import or compile .MAP files?
- TB's main file format is a Valve variant ("version 220") of text-based Quake .MAP format.
- Your engine needs some sort of compile tool or plugin to process .MAP files.
- Optionally, you can also parse / import compiled .BSP files instead. However, Quake 1 / Half-Life BSPs strip out all brush information, which makes convex collider calculation impossible.
- Worst case scenario -- export brushes to .OBJ but lose all entity data
- Integration: can TB hook into your game assets and display them?
- To place enemies, doors, or other game objects, the level editor needs to import a file that lists all these types and their properties. TB's main entity definition format is a WorldCraft .FGD file with special extensions just for TB.
- To preview textures and 3D models in the 3D camera view, TB supports Quake-era file formats (.WAD, .MDL) or common 3D formats (.OBJ) or 2D formats (.TGA, .JPG, .PNG) via FreeImage. No BLEND or FBX support... yet.
importing .MAP geometry into Godot Engine using the Qodot plugin
- Bal's Quake Mapping Tips & Tricks (2022) by Benoit "Bal" Stordeur is a crucial must-read for intermediate / advanced Trenchbroom construction techniques. Although Stordeur is working in Quake, his advice is applicable to using Trenchbroom for any game.