Huge open maps - doing portals yourself good or bad?


(gerby) #1

Am thinking about doing a really large map (compared to helm´s deep!), and I already know the VIS stage will be a bitch. Which made me think - Can I not actually get rid of the automatically generated grid portals (set the value in worldspawn stupidly high so it doesnt actually cut) and put in my own blocks?
What helms deep showed me was that for large maps like this there´s a hell of a lot of areas with VIS calculation / data that bar the spectator you will never ever get to. I´m quite prepared for spectators to have a framerate from hell if players themselves are fine and it drops my compile times massively.

So is it a bad reason, and if so, why?

I don´t intend to have no structural brushes BTW, obviously they´d be used like normal, but I´d choose where the large scale map splitting occurred, which in some areas would be virtually nowhere because it´s not a playable area.


(Hewster) #2

IMO good (for the right map)
WildWest Town & Hacienda were build using this method,
blocksize was 0 0 0, all portals were make with caulk-hulling, hints &
areaportals

When I tried a compile of town using a blocksize of 512 512 512, my
r_speeds were good in some places, but generally bad, compared to
the r_speeds once I had done my own vising with hints.

The final version is a bit messy with hints, and vis compile is like 40 minutes ! (vis memory is only 18Mb though),
and I’m sure with some effort I could make the hinting more efficient,
and thus reduce the vis compile time, but the r_speeds / fps are good :slight_smile:

Doing the vising this way MADE me learn how vissing works, and really
made me think about how a map should be constructed in the first place…
btw, Town was originally made by BoltyBoy, I simply re-vamped it,
all new textures / lighting / vising.

Hewster


(ratty redemption) #3

is there any point adding in hints, if our map is a large open terrain with a fort type castle building in the middle?

so far the castle and terrain is all detail.

from my limited understanding of vis, I didnt think the castle being structual would be any use, as it doesnt yet have any internal rooms, ie all rooms have windows in them looing out across the terrain.


(gerby) #4

Cheers to know it´s a viable alternative Hewster.
VIS compile time for Helms Deep is currently around 20 minutes (amd 2400+). It´s bearable (just!) but I finally thought I´d try out the portal viewer with it and it confirmed my suspicions - most of the work goes into portals for the huge sky area which is completely wasted - hence why I´m interested in this method (given I plan larger maps in future).

Sounds like this is the way to go then!

I know what you mean though about having to try something to understand it. Annoyingly enough every time I learn something new, I alter my method of mapping accordingly!

  • Caulk hulling
  • Non-mitering of internal detail brushes
  • Reduction of unique planes
    are all causing me to reevaluate what I do these days.
    Some are particularly interesting, eg I´m wrestling over whether splitting detail brushes up myself to get less polygons is more beneficial than the extra unique planes they cause :confused:

Ratty:

Depends I think - if the rooms are on all sides, then it may not hurt to give the castle an internal structural makeup, with structural around the rooms. This way it would at least VIS cull the rooms on the opposite side of the fort - if everything is detail it all attempts to get drawn (obviously some gets culled at the backface stage, but that in itself has a speed hit. As an example of a map where hinting should have been done but wasn´t, think of good old SD dam from RTCW - the framerate on the stairs could often drop drastically when the upper areas had lots of people on it. I do have fond memories of the mad reasons people were coming up with for that FPS hit though - the rotating fans being my favourite…


(SCDS_reyalP) #5

Even where vis isn’t a consideration, it seems like having some splits (whether from blocks, hints or structure) is good.
http://www.gametutorials.com/Tutorials/OpenGL/Quake3Format.htm

Leafs

The leafs lump stores the leaves of the map’s BSP tree. Each leaf is a convex region that contains, among other things, a cluster index (for determining the other leafs potentially visible from within the leaf), a list of faces (for rendering), and a list of brushes (for collision detection).

In pathalogical cases (which complex terrain map with only a couple leafs might qualify as) you can get CPU bound by stuff like collision detection.


(ratty redemption) #6

understood and thanx guys, and since Gerby is likely to be using hand made portals before me, Id like him to have a look at the map Im working on when I get to that stage, is that`s ok with Gerby?

I`m very interested in seeing what can be done with large, or huge terrain maps as they are my fav to work on, and actually this castle map is slightly bigger then HD, although I only realized that recently… the other mapper and I never intended to compete with HD, and at least the buildings are different styles.

ReyalP, regarding collision detection, would it be sensible to make unreachable parts of our terrain non solid, and or encase reachable areas in simple clip brushes?

Hewster, is it _blocksize 0 0 0 we add to worldspawn or just _blocksize 0?


(SCDS_reyalP) #7

Hmmm, I don’t know enough of the details know if that is sufficient or not. Is q3map2 smart enough to throw away brushes which are entirely enclosed in clip ? I seem to recal ydnar recommending hints in this context, but I’m not sure. In any case, this should only be a concern in extreme situations.

Hewster, is it _blocksize 0 0 0 we add to worldspawn or just _blocksize 0?

with q3map2, blocks go in 3 dimensions, so 0 0 0 should be right.

Oh and happy new year :drink: :beer: :drink:


(ratty redemption) #8

thanx reyalP :slight_smile:

and happy new year :clap:


(Detoeni) #9

I’v always used " _blocksize 0", or do both work?


(gerby) #10

ah useful tip about hinting off non-reachable areas so they are removed from the leafs for collision detection.

Good to know what potential problems might crop up, but fortunately I want to do my own hinting mostly simply to prevent the massive areas of sky being split up into a billion portals that all takje their time to be (uselessly) VIS´ed. The ground areas are hinted naturally, and more efficiently than simple blocks.
This was the problem with doing such hugely vertical maps, it creates tons of extra blocks/portals and lightgrid info. While I can´t do much about the lightgrid info (bounding box rules…), the portal stuff I seemingly can with this.

Ratty: I can really live with it if your map is bigger than mine. Size isn´t everything :stuck_out_tongue: Heh I think possibly the actual floorplan of goldrush might be a bit bigger (not sure), what HD has is simply a great deal of it in view all at once, so perhaps I shouldn´t say it´s a huge map as such. I just can´t think of a more accurate wording right now!

As for me looking at your map, sure thing, althjough as per usual, can´t for about 2 weeks still (sad to say, but being away from my computer at home is killing me!). On the plus side, I just became an uncle again and got a kitten with my girlfriend, so it´s not all bad this time of year!


(ratty redemption) #11

ah useful tip about hinting off non-reachable areas so they are removed from the leafs for collision detection.

I was actually thinking of having func_groups of the terrain just using nonsolid shaders, wouldn`t that work as well as hinting those areas?

I have very little experience with hinting as I mainly used area portals in my q2 engine maps.

I can really live with it if your map is bigger than mine. Size isn´t everything :stuck_out_tongue:

hee hee agreed, and what I personally lack in physical size, I make up in ego :wink:

how come you don`t have a pc atm? do you normally work in an office with your colleague?

and kittens are evil, being a fellow rodent you shouldn`t trust that thing for a moment :wink:

jk, some of my best friends have been cats :smiley:


(The5thHorsemen) #12

from what I have seen you can make a map appear wide open but use terrian to block off area’s of detail…

ignoring block size seems a bit much…

you could always go with the farplane culling and elminate allot of problem’s that way by using a nice mist or fog…

SOF2 does a great job of this in there jungle and snow level’s …

terrian map’s can benefite greatly from the use of antiportal brush’s if you plan out the level with there use in mind from the begining and hinting does work well on terrian map’s if you build a caulk brush base to your terrian and use that as your hinting foundation…
plus the light grid brush can help with compiling as well.

IMO a large open terrian map is allot like a space map .
if you plan on building one you’ll have to keep in mind all the player model’s and weapons that will be drawn along with whatever level detail you create, so it generaly makes you have to cut the detail level way down if your trying to build a level with a large mutiplayer base in mind.


(gerby) #13

Very true about the low detail, but since I´m reasonably confident that I understand how to structural/detail and use hints properly, I´m not unduly worried. HD ´shows´ far more than any of the standard maps but doesn´t ever drop to the official maps framerates (we all lurve radar right? ;)). Detail VS size is something I am already planning for.

The main reason I want to totally hint myself is to reduce compile times, no other reason, although it may improve filesize (dunno). It certainly won´t detrimentally affect framerate, so that´s a non-issue.


(Chruker) #14

gerby: Have you tried calling an airstrike on something that is more than 8192 map units away?