Simplified Guide: UE5's World Partition Tool Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
so Unreal Engine 4 had a problem when working on large Maps the level streaming and Source control systems made it very difficult for developers to cooperate with each other you see the source control system only allowed one developer to work on one file at a time and when you're developing a giant open world and you need multiple developers working on different parts of the same map that can become very difficult so Unreal Engine 5 introduces a solution to this problem the world partition system in this video you're going to learn how to use the system as well as how it works because when we understand the tools that we're using it becomes easier to solve the complex problems that you'll run into on your game development Journey so let's start with the tutorial so the world partition system works with every type of project you can create in Unreal Engine so where you start for this tutorial doesn't really matter I'm just starting with a map that I already had now there's actually multiple ways to enable the world partition system the simplest way is to come to World settings and hit enable streaming but that doesn't give you as much depth as you need and remember this is for large Maps large worlds and the map that I have right here isn't very large so the best way to show you how this works would be to create a new open World level so if I hit file and I come to new level or the keyboard shortcut is just control in you see a couple of templates you can use we're gonna hit the open world template hit create and this generates a new map with a what's it called with a landscape already generated in it you gotta notice this giant World partition map over here we're going to come back to that in a second let's start by looking at this world settings panel I'm going to hit I'm going to go ahead and pin it so it stays open and you'll see underworld partition setup we have enable streaming checked and under runtime settings this is where the stuff we can manipulate and change will make a difference so this landscape once you zoom into it is huge it's giant to have all of this loaded in the world at the same time would probably cause performance issues so the first thing I'm going to do is enable preview grids this option just shows the grids that we have for the world partition map in this mini map on the editor view let me pause and explain what's actually happening here so the world partition system works by subdividing your world into a grid and you can adjust the settings of that grid right so each cell in this grid represents a part of the map that can be loaded at once and if we come over to cell size if we make that smaller you'll see the cell size shrink meaning we can load in the level in smaller sections or we can make it bigger and subdivide the level into larger sections depending on what you need I think it's a little bit easier to see the system work when the grid cells are smaller you also notice this white dot this white dot is related to the Loading range so the player controller or the player camera will act as a streaming source and whatever grid cells are within range of the streaming Source will be loaded and once they're not in range they will be unloaded and the range is represented as a radius so if I make this loading range really small you'll see the radius gets smaller and less grid cells get highlighted opposed to if I make it larger more stuff gets loaded in at once so just to kind of show you how this works I'm going to make the Grid or the loading range really small I'm going to make the cell size smaller as well as small as it can be and then we're just going to hit play just gonna drop in as you can see this cell next to me is not loaded but once I get close to it it then loads in I'm right on the border of two of them so it seems a little janky that's why um and since I've gotten far farther enough from that last cell it unloaded if I run back in this direction it loads back in so on a small scale that's how this thing works of course you'll want to use a larger loading radius to prevent that level of popping if I increase that loading radius if we run in this direction for a while you should see more cells pop in on the horizon all right we're approaching the edge and another one popped in quicker so that's the that's the gist of how this thing works now you should also learn how to use this mini map on the side of the screen let me close the world settings panel this minimap represents the landscape that you have in your level and there's a couple of options at the top the two that I'm going to focus on are show actors and follow player in editor so you'll notice there's an arrow on this map that is the camera as I move around the world the arrow moves around the world if I select show actors you'll see some additional grid lines showed up those are actually the outlines for actors that are in the world and when I Mouse over one of them you should see a faint yellow outline on on a particular border and the name of the actor that we're highlighting so this is just a good way of seeing what is actually in your world uh in this mini map what is action this is just a good way of seeing what's in your world in this mini map the second one is follow player in uh in editor I'm going to show you what it looks like when it's not selected if I hit plan editor the arrow moves around freely and it would be possible for the arrow to not be visible in this mini map now if I enable that option and hit play it keeps the arrow at the center of the editor at all times um I just think it's very useful for debugging to see where exactly you are at um and to be able to see where these grid lines are so you can adjust for pop in and all that good stuff there's a couple of things I think you should know about this tool um in general the first one is when you're editing the world actors are automatically assigned to a grid cell based on the spatially loaded option so if I come into the outlier outliner and I select the landscape and I hit landscape streaming proxy and I come over to the details panel you'll notice underworld partition for this actor we've selected there's runtime grid and then there's is spatially loaded so that is spatially loaded option determines whether the actor is loaded depending on the range of the streaming source so if you're not wanting something to load and unload dynamically or not wanting something to load and unload based off of the streaming Source because you might want it to be done based off of data layers you can uncheck that and it will always be present in the world it will never unload so if I find the lower three two zero if I find three two zero and I disable is spatially loaded that is this grid cell um once I start playing this grid cell should never become unloaded um the grid cell that's not being spatially loaded will remain in memory there it is while the one that's not within range of the streaming Source was unloaded so that's how that option works I should also note that the player controller is a streaming Source by default but there's also streaming components you can add to other objects so let's just say you wanted to have maybe a camera somewhere in world that the player can access at all times you could set that camera as a streaming source and wherever that camera is whatever grid cells are within its loading range will always be loaded now the biggest question that I had about this world partition system was what happens to level streaming level streaming volumes still exist in the editor so how am I supposed to use level streaming volumes when the world partition system exists and the simple answer is World partition system is just for large Maps if you try to use the world partition system on a smaller map it's probably just not going to work out as well you could probably do it it just won't work out as well so the level streaming volume still works the same way that they did in Unreal Engine 4. even though the level streaming window is being depth fabricated you can still use them for medium-sized levels and I believe the well based off my research the performance is still about the same as it would be for using the world partition system but let's not stop there let's keep going let's get a deeper understanding of how these tools work because if you can understand the tools that you're using developing unique solutions for The Unique problems that you'll find on your game development Journey it's easier and there's four systems at play making the world partition system work yeah that's a mouthful the first one is one file per actor you know previously devs would have to check out a file from Source control preventing anyone else from accessing it which slow development and it also made it very difficult to view an entire open world at once the one file per actor system reduces overlap between developers by Saving data instances of actors in external files thus removing the need to save the main level file when making changes to his actors and this comes enabled by default when you're using World partition system number two is data layers it's a system within World partition that allows you to organize your actors in the editor at runtime I should mention that this is replacing the previous layer system in the old version of Unreal Engine but the main advantage here is it separates gameplay elements and environment assets allowing artists and designers to work without interacting with each other's objects this makes it an important tool for managing asset streaming in a world partition workflow the third tool is level instancing and this is going to be its own tutorial but basically level instancing streamlines your level editing workflow think of a level as a container for various actors and meshes when you have collections of things that need to be repeated within a map then just create a level instance it keeps you from repeating work and in some cases it can be optimized for rendering and the last one is hierarchical level of detail so the world partition system uses a grid to dynamically load and unload the world but there are some things that you may want to remain visible even though they are distant like mountains or buildings or a Skyline hlod uses layers to organize large amounts of static meshes into a single proxy mesh and material thus reducing the number of draw calls per frame to increase performance and have a visible unloaded World well that's it for this video with that information you should have a decent understanding of how the world partition system works if you like this video please leave a comment tell me what you'd like to learn more of that's it for this time peace y'all
Info
Channel: BlackShinobi956 Game Dev
Views: 12,136
Rating: undefined out of 5
Keywords: game dev, game development, indie game dev, indie game development, indie game devlog, devlog, game dev tips for beginners, indie game developer, game development for beginners, game devlog, gamedev, dev log, game design, unreal engine, unreal engine 5, solo game developer, solo game dev, BlackShinobi956, unreal engine 5 tutorial, ue5, unreal engine tutorial, ue5 beginner tutorial, ue5 tutorial, level design, ue5 tutorials, ue5 world partition, unreal engine world partition
Id: FP0BNaeHok4
Channel Id: undefined
Length: 12min 59sec (779 seconds)
Published: Fri Sep 22 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.