World Partition And Data Layers - Unreal Engine 5 Tutorial
ฝัง
- เผยแพร่เมื่อ 4 มี.ค. 2024
- In this tutorial I'll show you how to convert a level to World Partition, how to create and modify new Data Layers, and how to stream data layers in and out at runtime in order to optimize your game.
Patreon: / mizzofrizzo
Subreddit: / mizzofrizzo_tutorials
Facebook: / 884349679908510 - เกม
At last, someone explaining subtle change with data layers when progressing to ue5.2/5.3. Brilliant demo. If u missed it, ue5.2/3 need data layer asset creating first.
I have never been so early to a MizzoFrizzo video, keep up the great work!
Thanks for the tutorial! Learnt a lot about data layers!
Very well explained @MizzoFrizzo - appreciated it. I'm somewhat new to UE and working with a very large level for cinematic flight animation. Was running into resource issues so exploring world partition as a solution and it brought me here. Forgive the newb question but can I apply the beginning portion of your tutorial to a cinematic animation? I don't need the game-based level loading with collision boxes - just to load the portion of my level that will be seen by camera, and not the entire (huge) landscape. Thanks!
Make ur landscape nanite and it won't matter it will auto cull it. And unreal stops rendering anything not being displayed in the viewport , u can override isrenderd to hook it
@MizzoFrizzo
Hi sir, I was searching for increasing performance in my project. I was wondering if, when I create a data layers levels for example entering in city, making the collision box to activate and disactivate the level, the rest of the landscape can be still seen in the distance trough the gate of the city with HLOD’S created in wp? At least that what is in the viewport 🤣 sorry maybe not so specific question but new on everything so trying to learn 😊 thank you
Yes! I have been trying to learn how to do this! Should this be done at start of creating a world? Or can it be done after I have already created one?
You should do it as you go, but probably only use world partition if it's a big open world, otherwise use level instances and sublevels:
th-cam.com/video/nKGF34Z5QTA/w-d-xo.htmlfeature=shared
I've just converted an open world project to world partition, it went smoothly... water bodies, volumetrics, splines, procedural foliage... didn't have any PCG in my level so can't comment on that part
great tutorial, thanks. Iv'e been trying to learn this. Now how about data tables.. 😂
I'll look into it. 🙂
@@MizzoFrizzo I'm always watching your stuff. Thx man
My apologies, king, I'm late to your latest banger video 🙏
What is a good solution to not have a huge FPS drop when loading new data layer? It is quite bad when you have 120 fps and when you are loading in data it drops to 70 for a second or two. I played Aliens fireteam elite and it has terrible stutter when going between loading doors. Or even Dead space remake has the same problem. Is the only solution to make smaller loading chunks and load them with a delay? Because imagine a new playable area a hall and before entering the game tries to load the whole data layer full of high quality assets and it stutters.
Slow the player down by locking them in an animation, load sections in in chunks, do the loading while the player is paused momentarily in the animation. Very common solution.
It shouldn’t get drops in built project all hard loading will be done at the load of the game and after that it plays with smooth transitions at least that’s how it was with traditional level streaming. Anyway honestly don’t see the net positive using this just yet other than some additional functionality, but don’t think it’s needed unless your doing some really aggressively unperformant game.
Hello blogger, I'd like to ask why is it necessary to "re-save all content" before converting world partitions?
To avoid errors.
@@MizzoFrizzo thank you answer ,but you know,recently UE5.4 released,the world partition aleady Significant changes have occurred
@@yujack5910 If you say so haha
How would I go about making an open world game in a city? I know this video covers most of the optimizations for stuff like that but what about like for example in Spider-Man when you climb up to the top of the tallest building you can see the entire city from up there. How does the games performance not tank when it has the entire city loaded up at once? Im sure they probably dont load certain props like cars or street lights etc but you still see the entire city and that must still be a lot. How is this done?
Optimisation is a big task with many facets. Making these videos is pretty much all I have time for on top of my other 4 jobs. 🫶
They probably use HLOD, but that seems to be broken in 5.3 .
Yeah this is HLOD. I'm surprised that isn't mentioned, as the HLODs are what will allow you to see the whole world. Albeit at a slightly lesser quality
@@tinyblue42 there's merged , and simplify HLOD layers.. But it doesn't seem to be working in 5.4 either, I don't get it . Someone should really like to look into that because without HLOD you can't have that huuuge world that epic talks about.. I mean I have 8x8km and use world partition but still I would like to lower my loading distance since my grid is so large, so only 1 tile at the moment and rest is HLOD . That's my dream
@astralstormgamestudios1259 I'd love to use it for my project. I'm just going to keep trucking along and hope it gets fixed eventually, or at least find a pull request that fixes it and I'll just compile the source with the fix lol. I'm sure someone with the necessary skills will step up. It's a major feature. My c++ knowledge is limited to gameplay logic like you would do in blueprint. I'm self taught, and I have no clue how the hlod and world partition system work together under the hood in order to fix it myself.
Is there a way to show different data layers for different clients ?
I'm not sure! 🤔
Okay nice! Have you looked into world partition for landscape? And HLOD? Seems like it's broken in 5.3.1
No I haven't. I wish they'd focus on fixing things rather than constantly adding new features! 😔
@@MizzoFrizzo HLOD and WP for landscape have been among us since the start of UE5 , and yeah, I wish they would've fixed it and not add alot of stuff. But I hope everything gets fixed in 5.4 , Im about to test it out next week and see if it's working.. I also realized that I dont know in what use case I would use data layers in an open world. It's quite hard to use boxes anywhere to load stuff there since there so much different paths you could choose 🤔 Ideas?
@astralstormgamestudios1259 Wherever you want to load something you'd need to funnel the player into that area. One example is if you wanted to have a vast interior environment such as a cave or a city, you wouldn't want the entire interior loaded if your player might just walk by without going inside.
@@MizzoFrizzo okay for sure. I have an idea, I could make a spehere around the outer sides of the city that load the city if player walks there. Thats like the only way. Since my landscape is quite open and you can walk from every side in. Also I should use occlusion.
@@MizzoFrizzo bloat engine 5 LOL wish they kept unreal studio
take a shot everytime he says Data Layer
Oooof
Please, make video about Lobby and Menu with customize
Maybe one day. 👍
how it is gonna work in multiplayer?
Your guess is as good as mine. 🙂
I can't understand how Unreal has made data layers only for single player games. I'm going crazy to make a multiplayer game with World Partition, it's impossible nowadays because the data layers work directly with the server, and if a client loads a layer all the clients load it too. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
Nice tutorial anyway, ma friend.
Have you tried levels/sublevels???
@@MizzoFrizzo In the end I had to resort to the old World Composition system and use Streaming levels, it's a pity but it's still effective!
@@milanchu98 Nothing wrong with that!
Why is your framerate dropping from 140 to 120 when a data layer is loaded?
When you can't see the meshes, they shouldn't cost any performance...
Why stream the level at all if that were the case?
@@MizzoFrizzo I have no idea what you mean with this text...
I thought you are using world partition and not world composition ^^
@butter_fly_games To answer your original question, of course loading assets and storing them in memory is going to cost performance.
@@MizzoFrizzo Yes, but no 15% of performance...
I would really like to know why this happens to you.
How full is your systems memory when they are loaded in?
Has it the same performance impact in a packaged project?
Do you use nanite?
@@butter_fly_games I made a 2nd copy of the entire level. It's a lot to have loaded in... 😅