Search Unity

[RELEASED] World Streamer ! Forget about your game memory usage and create big world!

Discussion in 'Assets and Asset Store' started by NatureManufacture, May 13, 2015.

  1. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Probably world was loaded tooo slow in such device and it drop player. Use safe place or hold player until load end.
     
  2. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Is there some callback to tell me load ended? Or do you just mean Unity's sceneLoaded delegate?

    [EDIT]
    In the dosc it says the following:

    Loading bar in loading screen will release player into game only when all scenes from element 0 and 1 will be loaded.

    So, isn't it already waiting until loading is complete?
     
    Last edited: Jan 28, 2019
  3. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Loading bar yes but character must be frozen for this time or moved to safe place. Yes ui is using flag / event which says loading is ended. Im not at office but check loading ui script.
     
  4. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    OK, thanks.
     
  5. Eqirc

    Eqirc

    Joined:
    Apr 7, 2018
    Posts:
    1
    Does World Streamer support HDRP?
     
  6. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    World Streamer is a tool for streaming terrains. and game objects, etc. So it will use what ever Rendering Unity allows. and supports. so yes it will work.
     
    Eqirc likes this.
  7. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Did you ever get this information for me?

    [EDIT]
    Nevermind. I found it and got it to work.
     
    Last edited: Feb 6, 2019
  8. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Just in case for others.


    if (streamers.Length > 0)
    {
    bool initialized = true;
    progressImg.fillAmount = 0;
    foreach (var item in streamers)
    {
    progressImg.fillAmount += item.LoadingProgress / (float)streamers.Length;
    initialized = initialized && item.initialized;
    }
    if (initialized)
    {
    if (progressImg.fillAmount >= 1)
    {
    if (!done)
    {
    done = true;
    if (onDone != null)
    onDone.Invoke();

    StartCoroutine(TurnOff());
    }
    }
    else
    done = false;
    }
    }
     
  9. TommiH

    TommiH

    Joined:
    Jan 14, 2008
    Posts:
    253
    @NatureManufacture Any comment on this issue gecko posted a while ago?
     
  10. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    We didnt notice that. On our UI you could set delay for loading panel which handle most cases. It only can happend when streamer didnt had enought time to gather info about which scenes is on loading list.
     
  11. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Do you mean Destroy Tile Delay?

    That's mainly for loading/unloading as the player moves around? Our problem is the initial loading, with the onDone event. We're listening to it using the following code:

    uiLoadingStreamer.onDone.AddListener(() => { setInitialLoadingFinishedNextUpdate = true; });

    After this has been fired, we do things that require all the World Streamer terrains to be in place. However, this seems to fire prematurely, about halfway through the process of loading terrains.

    We're using the stock Streamers, just updated for our split scenes, nothing unusual there. We load 9 Unity terrains (distance of 1 from player), and then LOD mesh terrains beyond those. After everything is done loading, it all works great, but it's a problem that we get the onDone gets fired halfway through the loading process. Any suggestions?
     
  12. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Screens from setup:p
     
  13. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    Does world streamer support Unity 2018.3.x?
     
  14. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Should be fine:)
     
  15. Chaz32621

    Chaz32621

    Joined:
    Apr 17, 2015
    Posts:
    199
    Is this possible for a multiplayer game??
     
  16. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    396
    any news on version 2.0?
     
  17. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    2018.3 has been release for a while and I'm wondering about the update.
    What features are in v2? Anything interesting cooking?
    Thanks.
     
  18. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    I have one additional question on Nested Prefab

    I'm wondering how WS will work with nested prefab. For example, a building containing many props.
    Building itself is on a Big Layer and the props are in a Small Layer.
    Building and the prop are made of nested prefabs, thus have hierarchical structures.
    Does WS works for the nested prefab? If not, will v2 support it?
    If they are put into different layers, will it break the nested prefab?

    Thanks.
     
  19. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    This works just fine with multiplayer, you just have to export the terrain colliders only and make sure you have them static on the server side if you aren't doing origin shifting. You technically coouulllddd do shifting in multiplayer, but it would be a pain because clients can't just go around trying to shift their origin willy nilly, the server thinks they are one place, but then it will technically just end up teleporting them another.

    You can do this if you create some sort of local position/server position reference system. If the player is at 5000,0,5000 originally, then moves to 0,0,0 locally, you would have to still store the server's position and as you move around on the client it would have to keep the offset and then transmit that. It definitely could open the door to people trying to hack the difference between the two numbers though. There is a lot that has to be thought about, lol.

    I would definitely love to hear what is in store for V2 though, as well. : D
     
  20. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Our main goal is to rebuild whole UI and way of define streaming but we still finishing few things at the same time ;/. We will release R.A.M 2.0 as first then we will move into WS probably to finish its 2.0 version. To be honest there shoudnt be rush because we don't want to do our work few times as unity currently rebuild streaming in whole engine. Unity just released new gc which removes spikes. Terrain now doesnt need terrain neighbour script. Soon there will be even more stuff as we had talk to unity team. OFC ECS and more too...Thats why we wait so long time it's a bit worst moment to rebuild beside that we should update manual and few scripts for 2018.3

    About big multiplayer games:
    Server instances like:
    World 0-10500 server 1
    World 10500- 20500 server 2
    In area between player is connected to 2 servers.
     
  21. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    Sounds like it will be a while until the update and when v2 comes out, the thing will just work better and faster.
    I understand about Unity is in fluke, but what about the nested prefab issues.
    Any advice on how to work with nested prefab in the meantime?
    It is more like workflow issues rather than performance.
    Please read my last post above for more details.

    Thanks
     
  22. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    90
    I am having a bit of trouble. I followed the tutorials and set up a test scene with a hallway. It seems to stream in fine going one way but the sections don't seem to sit right next to each other on every piece. So when you walk back through the hallway it doesn't spawn in at a certain point. Essentially I am trying to make it stream in a few rooms around the player but the rooms could be all sorts of different sizes. https://gyazo.com/49267ed7a1b9077efb2edbee54fdcc07
     
  23. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Check objects pivots in relation to streamer grid.
     
  24. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    I think such construction is rather non usefull. For such cases you got colider streamer. nIt would be pretty hard to manage all this scenes in such way. As we stream scenes we have nothing to prefabs at all currently. It will work with everything. Anyway as ecs comes we will see what we can do.
     
  25. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    90
    Is there a tutorial that better explains using collider streaming in combination with Layer streaming? I can get either one to work by itself but not combined together. My whole world is comprised of rooms and sometimes loading a room with a collider slows it down too much so I would like to have the room start like 3 or for layers to start loading.
     
  26. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Why it slowdown? Too much data or?
     
  27. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    90
    It is for VR so the loads have to be pretty small to not experience the steam compositor loading screen.
     
  28. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    Hi, did you take a look at MegaCity? They release the asset at GDC 2019. One of the interesting things is that they support sub-scene streaming. It supports streaming low level LOD first and it also talks about low-level LOD can stay once it's loaded without being destroyed if desired.

    If we use the same setup, we don't have to have so many scene files. We can have one Scene file for one Grid element and stream in part of the scene, such as Small, Medium, Large, and also different LODs separately. It will defienely make the Scene management easier and I hope there are some peformance improvements as well. What do you think? Is there something we can take an advantage here?

    It's really exciting and I really curious where World Streamer is headed.
     
    awesomedata likes this.
  29. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Let we release r.a.m 2.0 first and we will sit into it:) for sure we will check possibilities from that project.
     
    awesomedata and chrisk like this.
  30. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Haha -- I came here to ask that exact question. :)


    I was playing with the World Streamer demo yesterday, and to be honest, I found the demo a little underwhelming performance-wise (even before the release of the ECS + texture/scene streaming features. )

    It got me thinking -- I have yet to seriously integrate World Streamer into any projects because I keep running into the same need to see long distances. And if performance stutters even with such a low draw distances (and heavy fog) like it does in the demo, I can't really justify using it in a serious open-world project. :(

    Using the "Curved Worlds" plugin to avoid the crippling low draw-distances in the airplane video was clever, but I can't do that in any of my use-cases.

    I really do think it's a good idea to use ECS streaming like in the Mega City demo.





    That being said -- I too am excited and curious as to the future of World Streamer.

    I would really like to put World Streamer to good use for once!
     
    JBR-games likes this.
  31. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Truth is if we would release ws on 2018.3 we would have to rebuild it for 2019.1 :D
     
  32. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    I feel your pain...

    Lots of developers (including myself) are having to rewrite (and redesign!) many core things (in my case, nearly my entire asset!) from the ground up thanks to a new feature in 2019.1!

    IMO -- This is a good problem to have! -- Thanks to these new engine/editor capabilities, I can provide the ultimate value to people who use and trust my tools to work when/where/how they need them! -- Those very same people talk about my tools, recommending them to their like-minded friends! And since nothing ever goes away on the internet, a good name gets more valuable with time. Providing exceptional value (even when it costs, and you don't have to) speeds this process up! -- The simple act of a "surprise gift" just naturally makes people happy enough to talk about its source.


    Just my two-cents. :)
     
  33. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    396
    well still waiting to buy if it would be good with new unity versions. i hope you wont postpone for 2019.1 & 2019.2 too?
     
    awesomedata likes this.
  34. Deleted User

    Deleted User

    Guest

    great work. that would be amazing for a multiplayer setup!!
     
  35. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    Now that RAM v2 (2019) has been released, are you going to be working on WS full steam? I really hope so and we can take advantage of what MegaCity is doing in WS soon.
    Subscene streaming will simplify quite a lot of thing and improve performance quite a bit, I hope.

    Cheers!
     
    awesomedata likes this.
  36. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Is this something you're looking into doing, @NatureManufacture ?

    I feel like it wouldn't be such a bad idea to get some official input on this...
     
    JBR-games and razzraziel like this.
  37. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Yes, we currently work on WS 2019:)
     
    chrisk, awesomedata and razzraziel like this.
  38. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    The awesomeness!! :D

    So one MAJOR request I have is to give the ability to increase the draw distance (by plugging-in either Amplify Imposters (paid) or IMP (which is free) to let us procedurally bake imposters for large cells of land/details. These can be streamed in later before the individual (smaller) scenes/cells within the imposter's loading zone (or the HLOD itself) gets loaded.


    Generating these giant imposter cells manually alongside your system is a pretty huge task because we will eventually have to hook into WS, which means learning the source code and how it works.

    Loading the impostors and HLODs during the streaming process is necessary for the large draw distances of today's games. The old system really won't work for this.
    So to make that loading process more simple, letting WS request the actual generation of those impostors and HLODs procedurally (at the right moments) and then taking the resulting data and making it streamable via ECS would make the whole process a breeze for the user and suddenly make true open-worlds for Unity accessible.


    Add onto WS the texture-streaming for imposters (that games like Fortnite require for their incredible view distances), and we'd be golden. :)


    Any chance of any of this happening? D:
     
    razzraziel and runningbird like this.
  39. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    396

     
    awesomedata likes this.
  40. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Its good time to gather all ideas and requests:)
     
  41. luellasfpg

    luellasfpg

    Joined:
    Jan 23, 2019
    Posts:
    16
    Hi! I'm interested in purchasing World Streamer, but I have a few questions about multiplayer streaming and floating point origin fix system for multiplayer.

    So for example, will the world be streamed relative to the position of one player, or will the world streaming be different for each local player?

    Also, say we have a player that shoots a bullet at a victim (using Unity physics), but then the player moves past the threshold for the floating point. Then will the positions all shift correctly so that the bullet still hits the victim?

    Is it possible to try World Streamer before we buy, or to get a refund on the Asset Store if we find that it doesn't fit our needs?

    Thank you!
     
  42. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Streaming is client side not server. Server should use clusters for huge worlds - few servers that connect player by position.

    Bullet is network object instanced at client from server in such case.

    When player or object cross floating point it should be connected to with servers for moment etc.

    Anyway we provide model and object load and unload system. For network solution try atavism. We co-op with them in many aspects and world streamer is fully compatibile with their stuff.

    https://atavismonline.com/
     
    Last edited: Jun 22, 2019
  43. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    How's it going on revamping WorldStreamer? I hope you got enough ideas/feedback by now.
    For me, I would like easier subscene management, basically like the one from MegaCity.
    Thanks for the update.
     
  44. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Slowly but forward:) we close old cases aswell as it's holiday time here:)
     
  45. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    Hi, I understand the implementation will take a while but please share the goal of WS 2.0. I'm really curious to know what the new WS will look like. We can perhaps discuss them on paper first before it gets final.
    Cheers!
     
    awesomedata and razzraziel like this.
  46. jobobbel

    jobobbel

    Joined:
    Mar 22, 2018
    Posts:
    10
    Hi, @NatureManufacture ! Uhm, I got this to work with untity 2019.3 but I get framerates of only 30 fps... am i missing something? Read manual a few times... Terrain is 4km by 4km, lots of trees and such stuff. First I had Gaia Tree Spawned, but they loaded always all trees together. That fixed by using unitys tree painting. Other assets Aquas and Enviro. Any tips or hints? Thanks in advance! :)
    EDIT Forgot to mention that this is in build. Without unity. Thanks!
    EDIT2 Im sorry, loading still all trees at once... any way around this?...
    ...EDIT... okay, will use VegetationStudio... never mind
     
    Last edited: Jul 17, 2019
    NatureManufacture likes this.
  47. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    I second this notion.

    Looks like WorldStreamer is about to fall of your site's asset page. Makes me curious what you might be going for in 2019 WS. Perhaps you have assets with a higher priority atm?
     
  48. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    We have separated team for streamer and foliage assets. We slowly build new core for it. Then we will back to you for new features.
     
  49. wlad_s

    wlad_s

    Joined:
    Feb 18, 2011
    Posts:
    148
    Is it possible to stream only 4 terrain tiles? Currently, I’ve only managed to make it stream either 1 or 9. That is, if distance is less than 1, it streams only one tile and if the distance is 1, it streams nine.

    What I’d like it to do is to stream the next tile only if I’ve approached it by third of the length (passing two thirds of the current tile length). That way, the max number of tiles present will be 4.
     
  50. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    This is where hexagonal tiles are useful -- you'd only need to stream in 7 tiles instead of a full 9 to get a decent draw distance. Then, if possible, these could be culled (or turned into imposters) if something is in the way.


    That's exactly what they did on the latest Spiderman games in order to enable streaming New York -- They used a basic square grid tile, the chopped the corners off to make it hexagonal (in the calculation). Then, in the distance, they used imposters (with depth maps) to simulate far away complex 3d geometry (like New York skyscrapers with reflective windows) that seemed to have parallax.


    I really think World streamer should totally be capable of doing this hexagonal tile thing.

    This is standard practice in the industry these days. It hides the grid from the player a lot better too. The world around you seems to be loaded from a circular radius rather than from a very distinguishable grid structure.
     
    Lars-Steenhoff, kepesh and wlad_s like this.