Hammer Compling


Gurney Halleck
10-21-2005, 07:45 PM
I've just stared mapping, so forgive me If I'm asking noobish questions. I have a Hammer level started, using CS textures and what not, that is essentially 3 dozen blocks/brushes, all enclosed in a skybox. The problem I'm having is compiling the map - it's taking forever on the portal flow portion. Task manager says 100% CPU (vvis.exe) usage and that Hammer is not responding. This all started when I added stairs. Think long thin slab on top on long square blocks and the slab is 2 units larger then the block (over hang by 2 units). If if I take off the top slab it will compile although it seems like it takes a long time. 3.2 GHz with 1 Gig RAM but only using 400MB total memory (Task manager again). Any ideas? What more info can I provide? Where do I look for problems? I'm always skeptical at 100% CPU usage. Is this normal?

Cheers

meelo
10-21-2005, 11:17 PM
You might want to skip over to the Valve wiki and check out the tutorials and such listed there: http://developer.valvesoftware.com/wiki/SDK_Docs

vis will take a long time if you have a lot of complicated or intersecting brushes. A non-entity brush intersecting another non-entity brush is a big nono. It can greatly reduce performance of the map as well as cause huge vis compile times.

it is normal for vis, rad and csg to eat up 100% of your CPU and hammer will always read as "not responding" while compiling. I've never had a map where vis took more than about 5 minutes to finish, though. It was usually rad that would go upwards of 30 mins to several hours, so maybe I'm just lucky... or perhaps better at brush placement than I thought.

In any event, scan your map again for intersecting brushes and brushes that are smaller than 8 units. Wherever possible, make complicated geometry a func_detail, as this will take a lot of the load off of vis. Make good use of the nodraw texture for areas that cannot be seen or reached as well as to close areas behind entities or displacements that might otherwise cause leaks.


If you're not sure how or when to use func_detail or what intersecting brushes etc mean then I'd strongly recommend you to check the wiki and do a google search for a few more tuts as well as scan this site for more tips.

To quickly clarify intersecting brush, I mean any two or more brushes that would end up looking like a + where one brush goes completely through the other.

I tend to get long-winded and confusing when trying to explain things, sorry if I just made things less clear for you.

Gurney Halleck
10-22-2005, 08:37 AM
Well, I don't have and intersection brushes as you describe, however I do have brushes stacked on top of each other so that the faces of the two overlap and share the same plane. Is this the problem? How do you stack brushes or is that just not done? I will look up the func_detail method. As aside, is anybody else disappointed with the Verc wiki, in practically the tutorials? The tuts that were in the Valve-erc seemed to be better quality and more complete.

Thanks for your help.

Furyo
10-22-2005, 08:40 AM
func detail any brush that isn't touching the void or shouldn't block the rendering and you'll improve your compile times ten folds. Also use nodraw texture on any and all non visible faces of your brushes.

meelo
10-22-2005, 04:28 PM
having two brushes meet on the same plane, like a T, for example is good. So long as the brush stops on the same plane and doesn't continue through the other brush.

for your stairs you would have many brushes layered on each other which wouldn't be a problem, however, with your small 1-2 unit lip that you're leaving could lead to large vis times as well.

pretending your room is a simple box shape, what I would suggest is make your room (here comes some amazing ASCII art)
Top:

|------------------|
|...128 units high...|
|==============|
|.........................|
|.... 0 units high.....|
|.........................|
|------------------|

then make your stairs wherever you need them to be:


|------------------|
|.........................|
|==============|
|...|-|..................|
|...|-|..................|
|...|-|..................|
|------------------|

Your room is still a box, now you have stairs in the middle.

Select every brush in your steps, but none from the room and click the "to entity" button on the right. Select func_detail.

Your room, according to csg and vis, is still a box, the func_detail still casts shadows and is a solid object, but it does not block visibility so it cannot be used to close in a level. When you get more comfortable with func_detail you can start using the tools/nodraw texture where needed.

Does it make any sense?
PM me and I can try to help you more if you'd like with better illustrations.


*edited to fix ASCII for clarity.

P.S: I'm very disapointed in ALL the SDK documentation. It's incomplete, the source code is poorly commented, there are dozens of features/commands/cvars that aren't listed or mentioned without serious detectivework. It's a nightmare to the average user who doesn't have the time or the gumption to really get their hands dirty figuring things out.

I can't find anything useful on the wiki as far as compiling a physics prop properly. I haven't a clue what some of the $hbox commands mean and can't find info anywhere I've looked. I managed to hash something together by decompiling valve models, but I don't know if mine are working as they should or not.

On top of this, the wiki was started by the developers but is more or less expanded on by the community only. This means that there aren't any real facts, just guesswork and theories about commands and tools. I'm sure 90% of them are accurate, but they're often difficult to follow or only cover half of the topic before I have to do more searching to figure out the other half.

Gurney Halleck
10-23-2005, 09:03 AM
Thanks for the help - it complies now with the func_detail grouping. Here's a screenie - not much to look at.

Stairs (http://img475.imageshack.us/img475/8366/thegap200019xx.jpg)

I guess my next questions are how do you un-do the func_detail command, or is a one shot deal? What types of brushes would you not convert to func_detail?

Thnks again - Cheers

TheMiede
10-23-2005, 12:10 PM
Ooo, i see you added a little detail to the stairs, hehe. But remember there are also stairs textures. Just type in stair in the browse area of you textures.

meelo
10-23-2005, 06:03 PM
beside the "to entity" button is a "to world" button, this will change any brush entity back into normal world brushes.

It also undoes any grouping you had, so if your detail brush or whatever was really complicated, you're going to have to reselect each piece if you want to re-group them or anything.

If you need to change an entity, or add more to an existing entity, you don't have to click "to world" then "to entity" again, you can change an entity type by editing its properties and selecting a new type from the dropdown box.

If you need to add more detail, select the entity (or entities) you want to combine and the new detail you want to add, then click "to entity" again. It should bring up a diologue about adding to the existing entity or creating a new one.

Day of Defeat Forum Archive created by Neil Jedrzejewski.

This in an partial archive of the old Day of Defeat forums orignally hosted by Valve Software LLC.
Material has been archived for the purpose of creating a knowledge base from messages posted between 2003 and 2008.