Skip to main content

BSP Tree Tips

Level Design Tips

Designing a Stable Map

Hellscrag writes: Sound BSP has really to be "designed in" to be effective. Sometimes semisolids can be used as a quick-fix in a largely solid map, but things are much more reliable if you do it the other way around - use plenty of semis and try turning them solid if you have problems.

  • Avoid bad geometry (polys that are "bent", not flat) and don't go overboard with intersecting complex shapes as this can cause bad geometry, which cannot later be repaired without recreating the whole brush set.
  • Strictly structural geometry, and anything that is to be subtracted out of, should be solid.
  • All decoration brushes that aren't subtracted out of should be semisolid, UNLESS it is touching a zone portal when it should ALWAYS be solid (portals plus semis = BSP hell, for some reason).
  • If you do have a decoration involving an additive and a subtractive, intersecting the lot and re-adding it as a semisolid is often beneficial as long as it is not too complex.
  • Provide plenty of sensibly placed zone portals. Bear in mind that zones must always be sealed off completely from other zones (a portal by itself does nothing but slow things down if the spaces are joined around it). Also, unnecessarily large zone portals can cause more lag than they solve (this is why most people don't bother with CloudZones in the sky).
  • When the decorative brushes in your world are all semisolid, all BSP work becomes more reliable as there isn't such a crazy mess of BSP cuts splintering throughout the map. Semis don't make BSP cuts into other brushes. If in this situation you do get a BSP hole, turning certain semis in the vicinity solid CAN make a difference, as it cuts the BSP differently in the immediate area.
  • Don't deintersect your semisolid decorations against the world. As they don't make cuts, it's far better to leave them as simple as possible. This also allows you to move and reuse them more easily.
  • If almost everything in the map is solid, however, making one or two decorations semisolid is far less reliable a way to fix BSP errors, since the messy BSP your majority of solids will have created is far more unpredictable.
  • Try to order all zone portals to last and transform them permanently to reduce zone leakage.

Visual Example

Triskaden Station central area

In this image, the only solid geometry in view is the donut-shaped structure, which is subtracted out of. Boulders, beams, railings etc are all semisolid. Tarydium crystals are non-solid so as not to cast shadows. BSP trouble in this area was minimal.

Avoid overlapping BSP operations where possible

Techno_JF adds: There's something else that I'm surprised nobody has mentioned yet. For some reason, it's common to cause BSP errors by repeatedly adding and subtracting new geometry over a single area. If too many brushes occupy a given region, then it's bound to crop up an error at some point. I think it has to do with brush order issues, but I'm not exactly sure.