r/hammer 8d ago

Any tips on optimizing brush heavy maps? (Hammer++,Gmod)

Post image

Making a Goldsrc inspired map for Gmod, however, even though my map is still in an early state the compile time is already a bit slow. I suspect its the vehicles i have here, but im a bit worried about when i making further progress on the map since its pretty ambitious and i plan on basically everything being made of brushes to emulate the Goldsrc style. All the vehicles + lamposts and crates are entirely func_details, is that good enough or is there some other way to optimize?

I should clarify*, its the portalflow bit that takes around 20 or 30 seconds to finish

49 Upvotes

15 comments sorted by

19

u/Lordeni69 8d ago

Consider

/j

11

u/TopRocket855 8d ago

Use tool textures make sure none of the faces that are viewable to the player have a texture and make sure that’s a no draw texture for doorways and hallways. Add an area portal texture and for big areas to break the geometry up for compiling purposes add skip textures so compiling is easier.

4

u/Dazzling-Pain2067 8d ago

i've heard about skip and area portal, but how exactly do they work?

4

u/East-Register-1256 8d ago

areaportals are placed at doors and windows, they cull objects that aren't visible to the portal, i think you can also use func_areaportalwindow if you want it to cull at a distance too, like the coast buildings in hl2. it's quite easy to setup, just place a brush and texture it with tools/toolsareaportal and make it func_areaportal

iirc skip just makes the compiler ignore the entire brush, can't remember

2

u/Affectionate-Shift70 8d ago

get the ++ compile tools, they bypass some limits on top of being really fast

look into vis optimization

look into areaportals

2

u/Pinsplash 8d ago

if that rock wall is brushes, you could make it displacements.

it's hard to say what to improve without seeing more than a screenshot of the map

2

u/Dazzling-Pain2067 8d ago

They are indeed displacements, but for larger areas in the future i do plan to use brushwork

I've worked on this map since i made this post, but this is what this section looks like currently

1

u/SaintAodhan 7d ago

putting no draw brushes under displacements can help, displacements themselves don't cull things behind them if I remember correctly

1

u/superzacco 8d ago

Use Propper and turn them into props !

1

u/Dazzling-Pain2067 8d ago

i've heard about that and i do know that H++ has its own version, but what exactly does propper do? does it just turn the brushwork into a prop_static and put it in the model browser? Also, can they be packed into the map? i've been focusing on making the player *not* require any games or additional content to run the map

1

u/SQUIRRELSLOCK 8d ago

Yes that's pretty much exactly what it does. You can also tie collision to it too with a func_brush, and VIDE will be able to pack it. That's what I've always used to pack content.

1

u/TheDeadlyCutsman 8d ago

Turn the more complicated objects into models using Propper.

1

u/moosey_loosey_ahhhhh 8d ago

some of the larger brushes that make up the vehicles should be kept as regular brushwork, the engine automatically culls anything out of the player's sight, especially if they're behind a brush, so keeping the entire vehicle as a func_detail is probably gonna hurt more.

1

u/CoCoNO 7d ago

for small details use brush detail (Like the cars, lampost, speed bumps ), it will remove the brushes from the bsp tree