Best level streaming practices

I’m making a large level that I want persistant, I dont want any loading screens or anything, It wont be gigantic but It will be pretty big and I have already started to break up stuff into different levels. I did a little research and from what i saw breaking levels up into sub levels and breaking those levels up into different parts like lighting for that level in a separate sub level. I;m wondering is there anything else that should be in separate levels? Its just me and one other person working on the game, I read that the reason you break up lighting and stuff into other levels is so one person can work on lighting while the other person can work on that same level and they wont step on each other, but is there any performance increase to this?

How much of the level should be streamed at once? I notice the game stops for a second when hitting a trigger volume loading a big level.

Also is there a way to see how my game is performing? like the memory usage and other useful stats?

I’ll reply as its been a day ago, and frustration is no good can set us back-so,- I have no idea, haven’t looked into it enough, how to NOT have loading screens,here is a youtube video I’ve not had time to watch but is basically a get going with world comp level streaming , https://www.youtube.com/watch?v=hgYfX7yvyoI , ya gives the pop, and yes I DO get those annoying splitsecond pauses/hickups on player movement, as a level pops in, out and so this is one way of doing things to be aware of. As seen HIS method, that method does have the POP in but there are other ways as in next section.

Supposedly using LOD’s can alleviate that, I’ve not done it myself and that can be worked out with as seen in same video as above he talks about use of lanscape LOD at https://youtu.be/hNHctk_YEIA?t=41 ,that spot is where he talks about that might want to go a tad earlier where he literally starts on that topic, but url gets you there.

As seen he shows pop in,then adds fog that alleviates it some, but his use is a VERY VERY tiny landscape.you won’t get so lucky on much larger one, complex ones,depending on hardware and even that has a limit.

Good Luck if I missed anything I’m available the fastest at : Discord

Later

Level wise a better choice for large worlds would be world composition and use level streaming for utility type requirements. The concept of “level Streaming” has been around forever but like always is named differently in different applications so by looking at how different applications make use of this feature, ignoring the fact that Epic has decided to call it level streaming, it become more clear as to probabilities, artist prerogative, of how the availability of such a tool makes for more efficient workflow outside of the normal Persistent level.

For example in 3ds Max Level Streaming is called x-referencing or x-ref

Expanding on the concept it’s not much of a step forward to see how such a tool could be used to prevent those working on a large project from getting in one anothers way.

Lighting for example is always a good idea to have a separate level not just to allow someone to work on it but to make use of to maintain continuity. A level could be x-reference so that other sub-levels being developed can make use of the same lighting models. Different lighting scenarios can also be created for things like night and day as well as different weather conditions with littl accommodation required in the persistent level.

Different levels can also be created in support of different game types say from CTF or TS by including the required elements for that game type with out having to included a level for each and every game type you wish to support.

“How much of the level should be streamed at once? I notice the game stops for a second when hitting a trigger volume loading a big level.”

Under what conditions? Playing under PIE it’s a common effect that shaders are not compiled until made visible to the environment so having the game stall or stutter is a common effect. All critical testing should be done under practical playing conditions while recording a Profile. The profile will tell you what the problem is and not assuming that it’s a loading level…

Thanks for the responses guys. I’m making a big indoor level. Not on the scale of aan entire world, but really big, a huge mansion. I Broke up one of the wings of the mansion into sub levels. The grand hallway is its own level and since its so long I load other stuff in that time. I broke up things into sub levels like items, props, doors, etc and loaded those one after the other with a slight delay. Not my first choice but it’ll do for now.

I did notice a difference from playing in PIE and launching it on my PC like you said. With the levels being broken up and launchin on my PC it made a big difference, although there is a slight stutter still. Also making sure all lighting is built is good too, that impacts it as well.

Question, I launch the game on my PC in the editor (Not PIE) is that the same as a packaged build? Would a packaged build have even better performance? Also does texture size matter too? I’m using the Classic Mansion assets from the Marketplace to build the mansion and a lot of the textures are 4k, they dont look that great though so I dont know why they need to be that big, 720 would have been fine. Maybe I can batch lower the resolution and re import them or find a way to compress them in UE4 or something. I’ll have to do a test and remove all the textures from the model and try streaming it like that to see if it makes a difference.

The mansion i’m creating is just a test one, I’m making it to get used to working with the assets and to do experimental stuff and work out kinks like this so that when i go to make the final one, I wont have issues.

EDIT: Since this is an entirely indoor level, do I even need level streaming? Doesnt the engine only draw what it sees? 98% of the entire mansion is not visible to the player at all times. When i play the game with everything loaded, and nothing streamed at all, I get a pretty steady 120 fps. I walked through the entire building and had no issues. However just because im not having issues doesnt mean there isnt any so thats why im wondering. I have an RTX 2070 and I can render most games in 4k at 60 fps, but I have no way of knowing what performance would be like on lower tier cards, so what works for me isnt necessarily going to work for

Also I heard about this profiler tool, I’ve never used it before but i’ll look up some videos on it. I’ve been off of work for the past 6 days on vacation and i’ve been learning new stuff like crazy, watching tutorials, buying professional courses on udemy, watching the official UE4 live streams etc, it’s very challenging but man is it fun and rewarding.

Profiling and performance tuning an excellent tutorial

If your just doing an interior environment and not exterior then performance should not be an issue and I usually set my project to max rendering values.

Future proofing though Valve has a real time Steam Hardware & Software Survey running at all times.

https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam

Yes UE4 culls what it does not see referenced by the camera. Also performance referenced by FPS is not as relevant to performance as it use to be as compared to refresh rates measured in ms. Worth getting use to as all things rendered via the profile is recorded in ms and not FPS so if there is a draw call or other performance issue then the offender gets pointed out quickly rather than guessing at what might be a problem.

Awesome thanks for the info! I looked at that stream and learned some pretty valuable Info, thanks! I’ll be looking into the steam link more in depth, I just gave it a cursory glance.

With my entire scene I get about 8.33 ms pretty steadily. I’m going to be looking into lighting scenarios here too.

Thanks again.