6. .map files - QodotPlugin/qodot-plugin GitHub Wiki
This Wiki is outdated and no longer being maintained. Qodot's new documentation can be found here: https://qodotplugin.github.io
Definition
.map files are plaintext files which contain definitions of brushes and entities to be used by QBSP and it's related compiling tools to create a .bsp file used by Quake as levels.
The distinction is important to note: .bsp files are highly optimized, compiled versions of Quake maps designed to be plugged directly into its renderer. This imposes certain limitations and requirements, such as an offline light baking process and necessity for maps to form sealed volumes with the potential for frustrating leakage bugs.
.map files act more like a 3D interchange format; a way to store level data in simple, human-readable form for use by level editing software.
Usage
Since Godot isn't bound by the limitations of Quake's renderer, neither is Qodot. It reads .map files directly, and converts them into level geometry using tool scripts. You don't have to worry about leaks, and combined with Godot's file-watching asset reimports it makes for a fast editor-to-editor interchange pipeline.
Any Quake-compatible map editor can be used to generate .map files, but TrenchBroom is recommended and directly supported.
Structure
.map files are structurured as a list of entities and brushes. Entities represent top-level game objects, and brushes represent convex hulls defined by the intersection of a set of planes.
Every .map file has a worldspawn entity by default, which is used to store all of the level's static geometry brushes as well as various top-level data. Entities following the worldspawn may have an origin and rotation transform, as well as a set of attached brushes. These are used to implement various interactive elements in Quake, such as event triggers, buttons, elevators, doors, and teleport destinations.
Compatibility
Qodot supports the full range of Quake-derived texture formats.
Format | Geometry | Textures | UVs | Extended face data | Collision | Entities |
---|---|---|---|---|---|---|
Standard | Yes | Yes | Yes | N/A | Yes | Basic |
Valve | Yes | Yes | Yes | N/A | Yes | Basic |
Quake 2 | Yes | Yes | Yes | Yes | Yes | Basic |
Quake 3 | Yes | Yes | Yes | Yes | Yes | Basic |
Quake 3 (Legacy) | Yes | Yes | Yes | Yes | Yes | Basic |
Hexen 2 | Yes | Yes | Yes | Yes | Yes | Basic |
Daikatana | Yes | Yes | Yes | Yes | Yes | Basic |