@ Zeph, You say that a map should take no longer than 5 seconds on normal vis when compiling. Does mean mean no matter how big the map is, it will still take 5 seconds?
I've read FAQ on here a loads of times, and I would say that I'm pretty good now at optimization. But on some maps, specially on maps with open areas, I can't keep this at 5 seconds lol, although my fps stays at 300 with the settings maxed out.
From what I know Portal Flow calculates what can't be seen by the player(s) right? So with good use of NoDraw should alsways stay low. I make all my brushes out of Nodraw and texture afterwards, so there must be something else causing this?
Vis is the process of splitting up the interior of the map into "air" volumes called Visleafs. If a side of the Visleaf is seen, then everything inside the Visleaf is rendered, in game. In game, Visleafs need to compute which Visleafs can see other Visleafs. If there are a lot of Visleafs, then there are a lot of calculations going on in game to work out which Visleafs see other Visleafs. This will lower FPS in game.
All World Geometry brushes, that's every brush you make that has not been turned into an entity or has a certain tool texture on all sides (EG trigger, clip), will cause Visleafs to be made around it. Generally, most mappers just create their map, willy-nilly, with loads of brushes everywhere. They then add things like curved walls, spheres, boxes, ledges, etc, everywhere to make it look "pretty". However, all those additional brushes split up the inside of the map into thousands of tiny Visleafs (EG a floating cube creates 6 Visleafs - one per face). Generating these thousands of Visleafs takes time, upon compile. This is where Portal Flow takes AGES.
What you need to do is turn all these additional, complex geometry into entities, or Func_Details. These are "ignored" by the Vis process, as they are entities, not world geometry, and therefore do not create Visleafs. You should also group func_Details together if they are seen at the same time (or are in close proximity). For example, a stack of 5 crates should be made into one func_Detail, not 5 separate ones. If you hide all your func_details, and other entities, via the VisGroup options, you should have a map filled with simple empty square rooms.
NoDraw only affects in-game rendering speeds. If it does not need to render a brush face, because it's NoDraw, then it saves that calculation. This does not affect compile times at all (well, maybe with lighting, as there is no texture to light up).
Open areas are especially hard to optimise. You end up with pretty much one giant Visleafs, with the whole of the map in it. This means everything is always rendered at once. This is a flaw with the map design, as you should avoid large open areas as much as possible. Counter with issue by adding Fog, to reduce how far you need to render, or skybox walls on top of opaque fences, splitting the world at this point into two sides.
Personally, i can get nearly any "normal" map down to a few seconds for Portal flow. It just takes knowledge in what brushes to turn into entities. I mean, i bet Valves maps take longer to compile. But even they could be improved!
Optimisation (and understanding it correctly) is the difference between 95% of mappers, and professional mappers.
Your style of map does not really give well to any alternative, however. You'll have to use some careful HINTing to reduce what gets rendered in game.
There are some minor improvements to func_detailing to be done, however. EG the "beams" along the edges, you func_detailed the zig-zag bits, but you're left with a floating beam along the bottom. Add that beam to the zig-zags, leaving you with a simple flat floor for the level. (also, hide entities as well as func_details, for clarity)
Valve Software - vbsp.exe (Oct 25 2011) 6 threads materialPath: c:\program files (x86)\steam\steamapps\yaznee\counter-strike source\cstrike\materials Loading C:\Program Files (x86)\Steam\steamapps\yaznee\sourcesdk_content\cstrike\mapsrc\water_map.vmf Could not locate 'GameData' key in c:\program files (x86)\steam\steamapps\yaznee\counter-strike source\cstrike\gameinfo.txt fixing up env_cubemap materials on brush sides... ProcessBlock_Thread: 0...1...2...3...4...5...6...7...8...9...10 (0) ProcessBlock_Thread: 0...1...2...3...4...5...6...7...8...9...10 (0) Processing areas...done (0) Building Faces...done (0) Chop Details...done (0) Find Visible Detail Sides... Merged 350 detail faces...done (0) Merging details...done (0) FixTjuncs... PruneNodes... WriteBSP... done (0) writing C:\Program Files (x86)\Steam\steamapps\yaznee\sourcesdk_content\cstrike\mapsrc\water_map.prt...Building visibility clusters... done (0) Creating default LDR cubemaps for env_cubemap using skybox materials: skybox/sky_day01_01*.vmt ! Run buildcubemaps in the engine to get the correct cube maps. Creating default HDR cubemaps for env_cubemap using skybox materials: skybox/sky_day01_01*.vmt ! Run buildcubemaps in the engine to get the correct cube maps. Finding displacement neighbors... Finding lightmap sample positions... Displacement Alpha : 0...1...2...3...4...5...6...7...8...9...10 Building Physics collision data... done (0) (299356 bytes) Error! To use model "models/cranes/crane_docks.mdl" with prop_static, it must be compiled with $staticprop! Error loading studio model "models/cranes/crane_docks.mdl"! Placing detail props : 0...1...2...3...4...5...6...7...8...9...10 Water found with no water_lod_control entity, creating a default one. Compacting texture/material tables... Reduced 369 texinfos to 246 Reduced 26 texdatas to 22 (703 bytes to 504) Writing C:\Program Files (x86)\Steam\steamapps\yaznee\sourcesdk_content\cstrike\mapsrc\water_map.bsp 2 seconds elapsed
Well with the idea I've got so far, you wouldn't need to see it. From being dropped off by a chopper, you're gonna be taken to some labs, where you are shown a little bit on a monitor of what they've found. Then you're gonna be taken to sea level in an elevator of some sort, or maybe walk there? (then maybe the first floor could get used) and from there is when you descend into the ocean
Don't yet know how lol
Map is only 5 % (maybe 10) done, will be full of detail when finished
Edit: Btw, this is going to be a single player map