nodraw brushes cannot cause a leak (never ever). the thing about nodraw is that they aren't see through. but rather just doesn't draw/render anything where they are.
- they're completely solid. both to players/weapons and to visibility. (you cannot see stuff in an adjacent room even if the joining wall has nodraw texture).
compilling with hammer: unless you add a certain tag that lets it compile in the background (and consequently slower), hammer will use all the CPU resources it can. - this isn't wrong, and is what is supposed to happen so don't worry. for certain parts of the compile, it can appear to get stuck, but it's still working. it's just got a lot of work to do.
generally when i want to compile with lighting on a map i switch on the TV or go get something to eat because it can take 5-10 mins depending on the complexity of the map.
having said that though, my 1st "outside" map took 2.5 hrs for it to compile (i didn't understand properly how to use func_detail or building to grid
). so i suppose that gives a good idea of just how long a 1st map can take to compile.
if your vvis process is taking a while, that's implying that you've got a lot of complex shapes in your map as basic world brush geometry (alternatively it means that the map is just simply VERY big, because a new area is defined every 1024x1024x1024 hammer units regardless of what else is on the map). a rule of thumb is: if it's not building the edges of your map, or the edges of the rooms/buildings of your map, func_detail the brush (by selecting it and pressing CTRL+T). - this helps the compile process because vvis likes simple geometric areas. that means it can break the world up in to fewer areas, and fewer areas means less crosschecking about whether one area has line of sight to another area (which is what vvis actually does).
in terms of leaks:
when you compile your map, select bsp as the only option, and check the don't run tickbox. if there's a leak on your map, the compile log will say so (and usually have a few other things pop up like "invalid content solid...").
after that's done, you can in hammer go to view--> load pointfile.
this will display a red line that goes from one of the entities on your map and trace a path to the "void" (which lets you find the leak).
another thing: if there are no entities on your map, then it will have an error compiling, because the compiler won't be able to tell which areas are supposed to be the "inside" of the map and which areas are the empty void.
and finally: maps have to be sealed. even outside areas are actually sealed boxes. you seal your map by building brushes around the edges and texturing them as "toolsskybox". - the goal is to make it as tight as possible to the rest of the map's world brushes, to help keep the shape of the map as simple as possible.
in an emergency situation (or for pre-release testing) you can use the cordon (
) tool to surround your map in a box. that will make sure you have no leaks to the void. but don't do this when you're planning to release your map, as it's quite inefficient compared to building the walls of toolsskybox yourself.
- don't worry about the textures on brush faces on the outside parts of a map, as these will automatically be ignored by hammer when it compiles the map (same for all world-brush faces that are completely covered up by other world-brush faces)
i hope all that helps.