erysdren's WWW site

software, gameware, strangeware

RSS Feed

Quake Engine BSP Hulls
2024-07-13

Levels in the Quake engine are built out of brushes, a somewhat nonsenical term referring to a set of geometric plane equations that form a convex solid. In lamens terms, any three dimensional shape that does not "cut into" itself at any point.

In the following image, the red line indicates a convex shape while the black line indicates a concave shape.

Jespa, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

Compilation Process

As levels are compiled from the .map format into the .bsp format, the QBSP tool breaks down the brushes into their component faces, and removes any faces that will not be visible from "inside" the level. It also cuts down the other faces to only their visible area. During this process, the original brush shapes are discarded.

For the Quake engine to handle physics and collision, some "hull" shapes must be kept in the final BSP file. Instead of keeping the entire convex brush shape, the QBSP tool "expands" the brushes to simulate collision for 3 distinct "hull sizes". These hull sizes are:

NameMinMaxAbsoluteNotes
VEC_ORIGIN0 0 00 0 00 0 0This is an infinitesimally small point, used for small objects like grenades.
VEC_HULL1-16 -16 -2416 16 3232 32 56This is the "small" hull, used for most entities including the player.
VEC_HULL2-32 -32 -2432 32 6464 64 88This is the "large" hull, primarily used for the Shambler.