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. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    what do you mean revert back??? switch I have no idea.. but I doubt it would have any issues. VR I believe people here have used it, I personally don't play or make VR games as I'm not a fan of them but pretty sure people have. You prolly could wait for the developer or look at old posts to see what people have done with VR.. As far as switch, not many develop for it, but I do for console for XB1 and PS4, tested on both and both worked fine.
     
  2. serberusno1

    serberusno1

    Joined:
    Jan 28, 2017
    Posts:
    84
     
  3. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    You can always make changes, its a matter of your programming skills...
     
  4. serberusno1

    serberusno1

    Joined:
    Jan 28, 2017
    Posts:
    84
    Yeah this doesn't answer my question at all. Are you a developer for world streamer? I'm asking specifically if it's a feature of world streamer to split up AND rejoin the terrain geo. Also why would you assume I'm a programmer? I'm not btw so if there isn't functionality for rejoining the terrain then world streamer probably isn't for me
     
  5. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    well not smart to be a smart ass.. when someone gives you any information.... Not a great way for anyone to answer you or try to help you.... Best of luck...........

    If you actually read the docs like your suppose to you would KNOW this is NOT a feature...This is a tool that is for STREAMING.. that is it.. period... it does NOT split terrains at all..... It's a S T R E A M I N G tool....


    but since you want to be rude... I can be and NO i'm not the developer.. You clearly can see who is. I would of answered you, with respect but since you wanted to be disrespectful GOOD LUCK.
     
    Mark_01 and MostHated like this.
  6. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    @NatureManufacture I have a question about loading scenes. I am trying to use Mesh Combine Studio to see if it will work with World Streamer, but it requires things to be under a parent object. Is there a way to have a static parent object and then any scenes that World Streamer loads will load as normal, just under the parent object so that I can try and see if it will work?

    I think I have a way it will work, but I need some sort of event/trigger to know when the currently loading scenes are finished so I can tell MCS to reload them. Is there any sort of event within World Streamer that can tell something that the currently running async loading is completed?


    ----- Edit : I think I have it worked out. In Streamer.cs in the LoadLevelAsyncManage() method I added :

    Code (CSharp):
    1. if (scenesToLoad.Count == 0)
    2. {
    3.     Debug.LogFormat("Scenes loaded, firing event");
    4.     loadingComplete();
    5. }
    I made loadingComplete() an event, so once it is showing 0 scenes left to currently load it will then fire off that event and I can use that to trigger MCS to reload its data based on the currently loaded scenes. Seems like it should work in theory.
     
    Last edited: Sep 2, 2018
    recon0303 and NatureManufacture like this.
  7. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    @NatureManufacture

    I think my addition above isn't quite going to work out in its current form. I believe what ends up happening is that scenesToLoad.Count will end up being 0, so it fires off my event which then performs an action with Mesh Combine Studio, but technically the scenes may not have actually finished loading yet since it is done async. Just because there are 0 left to load doesn't exactly mean they have all loaded so MCS is performing its mesh combine while some are still loading.

    Is there any way to know for sure that the scenes that were called to load in the current batch of scenes to load have 100% finished loading so I can then throw my event at the right time when everything is present?

    When researching I see people who use coroutines and then yield return null while an async operation is returning !isDone, but that would not work in this situation I don't think since LoadLevelAsyncManage() is called in Update().
     
    Last edited: Sep 4, 2018
  8. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Check:
    LoadingProgress in UILoadingStreamer
     
  9. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    Thanks for the input, I see what you are referring to, I tried to follow the KISS principal, but that ended up firing off the event one time for each scene that was loading, so in this instance it fired it off 55 or so times but at least this should get me in the right direction. I think I need to try and get just the last scene in the list and then listen for that one only to be finished and not any of the others so that there is just one single event being fired when all currently loading scenes are completed. I will just have to mess around with it and see what works out I guess.

    It does seem strange that it looks like "StartCoroutine(TurnOff());" gets triggered once per loaded scene. It currently is:

    Code (CSharp):
    1. if (onDone != null)
    2.     onDone.Invoke();
    3. StartCoroutine(TurnOff());
    Is it supposed to be this? I was going to try and put my "loadingComplete();" event I made in there, but that still ends up getting fired off way too many times. Perhaps I am just not putting it in the right place.

    Code (CSharp):
    1. if (onDone != null)
    2. {
    3.     onDone.Invoke();
    4.     StartCoroutine(TurnOff());
    5.     loadingComplete(); // ---- Was going to add my own event here hoping it would fire off once when things were completed.
    6. }
     
  10. hollegar

    hollegar

    Joined:
    Nov 15, 2011
    Posts:
    34
    Hi, Your right there was error in the UILoadingStreamerwhich that allowed multiple call of onDone event.
     

    Attached Files:

  11. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    Ah nice, thanks for that. I knew something seemed off about it, just was not quite sure what, lol. Strange that the loading ui was still seemingly working fine even though that call was happening multiple times. That should definitely help with what I was trying to accomplish now, though. : D
     
  12. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197
    Hello,

    Our bought asset RWT Real World Terrain from Infinity Code is Compatible with World Streamer. It can split the Real World Terrains in World Streamer scenes .


    Now the questions we want you iTS Inteligent Traffic System is that compatbile with WS and also Vegetation Studio and some other assets ?




    Whats all compatible




    Also we bought the Advanced Foilage Pack 1 from you and have the problem that at your Vegetation Studio Grass and Plants prefabs the Touch Bend not work :( Why that ?
     
  13. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    It would sort of be compatible. It would depend on how you go about it. If you put iTS in the main game scene and don't split up any of the waypoints it might work, otherwise you will have to have smaller routes or a complicated custom addition for it to compensate because if you have a route that goes from pioint A to B, C, D, E, but where you are standing only points B,C, and E are loaded, your pathfinding might freakout.

    You might be able to very carefully place the nodes and lights to get away with it, but it will probably take some work. I am in process of making my own just because of that.

    As for Vegetation Studio, the currently released one does work just fine with World Streamer, I had been using it for a while, it's just not as easy as it could be to setup. Vegetation Studio Pro is in beta right now and is twice as performant (uses job system now) and was pretty much redesigned from the ground up and works much easier with multi-tile and streamed terrain. I have used several of the above things you mentioned, so I figured I would try and share some of my personal experience. : D
     
  14. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197

    Thanks

    Ok so for Vegetation Studio i need ask the Developer for a WS Version.

    Yes but Vegetation Studio Pro only work in Unity 2018 i read ? and need buy again . but need at 2017.1.1f1 :/


    Also how you mean with

    If you put iTS in the main game scene and don't split up any of the waypoints it might work, otherwise you will have to have smaller routes or a complicated custom addition for it to compensate because if you have a route that goes from pioint A to B, C, D, E, but where you are standing only points B,C, and E are loaded, your pathfinding might freakout.


    How can i put all way points of the splitted scenece in one scene and make it work in all scenes ?

    Atm i not have World Streamer thats why i ask :( sorry

    And at:

    You might be able to very carefully place the nodes and lights to get away with it, but it will probably take some work. I am in process of making my own just because of that.

    You mean nodes and lights from iTS ?





    Thanks for help
     
  15. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    Hi,
    i have a huge area at the origin that benefits heavily from occlusion culling. It is fixed and un-/loaded via ColliderStreamer.
    What would be the best or correct way to disable/enable streaming and origin moving for that part and have fixed areas at the origin? Especially when using Teleport?
     
  16. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    Could you not just have it in your main scene as static content instead if it is just always there?
     
  17. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197

    You mean what i asked you again ?





    Also at the World Streamer dev .!!!!!!!!!!!!!! :

    I bought World Streamer and when i added / imported to my project it Crashed with Unity Bug Repoter and when want open it again same problem :(



    It has something todo with the Unity Default Asset / PostProcessing asset but that good and needed :( When i reimport the PostProcessing same happens again when remove WorldStreamer and import PostProcessing its work but when again import Worldstreamer same problem.
    Then Project is not able to open without unitty crash :(

    Hmm now think its not only the PostProcessing but no errors or so was in the console :( so and in crash.dmp and lg find nothing what was the error :(


    A forgotten: Unity Version : 2017.1.1f


    Regards
     
    Last edited: Sep 19, 2018
  18. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    I suggest to remove library folder - this will force to reimport whole project. It will take some time but it will remove all background issues.

    Yes it works with Vegetation studio.

    rest I didnt test myself.
     
  19. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    Thats basically the idea but floating point correction needs to be disabled and on exit enabled for that part, and with collider steaming you could have many different (heavy) areas with OC, like cities for example, that dont suit streaming. The only problem i have is to enable and disable streaming and floating point correction properly.
    I tried to do it within the collider enter/exit calls but with no luck.
     
  20. SkandYxyz

    SkandYxyz

    Joined:
    Mar 13, 2015
    Posts:
    83
    Hello,

    i recently tried to get world streamer to work with realtime precomputed GI and found out, that it does not work out of the box, as the terrain loses static status due to transform position changes and another reason, i did not yet found out. How does world streamer needs to be modified to enable realtime gi?

    Best,
    Skandy
     
  21. Grendelbiter

    Grendelbiter

    Joined:
    Oct 14, 2016
    Posts:
    123
    Hi, I'm trying to stream some Asteroid Fields with World Streamer. The Fields are empty gameobjects with a script on them to spawn asteroids in a certain radius in random positions. The positions are way off. I tried transform.position - currentMove but the position is off too. This is how my spawn method looks like:
    Code (CSharp):
    1.     private void Spawn()
    2.     {
    3.         if (Random.value > chanceSpawnRare)
    4.         {
    5.             spawnArray = commonAsteroids;
    6.         }
    7.         else
    8.         {
    9.             spawnArray = rareAsteroids;
    10.         }
    11.         asteroidIndex = Random.Range(0, spawnArray.Length - 1);
    12.         Vector3 randomPosition = Random.insideUnitSphere * fieldSize;
    13.         Vector3 realPosition = transform.position - WorldMover.currentMove;
    14.         spawnPosition = new Vector3 (realPosition.x + randomPosition.x, 0, realPosition.z + randomPosition.z);
    15.         Instantiate(spawnArray[asteroidIndex], spawnPosition, transform.rotation);
    16.     }
    What am I doing wrong?
     
  22. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197

    Ok thanksno settings needed for vegetation studio only add vegetation studio to game scene ?


    and for iTS not know how work with ?


    and libary folder remove for rebuild i tried also before and now again not helps :(
    need i make the API update that popups now but when i make that whole project scripts etc not work anymore then much Errors then that not work anymore :(

    regards
     
  23. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Just generated scenes must have turned on gi in lightmap settings. It will be baked during build process.
     
  24. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    VS must be per terrain part or must be baked then could be 1 global. I see few config ways here.

    Try on clean project.
     
  25. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197
    how can make VS global for all terrains when i use it in game scene ?


    yes at clean project it work but why no errors or so to see with what other asset it conflicts ?

    regards
     
  26. Grendelbiter

    Grendelbiter

    Joined:
    Oct 14, 2016
    Posts:
    123
    How do I spawn objects from code with the right position?
     
  27. SkandYxyz

    SkandYxyz

    Joined:
    Mar 13, 2015
    Posts:
    83
    Hi,

    to explain it a bit more, i created split scenes from world scene and each split scene contains a terrain, marked as static. In split scene i did enable realtime gi in lighting settings and am able to get indirect lighting gi to work.

    scr1.png

    when i save the scene and load it again, the realtime gi lightmaps are gone and the terrain no more marked as static.
    i found out, that it's due to the attatched scene split manager script calling streamer.AddSceneGO on start. this function is in streamer.cs

    Code (CSharp):
    1.     /// <summary>
    2.     /// Adds the scene game object to collection
    3.     /// </summary>
    4.     /// <param name="sceneName">Scene name.</param>
    5.     /// <param name="sceneGO">Scene Game object</param>
    6.     public void AddSceneGO (string sceneName, GameObject sceneGO)
    7.     {
    8.  
    9.         ...
    10.  
    11.         if (...) {
    12.             ...
    13.  
    14.  
    15.             //sceneGO.transform.position += currentMove + new Vector3 (scenesArray [posInt].posXLimitMove, scenesArray [posInt].posYLimitMove, scenesArray [posInt].posZLimitMove);
    16.  
    17.         }
    18.  
    19.         ...
    20.  
    21.  
    22.     }
    as you can see, to fix this problem i commented out the sceneGO.transform.position line, as this updates the terrain position and so breaks static status and thus clears baked gi data.

    the problem i encountered then is, that when i play my game scene and terrains are streamed, they lose static status again and gi data is thus cleared.

    I appreciate your help.

    Best,
    Skandy

    edit:
    just found out, that when i set terrains to static in play mode, realtime gi works and gi data is there. so i need to find out, why terrains loose static setting or re-enable static in play mode after streaming
    edit2:
    but very strange behaviour: in game scene i have to disable auto generate lighting, else gi data is removed on playing game scene, even though the lighting settings are exactly the same. and even more strange static on terrains now can be disabled and it still works...
    edit3: next problem, in world scene, terrains get non static, every time I save the scene or try to precompute gi. creating gi for complete world not possible.

    I guess i found a solution with multi scene editing function:
    https://docs.unity3d.com/Manual/MultiSceneEditing.html

    in game scene you can load all levels, precompute static mesh gi and gi data is stored seperate for each scene

    Baking Lightmaps with multiple Scenes
    To bake Lightmap
    data
    for multiple scenes at once, you should open the scenes that you want to bake, turn off “Auto” mode in the Lighting Window, and click the Build
    button to build the lighting.

    The input to the lighting calculations is the static geometry and lights from all scenes. Therefore shadows and GI light bounces will work across all scenes. However, the lightmaps and realtime GI data are separated out into data that is loaded / unloaded separately for each scene. The lightmaps and realtime GI data atlases are split between scenes. This means lightmaps between scenes are never shared and they can be unloaded safely when unloading a scene. Lightprobe data is currently always shared and all lightprobes for all scenes baked together are loaded at the same time.

    Alternatively, you can automate building lightmaps for multiple scenes by using the Lightmapping.BakeMultipleScenes function in an editor script.​
     
    Last edited: Sep 20, 2018
  28. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Im not sure if it will work but my conception is:
    Create everything at big world, bake vegetation for vs and use this stored data for game scene. It will not spawny anything at runtime but it will be 1 file per world. Ofc for huge worlds its missed conception

    Normal conception is that you got 1 vs per terrain tile as vs use textures to spawn objects.

    You use floating fix position? If yes there is small calculation how to handle position difference in looped, floating fixed position. In manual there is small info about it because its only offset from time to time.

    Thanks for deep feedback! The thing is if you use floating point fix object coudnt be static but if you didnt it will be ok. I personaly didnt remmeber about auto ... but... in build even with auto you will get GI because maybe in playmode it will not be added but during build process unity will generate gi for all scenes. So for shorter build time it's better to have non-auto mode.
     
  29. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    @NatureManufacture
    Hey, any Idea yet how to pause floating point correction and streaming?
     
  30. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Small update will be available today:
    Version 1.9.5
    - fixed ui loading script (thx for community feedback)
    - manual update: a bit more info about parent object usage
    - manual refresh : info about current asset available for split etc
    Turn off streamers?
     
    Bartolomeus755 likes this.
  31. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Grendelbiter likes this.
  32. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197
    hello

    thanks

    will try when it work

    as said unity crash with worldstreamer in project.

    how can find out what asset makes problems ?

    because when add assets in new project with worldstreamer it makes problems / crash and in dmp and crashlog stand nothing what gile our what asset.

    regards
     
  33. Grendelbiter

    Grendelbiter

    Joined:
    Oct 14, 2016
    Posts:
    123
  34. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    I will check it if there issue. Thanks for info.
     
  35. A2GStudios

    A2GStudios

    Joined:
    Nov 21, 2016
    Posts:
    52
    I just imported world streamer into my project, it worked great a couple of months ago, this time I Am getting an error can you help me. Thanks

    Assets/WorldStreamer/Scritps/Streamer.cs(332,23): error CS0117: `UnityEngine.Application' does not contain a definition for `isWebPlayer'
     
  36. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    Yes, pls see my earlier posts
     
  37. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    We will add 2018.3 version. Seams that unity cut webplayer support:)
     
  38. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    You got right. Thanks for head up! We missed few fixes in this version. I upload correct now. Sorry for problems.
     
  39. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197
     
  40. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Hi
    Sorry but I have no idea why. Please download latest today version. I really never met anything like that since 4 years :(
     
  41. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197

    Found problem was with a other asset . now when remove it it works :)


    Also try to find now a good way with EasyRoads3D and iTS inteligeent traffic system .. You know good

    And try how to make it with vegetation studio.


    Or know you better ones then vegetation studio ?



    But next problem you have not like you said all tutorials at youtube are many missing last is Ring streaming and after that others should also come but no videos there.


    For floating point fix and so on ? Collider Streaming solution and so on. workflow with other unity assets etc.



    And you not added like said in videos a SPlit Terrain Solution to World Streamer ? because with the free one you suggest only 1 by one terrain works and at 250 and more errains this takes much time to it manually.


    Is there a way split multiple terrains at once ? so can to it over night automatic .



    Regerad
     
    Last edited: Sep 25, 2018
  42. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    We did not provide such a configuration in current version. It's rather up to user to modify code to support it.

    Um I know that different tools could export in tiles but... multiple terrain split.. hmmm i don't know such tool.
     
  43. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197

    and you not created one ?

    thanks i look how to find and for the other questions ? for videos etc i asked?
     
  44. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    I am confused what you are trying to accomplish. When you cut your terrain into tiles you select one big terrain, assign the size you want each tile and it goes through and cuts that one terrain into X amount of smaller tiles based on the size you set. You would only ever need to do it one time, unless you are wanting to cut the tiles you already made into sub tiles which would make no sense, you would just cut the main terrain into smaller tiles to begin with.
     
  45. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
  46. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197

    yes with 1 terrain thats no problem but when you have 250 and more its much work / time because not to automatic task 1 by 1 terrain split all selected tereains . because its already takes much time at 1 big terrain each of the 250 has width 6400 and length 6200 so 1 splitt at a terrain is not much.


    you also read my questions i wrote after your first answer some weeks ago ?



    also a way with T2M terrein2mesh that all selected terrains will be converted to low poly mesh ? not only 1 by 1 ?


    regards
     
  47. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Im not responsible for other publishers assets:) I can promiss that in future we will try to fill all this gaps;) I already answer I hope about everything in discord;). Feel free to catch me there
     
  48. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Nice MMO game based on World Streamer. Just take a look:)

     
  49. MarceloASG

    MarceloASG

    Joined:
    Jun 15, 2017
    Posts:
    23
    Is there a compatible AI Spawner system with the World Streamer?
    I am using Crux, but it gives the error: "No Terrain Found, Crux disabled"(using GoogleTranslate)
     
  50. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    Hi, my Terrain has a non power of two, odd offset and i can't change that anymore to sync it with the splitter.
    Is there any chance to offset the streamer or move the terrain, spit it, and move it back to its original position?