The
reason I have updated / re-written this
tutorial is that since I posted the tutorial I
have
discovered some new evidence that must be
brought forward, i.e. I actually have a fair
idea about it now. ( got to cover my tracks)
The
problem:
Well its quiet
simple really when you have created your
stunning new map in q3r you want to make it no
an equally stunning bsp. Whilst compiling the
bsp process converts your geometry and brushes
into hard engine worthy bits,... ? confused
yet ?
Imagine that
the compiler fills your whole level with
water, if there is a leak it will leak 'bsp'
into the void. You might well say I know that,
but it still works. To those people i would
say make an aas and try to use bots... doesn't
work does it ??? Ok then I'll just put a huge
box around my level ! Are you a maper or what
?
How
to find the blighters:
The easiest way
I have found is to compile your map, "woah
! hey now" I hear you say. I use q3build
a handy gui compiler front end
(http://q3build.gamedesign.net) to compile, I say compile but it isn't really. open q3buid
by using the q3build menu in q3r (need plug in
to be installed) or just close q3r and open it
normally. set it so it looks like this.
this means that
you will not perform a vis or light compile on
your map. click the options button under bsp.
you should
check the leaktest box. this is exactly what
it says it is. it performs a leak test on your
map. click ok then click the build button
to get the test underway. it should simply run
a leaktest on your map. the object of this is
to produce a pointfile ( mymap.lin
) this will point you to your leak.
if the test
fails you have a leak and it will tell you so,
otherwise keep on mapping'. open q3r up or
switch back to it. now go to the file menu and
click on pointfile.
this should
draw a nice fancy red line all over your level
like so.
this shows you
where to find the leak. the easiest way to
look at the line is to use either the misc
menu [ misc>next point, misc>previous
point] or use ctrl +
shift + k for the next point and ctrl
+ shift + L for the previous one. you
will notice a point where the line goes from
inside your map to the void, this is your
leak.
How
to fix them:
The main way to
avoid leaks to start with is just to make sure
that all your exterior walls ( walls that make
the hull of your map ) are at least 16+ units
thick.
1)
The Hole.
This is the
easiest problem to fix just plug the hole.
Make sure that you try to pull around existing
brushes. its not worth adding to your brush
count just to plug holes if you can move
others to fill it.
2)
Thin brushes.
Sometimes if
your brushes are too thin they will leak, so
make sure that if you are using thin brushes
you place a caulked brush behind it to block
the bsp process.
3)
Details
Detail brushes
are not included in the bsp process so they CANNOT
be used to block the hull of your map. if the
line goes through a wall and you think eh? err
?
press ctrl
+ d this will toggle all your detail
brushes on/off this way it makes it a lot
easier to track down the hole.
4)
Curves and patches
They are pretty
much the same as detail brushes they don't block the bsp process so if you try to compile
you will have a gaping hole. good working
practice dictates that you should ALWAYS
caulk behind curves anyway, so to be strict
you should never run into this problem, ctrl
+ p toggles all your curves on
and off, make life easier.
5)
Entities
If you have an
entity that is in the ' void ' your map will
leak. for example if you have a door that
starts half way out of your map, it will leak.
if you have a target_speaker or
misc_teleporters etc.
6)
Hull textures
Make sure that
the exterior hull of your map is not textured
with shaders like noclip, weapclip etc. these
shaders will not seal your map and will leak
bsp into the void.
Hints
and Tips:
The first tip
would be planning, think about how your map
will connect and the general layout. some
people like to draw their maps out on paper
first or make a rough 'sketch' in q3r.
secondly as you build your map after you have
completed a room / area plug up the exits and
do a quick leaktest to check the room for
leaks. ( works for me )
Finally:
repeat from
start until your map passes the leak test!
Hope this is
more concise than the last one I posted, good
luck and may the force be with you, "yeah
right"
Neon, 2pinball@cwcom.net