I’ve been looking at the best ways to split my game into small, performant chunks without breaking the immersion of the game at all. I’ve been looking at how other games handle this, and it seems as though level streaming is my best bet. For context, the game would consist of a landscape and a building with many floors, connected by elevator, and each floor containing many semi highpoly static meshes. I’d like to avoid having to make multiple LOD’s for each mesh since I’m a solo developer, and the creation process is lengthy enough as it is!
Would it be wise to keep the landscape and outer shell of the building always loaded in the persistent level, so that when the player looks out of the windows/approaches the building from the outside, everything looks as though it is genuine- and then simply load and unload each floor of the building as I’m approaching it?
It looks like games either pause for a moment (HL2) and block off the way you came from, before entering a new area, or cleverly disguise that the streaming is taking place by having an event occur for the time it takes to stream the level (I suspect Outlast does this during several of the long ladder climbs and through some pretty empty but long hallways).
If this is the case, I could use the elevator as the instigator for the streaming to begin (a lengthy close/open/wait time should do the trick?)
So my main question would be, instead of breaking each floor into its own level, would it be more ideal to just stream in and out geometry depending on where the player is- and does this effect how lightmass works (aiming for mostly prebaked lighting).