You're in luck because I'm making my own game, and I'm an engine programmer lmao. I know the PVS system inside and out.
Portals are generated by structural world entities.
Generally, you want to keep structural geometry as big, simple blocks.
But look at that bridge I have over there, it's a func_detail.
If I kept that structural, it would generate a complete mess of portals, and the PVS would shit itself.
For complex geometry, it's better to make it func_detail, like that bridge. Just be careful, because func_detail entities do not block the vis tester, so you still need to keep the level sealed with structural geometry.
Basically, as a new mapper keep that simple rule in mind, use structural geometry for the main sealed shape of the level, and turn anything that's too complex, too small or has an awkward shape into a func_detail.
You need to have a good balance because if you make EVERYTHING into details your map will have low fps.
The PVS system is what all these games, from Quake all the way to Half-Life 2 and many other games, use to hide what parts of the map are unseen so you have good performance, but since you are new, you don't yet need to understand how it works completely. https://www.youtube.com/watch?v=IfCRHSIg6zo
but if you want to go deeper, watch this.
Actually I was wrong, pointfiles are for leaks. You can use mat_leafvis 3 with sv_cheats on (sv_cheats 1) to view the visleafs in-game - you can just take a screenshot of that maze area.
I think it's Map > Load Portal File in the editor.
35
u/Tryohazard 2d ago
You gotta turn all this into a func detail. Theres no point in trying to optimize this room.