I've been thinking about the way old 3D engines had to work, and as I thought about Quake 2 I just started to wonder, why do levels actually have to be crafted to avoid leaks? Why not just allow the engine to have areas open up to the vastness of space?
When it comes down to it, I really can't see any technical advantage to setting up the engine to work this way. At best I could see it coming down to the visibility calculations, but even that seems like a bit of a stretch. The VIS calculations can already identify rooms and passages between rooms, (in a manner of speaking,) so why not simply identify that hole as a passage and the outside as a single room? Granted if anyone actually crafted anything in the great expanse, it would be hard to properly calculate efficient visibility for that area, but really that comes down to level design technique and not what should be a technical limitation. Besides, I can run a level without having any VIS calculations, but I can't run a level with a leak.
So what is the real point of stopping leaks? Why does the engine require this? What technical advantage did this bring over just having geometry open to space?
And as a side note, at what point did the Id Tech engine stop requiring this? Quake 3? Doom 3? (Or is it still required?)
Leaks are still an issue with Q3 and Doom3 mapping (I don't know about id Tech 5 or 6, as I haven't looked into them). This is because every area of the compiled BSP must be part of a VIS node, and a map open to the void would have a pretty much infinite number of nodes.
A level with no VIS data may be perfectly playable on today's hardware, but it sure wasn't back when Q1, Q2 or Q3 released.
Really, that seems to me more like an issue with how VIS calculates than any real performance issues. (Granting for my earlier caveat about level design.) I suppose it is fair for Quake 2 though, given the scope of what they were building. Even Quake 3 I suppose. But if someone built a map with a section open to void, the calculation could be designed to just assume that the player would only ever be around the areas where there is geometry. No "infinite VIS nodes," just ones around relevant geometry.
Of course, at the same time it is also a bit of a non-issue, since it isn't exactly hard to just box around an open area. At least, for the scope of Quake 2.
But I am honestly surprised that Id Tech 4 still required it. That's pretty behind the times at that point, especially for an engine they would have expected to become the next standard in development.