Normal time range for large compile ???

Discussion in 'Mapping Questions & Discussion' started by Open Blade, Sep 19, 2008.

  1. Open Blade

    Open Blade L7: Fancy Member

    Messages:
    439
    Positive Ratings:
    34
    I just wanted to ask several of you about compile times. I am doing a full compile and as we all know, vvis takes the longest time of the 3 steps. Now, I do have a very detailed medium sized map with alot of stuff going on but I have done a good job with bringing the skybox close to the playing area (no, it's not a big cube) and I have also done a good job with using nodraw and also func detail. I have even used a few well placed hint/skip brushes.

    The previous map I made which is the same size the vvis was complete in 45 minutes. But that map was nowhere near as detailed as this map is. But my vvis compile time on this map is 4 hours.

    So, I am just trying to figure if that is bad or normal. Do very detailed and complex maps take quite awhile to compile no matter how well you optimize? Or is it that I just have not done a good enough job with my optimizing (and I just don't see what else I could do)? I have func_ed everything I can think of that makes sense and I don't have one big cube around my map. I used nodraw ALL THE TIME except of faces that show.

    Is my compile time about normal? What are some of your compile times on these more complex maps that we are seeing coming out of some of the members here? Give map name and compile time. Gives me something to compare to.

    Thanks.
     
  2. Earl

    Earl L6: Sharp Member

    Messages:
    284
    Positive Ratings:
    37
    I have a fairly large/complex map, and vvis takes 1:30. That is, one minute, 30 seconds. (cp_dryer) You need to make much more stuff in your map func_detail, or consider a redesign.
     
  3. Open Blade

    Open Blade L7: Fancy Member

    Messages:
    439
    Positive Ratings:
    34
    No disrespect but I don't see how a complex map of any size can compile vvis in just over 1 minute on the normal setting. I mean, when I created my first map which was just a single spawn room (350 units by 350 units) vvis took about 45 seconds to compile that, and you're telling me your fairly good sized detailed map takes just 45 seconds more then my single spawn room with nothing in it? I mean, you must be using the worlds fastest super computer or confusing vvis with bsp or something. Something just doesn't seem right with that.
     
  4. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,573
    My map Avante (which you can check out under "[wip] cp_avanti_district") on these forums to see how complex it is. Took about 50 minutes FULL compile. about 20 minutes on fast. Baring in mind, that's 95% optimised. IE the geometry is extremely basic behind all the detail brushes etc. Also controlling the process with hint brushes reduces vvis confusing itself over complex geometry you may have. Simple leafnodes are prefered..

    Er.. there's a link to my map so you get an idea/comparrison. http://forums.tf2maps.net/showthread.php?t=2296&page=6

    Can you show us what you have and the more experienced guys could probably tell you very accurate predictions of how long it would take, if they beat me. Of course, it also depends mildly on the quality of your computer system.
     
    Last edited: Sep 20, 2008
  5. Jazz

    Jazz L5: Dapper Member

    Messages:
    240
    Positive Ratings:
    23
    45 Seconds just for a spawn room? That takes me about 10 seconds at the most! Maybe you just have a slow computer.
     
  6. Open Blade

    Open Blade L7: Fancy Member

    Messages:
    439
    Positive Ratings:
    34
    NO, I have a fast system. Maybe it was a little less then that but you get the point. A full compile taking a minute, that seems just a little suspect.

    I will post a link to the map if anybody wants to help me with some ideas on how to better optimize. It's gonna be a great map and fun to play, just need to get the compile a little faster.
     
  7. Icarus

    aa Icarus

    Messages:
    2,246
    Positive Ratings:
    1,182
    45 minutes is ridiculous in itself

    http://www.student.ru.nl/rvanhoorn/optimization.php

    Before I read and applied this, full vvis took an hour to compile my map. Now vvis takes about 5 minutes.

    Also, try a quick compile and Load Portal File in hammer, and look for dense clusters of visleaves.
     
    Last edited: Sep 20, 2008
  8. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,573
    If you have a leak vvis doesn't run and your map "seems" to compile faster. It will still compile, and form a bsp. But the whole map will render as one, because vvis will not have run.
     
  9. FaTony

    FaTony Banned

    Messages:
    902
    Positive Ratings:
    160
    Well cp_coast takes 1 second to vvis. I've done 30% of the map...
     
  10. Open Blade

    Open Blade L7: Fancy Member

    Messages:
    439
    Positive Ratings:
    34
  11. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,573
    I'm taking a look now, and even compiling it myself to see how it fairs.

    From what i can see you have a fair amount of geometry that wont block line of sight and could be func_detail'ed. Infact most of it. Even the central building. Unless you fill it with hint brushes at diagonals.. it's only lengthening your vvis compile time. Though, imo, a longer compile time is a worth while sacrifice for good ingame performance. You will only compile it a few times, but people will be playing it for how ever long the game and it's custom content lasts for.

    Your compile is taking a while, the most significant thing i can see so far (before i comment on the log) are a lot of windows that allow you to see through several "area's"; like, from a room, outside, you will see into another room, and through a window on the other side (back to the outside), and then into another room on the other side of the map. This will reak havoc with vis.

    This is a thing that nearly all amatuer mappers will do when they create games without understanding the engine they are using. Your map is fine, it looks nice, but is badly designed in consideration to performance.

    I'll comment on the compile log when it finishes.
     
    Last edited: Sep 20, 2008
  12. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,573
    Double post for the bump*

    First things first; Hint brushes. You need to cut your map up into sections more. You have large leafnodes that are rendering a whole lot of geometry. Hint brushes at windows are fine but they are more useful than just that.

    All that compile time is going into the maths of figuring out what is being rendered from where. Although there is not much "where" to figure out there is a whole lot of "what". Your portal compile time was tiny but your portal flow is friggin massive.

    From the looks of the vmf you need to add more intersecting hint brushes across your map. horizontally and vertically.
     
  13. Icarus

    aa Icarus

    Messages:
    2,246
    Positive Ratings:
    1,182
    I loaded the portal file, and the visleaves are a mess

    In addition to hint brushes, You need to func_detail a lot more crap

    I recommend reading the section about func_details in the tut I linked: http://www.student.ru.nl/rvanhoorn/...il&PHPSESSID=0fa301869a6b9b4cdc10638343476ebf

    Right now your map looks like the BEFORE picutre in Section 3.

    A lot of your structures cannot be entered, but have complex geometry, so func_detail the walls and put a nodraw box behind them.

    ledges and platforms could also be func_detailed, as well with protruding doorways and angled brushes (your roofs)

    You could also func_detail all the walls and pillars inside the buildings, as well as some of the .small structures

    Unless the brushes are necessary in blocking vision to areaportals (which you have none. I suggest you put some areaportals in) you should func_detail them.

    Have you checked out the VALVe maps?

    Load them and hide all props, entities, and detail brushes, and you can see most of their rooms are just boxes (but they don't seem that way in game, do they?)
     
    Last edited: Sep 20, 2008
  14. FaTony

    FaTony Banned

    Messages:
    902
    Positive Ratings:
    160
    Yes, real world geometry should be a bunch of boxes.
     
  15. Open Blade

    Open Blade L7: Fancy Member

    Messages:
    439
    Positive Ratings:
    34
    I have decompiled maps before and noticed massive hint brushes criss crossing the map, both vertically and horizontally but I don't understand how you go about deciding just where to place them. The windows and doorways is easy to understand. I mean, is there a certain height in units you put a hint brush in the sky, what about vertically, how do you calculate just where you need them. I have read all the tutorials on this stuff but sometimes it takes somebody explaining how it applies to one of you maps before you fully understand.

    I totally appreciate your help guys. I want to get to that "next level" of designing and I think this optimization stuff is by far my biggest obstacle. I think from looking at the map you can see I have a pretty good grasp on game play entitties, how to make a good looking map and I do pretty good at textures too.

    So, I now know that I should make rooms and stuff into boxes and then put the fluff around those. But I'm not going to remake this entire map from scratch.

    What specific things can I do to get my compile time down? I'll start a list of things some of you have mentioned. Please, add what ever else you can to help.

    1) Lets start with doing the hint brushes to disect the map. Where should I place those?

    2) What else to func detail? I pretty much have all the beams and stairs and roofs func_ed already. I even func_ed the entire row of small houses on the far side away from the spawn base because they are not blocking any line of sight.



    I forgot to mention, there is one tricky thing that I cannot figure out why it's happening. I tested for leaks and there are none. I get full light bounce everywhere except one face of one building. It's total black. It's the to the left of the downstairs spawn room behind the model fence. The front face (facing towards the fence) is black. You can see I even put a spot light close to it shining onto it to try and light it up but that's not working. I checked for leaks in that area and can't find any. I made sure the func detail roof is not touching the skybox. Not sure what it could be.

    Again. I totally thank you guys for your assistance.
     
  16. Open Blade

    Open Blade L7: Fancy Member

    Messages:
    439
    Positive Ratings:
    34
    3) I found that on alot of my windows, I did a cut out so the building texture didn't poke through the model window and show. When you turn props off, you can see the square gaps. I am filling those gaps in with a nodraw block. That will make the face of the wall flat again and not cut up the leafs but you will still be able to see the window prop. Right?
     
  17. Icarus

    aa Icarus

    Messages:
    2,246
    Positive Ratings:
    1,182
  18. Open Blade

    Open Blade L7: Fancy Member

    Messages:
    439
    Positive Ratings:
    34
    Well, I haven't added anymore hint brushes but I did go through and finish filling in all the window areas (32) and turned a few more things into func and decided to see how much that alone did. Apparently quite a bit. vvis went from 4.5 hours to 1.5 hours on that one step alone. That doesn't shock me because if you think about it, each window is like having 4 steps that are not func_ed since there are 4 sides not flush with the wall. Multiply that x 32 and you essentially get 128 stairs that are not func-ed. I remember one time I fogot to func a stair case on one of my maps and it was only 10 stairs or so and it added like 2 hours to the compile. I still want to add the criss crossing hint brushes in sky but not sure how to figure out just where they go. That link posted above really doesn't go over that. I've been to that link before.
     
  19. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,573
    you just want to make your leafnodes smaller. I'm not sure how else to explain it. Whilst icarus linked a valid tut it's not quite got what you want to know about larger area optimisation (except maybe the end, if applied with intuition). Take a look at granary decompiled.. that would probably help you better understand. As that has large area's covered by hint brushes. Each brush limits the extent of a leafnode and thus what will inevitably be rendered ingame via the leafportals.

    That isn't necassery, just plonk a hint brush there just like a normal window. A nodraw would block light and put nasty shadows over your window models.
     
  20. Earl

    Earl L6: Sharp Member

    Messages:
    284
    Positive Ratings:
    37
    Here are some reference shots for how much you should make func_detail:

    Full Detail:
    [​IMG]

    World Brushes only:
    [​IMG]

    Full Detail:
    [​IMG]

    World Brushes only:
    [​IMG]
     
    • Thanks Thanks x 1