Download

Inside Unreal: New World Building Features

WHAT
We’re continuing with our in-depth presentations of UE5 Early Access features, and this week it’s time to cover our new world building features! Unreal Engine 5 introduces built-in workflows for partitioning and streaming large levels, while easing collaboration between multiple people working in the same virtual world. Join us together with Principal programmer Jean-Francois Dube as we explore World Partition, Data Layers and One File Per Actor.

Check out the Unreal Engine Twitch Page for the full UE5 EA Livestream schedule.

If you’re unable to make the livestream, all episodes of Inside Unreal can be viewed afterwards on-demand .

WHEN
Thursday, June 17 @ 2:00PM ET - Countdown

WHERE
Twitch
YouTube

WHO
Jean-Francois Dube - Principal Programmer - @dubejf
Chance Ivey - Senior Technical Product Designer - @iveytron
Victor Brodin - Product Specialist - @victor1erp

RESOURCES
New World Building Features Docs
Unreal Engine 5 Early Access
Release Notes

ARCHIVE
Youtube VOD

7 Likes

That’s awesome Victor! waiting for this one.
I got a question for the devs. Is world partition supporting procedural levels at runtime? i.e streaming different sublevels per tile each time you play.
Thank you!

1 Like

Really looking forward to this!
Also having a question: What are the plans for dedicated servers, will they also support streaming out of the box, or will they load the full level?

@VictorLerp you told me to prepare several questions so here it goes :wink:

  • What’s the recommended way to let an actor chase you outside of its original grid cell? By default they disappear when their original cell is unloaded.
  • Can lighting be baked into data layers similarly to how they can be baked into sublevels in UE4?
  • How should UE4 levels be built today to best prepare them for a World Partition upgrade (e.g. make one monolithic level, use level streaming, use world composition, any particular things to look out for that you wouldn’t in pure UE4, etc.)?
  • Can World Partition help with very tall levels? It seems to work only in XY but maybe there’s an advanced setting that I missed.
  • Can/should World Partition be used together with manual level streaming for things like caves or underground dungeons that you don’t want to load if you’re walking above them? (or was this superseded by data layers?)
  • How should navmeshes be made for large levels? I only seem to get correct results if the entire level is loaded in editor.
  • How can you configure the grid size in the World Partition minimap in the Editor? It seems to be unrelated to the grid size that you set for your actual WP loading.
  • There was a BSP question here but I felt bad asking about it :slight_smile: It’s still a lovely feature though.
4 Likes

I also have some Questions :slight_smile:

  • How to determine if the cells around a Streaming Source Component are fully loaded? Is there a callback for that?
  • Similar to above. How to Transition Actors between cells, or as an alternative change grid placement to always loaded during runtime.
  • Any callback for when an Actor is unloaded by the World Partiton System?

Could you go over any “gotchas” with using One File Per Actor, especially with source control? Will developers know which individual assests are checked out before they start editing them, something as obvious as the icons in the content browser of UE4 but in the viewport itself? I checked out the docs, it’s just tough to test how a team will use this with only myself and one computer at the moment. :slight_smile: An Online Learning course showing how a group of devs interact with the system would be awesome!

Related question to that: How does Replication work with World Partition?

2 Likes

Hello, we saw some new MASS blueprint objects on UE5 demo map, could we get some additional information about those? Are they just blueprint objects or are there some extra stuff going on with them?

We’ll be cover MegaAssemblies on July 15th!

3 Likes

I have a question about “vertical streaming”, i will reword what i asked in the streaming chat to be more specific, for what i understand when i load a world cell all the stuff inside that cell will be loaded, so, if in this cell i have a building with some floors and all the floors are streamed one by one with the old level streaming system i wonder if the world partition system will override it and will load all the floors at once or it will load only the first floor and keep the old system for the others.

In the Question-Answer session, Jean-Francois mentioned that there is a new water system that is under development for UE5
. So, I want to know what kind of feature will be in that water system comparing to the one that we have in 4.26.
will there be any shader improvement in the new water system of UE5?
will there be physically correct waves? because waves in the 4.26’s water system don’t look realistic.

I missed this when it was streaming, but still have one question:

Are the partition cells supposed to be aligned by their centers instead of their corners, or is that a bug/just not finished?

When creating/importing a landscape at 0,0, one currently ends up with a funky looking grid like this:

Cell size is a bit big for readability, but in the screen, one proxy is selected, which in turn is the size of 4 cells. Next landscape components are indicated by the checkerboard macro texture. And, finally, the light actors and such are all at 0,0.

As you can see, this means some cells are touching 4 proxies, while others touch 2, and components are all over the place.

I’m not sure if this really affects performance, but it seems quite counterintuitive, and leaves me with concerns there could be issues with conflict and HLOD fighting.

If, however, one shifts the landscape origin by half a component to line up with the grid, the result is much tidier:

Again, the cells are probably too big for most use cases. But even halved so there were 4 cells per component, they would still only encompass one comp or proxy at a time.

unreal engine is best app for making games

Question about the HLOD ‘instance’ layers merging. What if you have destruction, or like a resource gathering system where objects instances(trees, rocks, etc) are removed. Is there a mechanism to also remove them in the higher HLOD instance sets?

Also related to this, in multiplayer you say the server loads the whole world. Presumably that means loading the whole world at full representation(no HLOD stuff etc), because collision needs to be in tact. That means that when the player cuts down a tree, that instance index can be hidden on that tile, and on the server(to disable collision), but players that see that tree from a distance will likely continue seeing that tree if it were part of an HLOD instancing layer, correct?

I am guessing the solution to this would be to hook into the loading of HLOD levels and attempt to hide the tree on those HLOD levels as well based on a transform comparison on the proper mesh set. That sound right?

1 Like

Bookmarked

Replying to myself for the benefit of future people wondering similar. I finished watching the full stream, which answers some of my questions.

UE5 EA, servers load the entire world, so the early version doesn’t have server side world partitioning/streaming, although that is coming for the full UE5 release, along with something to allow dealing with persistence issues.

For those that missed the stream, or if you just haven’t had the chance to check out the VOD. Here it is with added timestamps.

Inside Unreal: New World Building Features

We’ve also added the VOD link in the original post!

2 Likes

I also would like to know how to go about creating navmesh in world partition. In the talk they mentioned that it automatically splits the navmesh. Does that mean I need to create a single gigantic navmesh volume encompassing the whole world?