MAPPING: Leaks

*map* *map* *map*

MAPPING: Leaks

Postby SteveMcqueen » 04.08.09

a map is a set of brushes within empty space. the players spawn within, and should never be able to look into this empty space a.k.a. the "void".

if they can, it is usally the reason for a "leak" when compiling a map. when it happens, usually it is easy to spot the mistake when you follow the red line drawn in the radiant after a leak happened. the line goes from an entity (i.e. light or playerspawn) to the place where the opening into the void is.

for me also a leak happened because a light was placed within a brush. but this one was hard to spot, because the red line was drawn just outside the box (the map), but it did not start at that mentioned light, and it did not pass an opening (map was completely sealed, no void-look was possible).
i found the light via MISC>>find brush>>entity number, after i looked up which entity produced the error in console (or debug window, cant remember), and after placing it right, all was fine.

Code: Select all
What is a leak?

A quake3 map is a hollow space made up from a number of convex volumes (Leaf Nodes) contained within a solid outer hull. The Leaf Nodes "outside" the map are discarded (pruned =) after the BSP Tree is created.
There is a "leak" if you cannot separate the Entities on the inside from the "void" outside the radiant grid. If there is a leak q3map generates a detailed error message (seen if you use q3map -v) and records the path of the leak to the Pointfile "mapname.lin". Usually a leak will be displayed in Radiant as a path from the origin of an entity to a Leaf Node touching the area outside the radiant grid without passing through a solid brush.
SteveMcqueen
 

Re: MAPPING: Leaks

Postby SteveMcqueen » 04.15.09

when having a leak where no leak can be, means the red line goes straight through a brush (or through a closed seam), just recreate the brush, fixes the leak usually.

leaks can also happen when an entity is placed inside a brush.

when creating ramps, draw the walls bigger and cut them with the clipper tool.
SteveMcqueen
 

Re: MAPPING: Leaks

Postby SteveMcqueen » 04.15.09

leaks also occur when setting trigger_location entity onto very grossly cut/clipped brushes...
SteveMcqueen
 

Re: MAPPING: Leaks

Postby SteveMcqueen » 04.22.09

the reason why leaks are bad is that q3map2 cant compile the vis stage with a leaked bsp stage.

compiling goes in three stages: bsp/vis/lighting, plus bspc [iirc] for bots, every stage has to be finished before the next one is possible
SteveMcqueen
 

Re: MAPPING: Leaks

Postby SteveMcqueen » 10.25.09

from the train thread:
NO LEAKS ;DDDDDDDDD (finally)

after starting all over now all works as expected.

next moves are:
- adding bombspots like shown in the picture above
- make it possible to crouch under the trains and make the wagons al lil bit higher so you get slight falling damage (when falling of them, as long as you walk off onto the train tracks you're fine, because it is a difference of about 1 (!) unit, that decides if you get damage. this will be a test build, i will make another without it if it sucks too hard =P )
- cleaning brushwork
- some really bad texturing, just enough to have some colors in it for orientating.

edit: SV_SetBrushModel: NULL sucks hard....
There are several possible causes for the SV_SetBrushModel: NULL error, if in trying to fix it with one method you find the solution doesn't work then that means the error is being caused by one of the other alternatives.

Corrupted brush in the map

During the course of manipulating brushwork these 'broken' brushes happen occasionally. They're often 'phantom' brushes, brush objects that you can't see in the editor but appear in game when once a map has been compiled.
How to fix a corrupted, broken or phantom brush

To fix this first try the 'brush cleanup tool' from the main menu (it's location may vary depending on which version of GTKRadiant you're using.

If that doesn't work make sure you've not got any objects hidden and make sure the show/hide options in 'View > Filter' are set to display everything.

Draw a brush in the editor and resize it so that it covers the whole map. Leave it selected.

Right click and from the pop up menu choose 'Select > Select Inside'. This will select everything in the map (that was contained inside the brush).

Go to 'File > Save Selected' and save the selected brushwork to a completely new and clean file.

If the error was caused by a phantom brush doing this should remove it from the map.

Bad func_group

A collection of brushes that have been 'connected' together using the editors func_group 'entity' has got corrupted somehow, usually by the presence of a bad brush in the group, or in some cases by the accidental deletion of a brush from a group (it's usually best to ungroup, delete and then regroup).
How to fix a bad func_group

The only way to fix a bad func_group is to ungroup the entity and clean the brushwork up (using brushcleanup) before regrouping the objects back together.
Incomplete or partial brush entity

This is the most likely cause of the error and it happens when trying to make brush based entities that involve the 'origin' shader. The origin brush is 'entity specific' which means it can't exist in the world on it's own like other brushes, it always has to be grouped with other brushwork to form an entity; func_door, func_mover, func_rotate, func_script_mover and so on, all of these are brush based entities that are comprised of normal brushes and an 'origin' brush. If an origin brush is left in the world ungrouped with other brushes the 'Null' error results.
How to fix an incomplete or partial brush entity

You need to track down the offending orphaned origin brush. Once found either delete it, or regroup it with whatever brushwork it was supposed to have been grouped with. You may need to ungroup the entity, select the origin brush and then regroup.

Improperly placed 'entity' texture

Related to an orphaned origin brush is the accidental improper use of entity specific textures/shaders. This happens when an entity shader is 'mixed' with other normal textures on an object. More often than not, it's the 'origin' texture/shader that's been misplaced on one or more faces of a door or similar brush based entity (see above). Entity textures/shaders can't be mixed in this way (unless it with specific instances of 'nodraw'), they have to be placed on all faces of a brush.
How to fix improperly placed entity textures

Again as with an orphaned origin brush, the offending texture will need to be tracked down and corrected. Look at all the brush based entities in the map to see if any faces are covered in origin (or areaportal, clusterportal and so on)
Code: Select all
Design note : If you're working on a big map that has a lot of real-estate being used, tracking a single faces on any given brush can be very time consuming so here's little 'trick'. Simply draw out a block and then texture the whole thing in 'origin' (or whatever texture you think may be causing the problem). Once done, select a face and then press 'Shift+A'; this selects all brush objects that have the initially selected texture applied to it allowing you quick and easily visible reference points as to the location of likely offending brushwork.


edit: deleting all entities and ladder brushes did the trick.
bombspots and playerspawns are set, after some texturing a playable beta for bombmode is within reach yay!

other idea would maybe have been:
Code: Select all
SV: SetBrushModel_NULL
That one is easy to fix. Go into your map, and hit L. click the plus button. Zoom out on your map grid. Click each entity, until you find one that does NOT highlight anything. Delete that one. Simple fix
SteveMcqueen
 


Who is online

Users browsing this forum: No registered users and 4 guests

Misc