Creating Central Yharnam in UE5 - World Partition vs. Level Streaming

Hey everyone,

I’m kicking off a new UE5 study project and could really use some advice on architecture/streaming before I dive into blocking out the environment.

Here’s the gist:

  • Tech: UE5 with Nanite & Lumen
  • Scope: Semi-open-world town, about the size of Central Yharnam (so fairly dense, but not a sprawling open‐world)
  • Goal: World‐building focus, but I also want to learn solid optimization techniques
  • Vision: I want to be able to stand on one side of the town and actually see the buildings on the far side—no fogging out or invisible walls

Questions:

  1. Would you start with World Partition or go for classic Level Streaming?
  2. Any tips for setting up your folders/levels early to avoid total chaos later?
  3. Other general optimization/practice recommendations for a “Yharnam‐sized” scene?

This is only my second UE5 project, so any pointers, pitfalls to avoid, or links to good tutorials are much appreciated. Thanks in advance!

Hey @dincturk!

One piece of advice I can definitely give you on things like this is that you should absolutely use buildings to break sight lines. As you know Yharnam, you know that it winds and twists and turns constantly- part of that is for performance reasons! Once something is out of sight it makes room for other things in the RAM. Occlusion Culling is the technical term. But you don’t want to be able to see from one side of the city to the other- Not only is it better for optimization, allowing for more detail in the nearby environment, it’s just more interesting! :slight_smile:

Hope that helps!

Hmmm, I thought occlusion culling was default in the engine. To be honest my main concern is nanite asset tanking the performance in a big world without world partition (that’s kind of what happened to me on my one study project)

You are right man

It is! But the point is to not have an entire scene visible to the player that’s very high poly. You have to occlude so they can be culled. :stuck_out_tongue:

Haha I now understand what you mean! Really nice tip! Thanks!