The BEST way to use Level Streaming in Unreal Engine 5

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 62

  • @newtforgegames
    @newtforgegames Місяць тому +6

    Recently made a project with an infinite loop using level streaming, this tutorial would've been a life saver!

  • @timix1624
    @timix1624 3 місяці тому +7

    Best Tutorial Channel on youtube ngl

  • @蔡奕霏
    @蔡奕霏 3 місяці тому +2

    I enjoy your horror game tutorials, and I eagerly anticipate your videos every time.

  • @xekes1056
    @xekes1056 3 місяці тому +1

    Your tutorials are the best. Before i stumbled upon your channel i usually just quit making games as i thought it was not for me, but this itch just kept on telling me to come back, i haven't been this productive since thanks a lot

  • @MariusFornade
    @MariusFornade 3 місяці тому +1

    You can press the F8 key instead of the Start key + click on the icon, to detach from the player controller

  • @Sabukaaaa
    @Sabukaaaa 3 місяці тому +11

    We want more of your game!

    • @codethings
      @codethings  3 місяці тому +3

      @@Sabukaaaa more evie devlogs coming very soon :)

  • @touchpadplayer
    @touchpadplayer 3 місяці тому +1

    btw, you can also use Level Streaming Volumes which are better in some cases

  • @marci1270
    @marci1270 3 місяці тому +1

    Level Streaming also needs a working and fully savesystem else you reset the unloaded level every time. A save system is the hard part. You also dont need to write logic for streaming levels, you can just use level streaming volumes.

  • @BoredGamerUS
    @BoredGamerUS 3 місяці тому

    Thanks for the tutorial! Some of my Level had realy bad performance and I never knew how to fix it. Thanks for this great tutorial!

  • @KeymooS
    @KeymooS 3 місяці тому +2

    OHH YEAH, NEW GUIDE!🥳

  • @tranqilo397
    @tranqilo397 3 місяці тому

    thank you for the video! learning alot rom you as an unreal engine newbie

  • @KADstudioArchitect
    @KADstudioArchitect 29 днів тому

    Sorry for multiple commands, you know when you load/unload based o position, especially I am using VR in archviz, Problem is rotating camera make problem and u have to load many things on yet because still user could rotate back side and you have to make them already loaded, but if you able make something like camera view load or some part based on distance, the performance will be much better.

  • @hramovich
    @hramovich 3 місяці тому

    Great quality ! usefull info ! Thanks for that

  • @unrealhabitat
    @unrealhabitat 3 місяці тому

    Amazing videos! Thank you

  • @MashaBear-g8f
    @MashaBear-g8f 2 місяці тому

    One more thing to add. Please do smooth camera zoom in and out as I have not seen others do it without using clamp which produces jittery.

  • @kevinhowlett7126
    @kevinhowlett7126 3 місяці тому +7

    Important note on purpose of level streaming:
    Level streaming is primarily used to address memory management, not optimize GPU-related render performance. UE5 automatically culls objects by occlusion and camera frustum culling by default, meaning unseen objects aren't called in the draw call. You'd want to use level streaming to load/unload objects from memory, to prevent burdensome memory loads.

    • @Gastrostomi
      @Gastrostomi 3 місяці тому +1

      And to add to the annoyances of memory management. As far as I am aware, if you have a desk in one streamed level and the same desk in an other streamed level it will count two times in memory if both levels are loaded. As it is unable to reference objects already in memory. So it adds an extra level of things to be aware of if you want to optimize your game even further. So it is better to have objects appearing in multiple close streamed levels in its own level. But going so far in your optimizations is not really necessary nowadays unless you really want to run your game on a potato PC.

    • @clumpfandango
      @clumpfandango 3 місяці тому

      Does this mean level streaming is more useful for unloading things like blueprints that have logic running on them or AI opposed to things like a static mesh?

    • @Gastrostomi
      @Gastrostomi 3 місяці тому

      I would say it is an balancing act. And it heavily depends on what your blueprint is doing. If the BP is running on tick it would probably be better to unload it when it is no longer in visual/usable range.

    • @velha2999
      @velha2999 2 місяці тому

      I have question, as im beginner i cant really decide, what should i use for better optimization, Level Streaming or World Partition with Data Layers?

    • @Gastrostomi
      @Gastrostomi 2 місяці тому

      It is a matter of scale. Larger open world maps should be way easier to manage with World Partition. Smaller maps would probably be a bit more easier to use level streaming. But then again World Partition can be used for everything. Is slightly more complicated to learn. Level streaming would become a management nightmare on larger openworld maps.

  • @Alpha_GameDev-wq5cc
    @Alpha_GameDev-wq5cc 3 місяці тому +1

    Commenting for the algorithm

  • @elenadmpl
    @elenadmpl 2 місяці тому

    THIS IS GREA SO THANKFUL! but please do not move your camera too much it makes me dizzy haha great tutorial
    thank you for offering your knowledge

  • @DeviantPicturess
    @DeviantPicturess 3 місяці тому +2

    Isn't that the same thing as Occlussion culling but manual?

  • @blad3sashab
    @blad3sashab 3 місяці тому +1

    Ok this is really great tutorial, I assume if I do this on my current existing project it should improved performance by huge? Since my levels are huge also. Thanks

    • @soulsalivedev9793
      @soulsalivedev9793 3 місяці тому

      The gain would be in loading the level since you won't be rendering occluded meshes anyway. With less objets loaded into memory, your level will load much faster. Also, if you notice any hiccups when loading big chunks of levels, beware that this only happens when playing in editor, when you play on a proper build, this won't happen (this is an async load, that is not supported in editor).
      You also have to keep in mind to leave meshes if you are gonna haver AI roaming around, and I find that having lights inside levels that are not persistent sometimes give me errors when building lightmaps.

  • @ph7gamedev520
    @ph7gamedev520 3 місяці тому +2

    This is a good idea
    but why u not use Distance Culling and make a tutorial about it?

  • @HowzzatUD
    @HowzzatUD 2 місяці тому

    Brilliant Video, one question if for example you have a complex level in my case its a shopping mall asset, where everything is in one level, whats the best way to break this down into sublevels. If I use collision boxes to load in sub levels the shop interiors would only appear when i overlap, and if the player was to say rotate in place anything behind him will have been unloaded so the contents of the other shops etc would have dissapeared due to unloading.

  • @abdulshabazz8597
    @abdulshabazz8597 2 місяці тому

    If you have large collaborative teams or use procedurally generated content at scale you may want to consider World Partition. As of 2024 both Level Streaming and World Partition are part of Unreal Engine LTS.
    Personally I don't like this Level Streaming workflow at all. It's counterintuitive that Level Streaming is not performed at the pixel level automatically in-engine!, and I can imagine scenarios which attempt to access a Transition Box actor that doesn't exist yet within the current Level Streaming level (ie., engine crash!) or forgetting the handle on- or the placement of a Transition Box (ie., memory leaks), or holding an actor after a transition was made (ie., the pointer to actor returns NULL). Too many edge cases to check here to ensure its proper operation on a workflow which should be performed automatically. Definitely will have to revisit the Unreal source code for this and open up a pull request.

  • @MaxHorror
    @MaxHorror 3 місяці тому +1

    Isn’t it easier/same doing the distance culling volume?or what its called?

    • @kevinhowlett7126
      @kevinhowlett7126 3 місяці тому +1

      Distance culling just omits objects from the rendering pass, however, they're still loaded into memory. The purpose of level streaming is for memory management, not improving GPU-related rendering performance. UE5 already has default occlusion culling which automatically addresses culling, and you'd want to use LODs or nanite to optimize by distance.

  • @abidchowdhury6865
    @abidchowdhury6865 3 місяці тому +1

    A tutorial on the inventory system..... plss

  • @KADstudioArchitect
    @KADstudioArchitect 29 днів тому

    Also is that use Sublevels loading based on eg Character position not camera position?

  • @duckness3242
    @duckness3242 3 місяці тому

    Any thought on making a tutorial on fps mechanics?

  • @rileykdr6872
    @rileykdr6872 3 місяці тому +2

    bro i have a crush on you at this point

  • @KADstudioArchitect
    @KADstudioArchitect 29 днів тому

    Thanks, is there any way to Load/Unload based on camera view like raycast using etc?

  • @djtc2093
    @djtc2093 Місяць тому

    My trigger box doesn't allow for a reference in the level blueprint, it's not there. I have it selected but no reference shows when in the level BP

  • @unbelievable--just-believe
    @unbelievable--just-believe 3 місяці тому +6

    We all are waiting for an inventory system
    pls
    best tutorials on UA-cam

  • @xristosboom
    @xristosboom 2 місяці тому

    Does it Work with baked lighting?
    Does Gpu Lightmass bake everything and then simply you call it By level Streaming?
    So no problem?

  • @lolaswift111
    @lolaswift111 4 дні тому

    Why makes it so complicated. can't we just use one trigger box to cover the whole room and use a state machine to load and unload other rooms? Just a question

  • @comebackguy8892
    @comebackguy8892 3 місяці тому

    Do the different trace channels still work through the "different" levels. Can the player use trace by object if the object is in the other level?

  • @TimBorggrenDenmark
    @TimBorggrenDenmark 3 місяці тому

    will this system have an impact on multiplayer?

  • @xristosboom
    @xristosboom 2 місяці тому

    Does Level Streaming Lower details? Can we have Max Quality?
    Because it says Level "Streaming"

  • @shadfakher2383
    @shadfakher2383 3 місяці тому

    more video pls ....

  • @DangPan_
    @DangPan_ 3 місяці тому

    So So Thanyou

  • @GerardoGeovia
    @GerardoGeovia 18 днів тому

    shift + f1 not windows key

  • @Deculayn
    @Deculayn 3 місяці тому

  • @NG15427
    @NG15427 Місяць тому +1

    There's no sense in duplicating 'loading' & 'unloading' levels. Don't do that, this unnecessarily overloads your code. Your logic has to be simple in order to be able to debug your code in future.

  • @Cloroqx
    @Cloroqx 3 місяці тому +14

    Please stop using Level Streaming. Epic has dropped support for it. World Partition is the way forward, so get on the bandwagon.

    • @Alpha_GameDev-wq5cc
      @Alpha_GameDev-wq5cc 3 місяці тому

      Do you have a source? I’d like to read more on this

    • @lz4090
      @lz4090 3 місяці тому +1

      I initially thought of it but if you have a level that is small, with windows seeing other rooms and multifloors, how would you control specific areas, or lets say upper floor or lower floors?

    • @fidel_soto
      @fidel_soto 3 місяці тому +1

      ​@@lz4090 that's a pretty good question. Does world partition support verticality?

    • @Cloroqx
      @Cloroqx 3 місяці тому +2

      @@fidel_soto It does with the 3D grid. You can use Data Layers to load/unload your assets if you need granular control, or even dynamically tweak WP's streaming distance based on some triggers placed in the world. Hlods fill in the space outside of your streaming distance by merging meshes together in an offline process.

    • @Cloroqx
      @Cloroqx 3 місяці тому +3

      @@lz4090 For your use case specifically, Epic recommends having a persistent world level and using data layers and level instances inside of it. World Partition can load assets from inside both of those sources into the persistent level.

  • @ChadGatling
    @ChadGatling 3 місяці тому

    Interesting but you need to fix your word salad. Soooo many annoying filler phrases