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:
    1,611
    We start working on world streamer 2.0 please put info what you would like to see in new version:)
    Yes leave this in your scene. if they use phiscis please use phiscis manager for them, when world will be removed they will not change their position.
     
    helgarddebarros likes this.
  2. red2blue

    red2blue

    Joined:
    Feb 26, 2013
    Posts:
    200
    Will the update to version 2.0 be a free one for existing customers?
     
  3. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Like always free or if any cost then not more then 5$. We didnt discuss this yet but until now we never charge any money for any update.
     
    red2blue likes this.
  4. lawsochi

    lawsochi

    Joined:
    Oct 24, 2016
    Posts:
    107
    Hello, could you please tell us about your plans for version 2? Or a road map?
     
  5. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    I will in upcomming monday. I will also set features list which you will get from us.
     
  6. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    I am still setting up World Streamer so I am not 100% sure how everything works yet, so these ideas may or may not be helpful for Version 2, but here goes.

    a) I was thinking of making a collider that matches the viewport of the camera. Then you set this per layer. Big objects, like buildings that cast shadows, and objects that cast light or make sounds, you exclude their layers. But small objects you set that if they are outside this trigger area they are disabled (renderers, colliders, etc) and when they enter this trigger area they are enabled. You could make the trigger area slightly bigger (10 or 20%) than the camera viewport so that you don't get problems with the shadows of these small objects.

    b) You have a script (like your physics disabler script) on each object (like inventory items or NPC's) in your Gameplay scene that checks which scene/chunk/area of the work scene this object is in. If that scene is unloaded, these objects renderers, colliders, transforms etc, are disabled. When they scene loads, they are enabled. The script must be able to keep track of the scene so that if that object moves to another scene (like if the player carries an inventory item to another scene or an NPC has moved to another scene) it will know where it is and whether it should be disabled. You should be able to choose what gets disabled. For example, on an NPC you might want to disable the renderers and colliders, but leave the transforms if the NPC is moving around.

    Hope this makes sense and I am not talking nonsense. :)
     
    Alex3333 likes this.
  7. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    A) is cool:)
    B) a bit complicated but we will think about this in brainstorm:)

    So list of features for 2.0 from our side:
    - 1 object to manage whole streaming and layers
    - direct asset bundle option
    - some fixes with looping and floating point fix
    - better light setup manager per layer
    - occlusion culling per layer (not sure yet)
    - light baking button for whole game
    - layer sorting by: object name, child, tag etc
    - garbage collector manager
     
    matteumayo and helgarddebarros like this.
  8. lawsochi

    lawsochi

    Joined:
    Oct 24, 2016
    Posts:
    107
    maybe I'll say stupidity, I hope you will forgive me :)
    new generations of CPUs are on the way to increase the number of cores (threads), is it possible to increase the threads in this case, will it be useful, and as far as possible?
     
  9. Devision4

    Devision4

    Joined:
    Jan 12, 2013
    Posts:
    1,292
    Whats the different between this asset and unity build-in occlusion culling?
     
  10. MarkusGod

    MarkusGod

    Joined:
    Jan 10, 2017
    Posts:
    164
    Culling only disables rendering, this fully unloads objects from memory
     
  11. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    This is unity case and it use as many cores as unity allow to load scene (parts)
    Culling disable render but object is still on cpu and memory and cost calculation.
     
  12. lawsochi

    lawsochi

    Joined:
    Oct 24, 2016
    Posts:
    107
    I understand this, and my question was whether there is an opportunity to solve this task better, given the lack of access to the source code of Unity. And whether it will be better from this.
     
  13. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    Just updated Unity to 2017.2.0b8 and I am getting these two errors.
     

    Attached Files:

  14. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    They remove web player support we will fix that tommorow and upload new version
     
    helgarddebarros likes this.
  15. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Done also we removed all warings , only this from standard assets demo scene left.
     
    helgarddebarros likes this.
  16. amynox

    amynox

    Joined:
    Oct 23, 2016
    Posts:
    79
    Hi,

    I'm facing a very "dangerous" bug here. Using Local Area updater and the "Delete empty scene" make unity freez and DELETE THE WHOLE PROJECT ASSET FOLDER !!!

    Here is how to reproduce :

    1/ Load Scenes from collections around center point
    2/ Unsplit Scenes
    3/ Remove some element that represent a whole scene (lets say terrain element in myTerrains Streamer collection)
    4/ Split scenes
    5/ Save loaded Scenes (and *Bakup your project*)
    6/ use the Delete empty scenes feature
    7 / Unity freez and your project's Asset folder is now deleted !!!!!!!!

    If you didnt catch the bug after Step 6 you can try this (work 100%) :

    After step 6 :

    1/ Unload saved scenes
    2/ Load Scenes from collections around center point
    3/ Delete empty scenes
    ==> Unity freez and your project's Asset folder is now deleted !!!!!!!!

    Tested 2 times using Unity 2017.1.0p5 and catch the bug every time ! Maybe its unity fault ?! ...

    Thanks
     
    Last edited: Sep 2, 2017
  17. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Hi this seams like rather engine bug or something with your actual instaled engine version. Unity 2017 is full of bugs crap and mistakes. Unity 5 was usable at 5.4 or stable 5.6 before was a nightmare. So i would expect that unity have some bug anyway we will check this after weekend asap.
     
    amynox likes this.
  18. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Reproduced now we check if this engine error. Do not use delete empty sceens for a moment.

    Edit: fixed and its online
     
    Last edited: Sep 4, 2017
    recon0303 and amynox like this.
  19. amynox

    amynox

    Joined:
    Oct 23, 2016
    Posts:
    79
    Great i will give it a try...

    Can you please have a look at the previous bug i reported (https://forum.unity3d.com/threads/r...-create-big-world.325673/page-21#post-3181934)

    Basicly, When you use LocalAreaUpdater (do an Unsplit Scenes) and you add new objects that will NOT fit in any existing scenes. When you Split Scenes again NEW scenes will be created for the newly added objects. Thats the expected behaviour.

    Now the bug is:
    1/ when you hit the Save Loaded Scenes, the newly created scenes will be added to the filesys and the collection prefab will be updated (at least for now).
    1.5/ Update the Scene build list
    2/ click play => newly added object appears !
    3/ Save everything and close Unity
    4/ Next unity bootup => Click play again, The newly added object are NOT loaded !!!!! (the newly created scenes does exist in the build list)

    after few investigation, found that the Names collection in the concerned collection prefab is restored to the default state and forgot about the newly created scenes added by local area updater => you just lost a day of level design !!!!!

    Can you please fix this annoying bug ! i lost my world update 3 times cause of this !!!

    This bug only happen when Local Area updater create new scenes that doesnt exist initialy in the collection. When i added the newly created objects to the World Scenes and use Scene Splitter everything work fine !

    ps: im using Unity 2017.1.1f1

    Thank you
     
  20. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    We know that you use 2017 because bugs are only in 2017... this crashing crap is our nightmare in shaders area. Anyway.. this bug is on our road today so dont worry we will catch it today:)
     
  21. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Done. I will upload this as soon as unity publisher panel for 2017 will start work again ;/

    Done - online.
     
    Last edited: Sep 11, 2017
    amynox likes this.
  22. amynox

    amynox

    Joined:
    Oct 23, 2016
    Posts:
    79
    You are the best !

    Thanks

    EDIT: The actual version in asset store is 1.9.4 and when i imported nothing change (no script update...) ?!
     
    Last edited: Sep 11, 2017
  23. Muhamad_Faizol

    Muhamad_Faizol

    Joined:
    Jan 21, 2017
    Posts:
    43
    Hi,

    I'm trying to download your asset's demo apk listed here; http://indago.homenko.pl/world-streamer/ but it seems that the archived apk is damaged? I can't extract the apk to test it on my devices.

    Thanks.
     
  24. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    I didnt change number. Change should be online. We get removed pending review from asset store manager so our updates are online in 10-20 min max

    We will check it, its pretty old demo:)
     
  25. amynox

    amynox

    Joined:
    Oct 23, 2016
    Posts:
    79
    Hi,
    I understand taht your didnt change the version number. But it seems that the currently available version in the asset store only integrate the "Delete empty scene" bug that i've downloaded on Sept 4 ! (version 1.9.4). I saw that the asset was updated in the asset store on Sept 11 but when i download the last version there is no change in the source code !!! so maybe you forget the push the last version with the last bug fix (the bug about name collection resting...) ! Can you please do a quick check in your silde and let us know ?

    Thank you
     
  26. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Let me check:)
     
    amynox likes this.
  27. four-d-oz

    four-d-oz

    Joined:
    Aug 18, 2014
    Posts:
    4
    When using floating point fix and parenting the follow target(Player Rig) to another gameobject (cockpit seat position on an airplane) at runtime, do I need to add the ObjectToMove script to all objects above my player target object. Meaning all parent objects and children? Hope this makes sense.
     
  28. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Yes all objects that are not streamed and must fallow player during floating fix process must have this script. Only 1 parent need it. We will simply change parent position all childs will fallow this as well and any position relation will not going to be broken.
     
  29. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    A little problem. The first time I did this it worked fine. I have redone some things in my project and on the second attempt my Navmesh won't show in my Gameplay scene. The second image is my Navmesh in my Work scene, all good. I then duplicate it, move the copy to the Gameplay folder, and change the name from "Navmesh 1" to "Navmesh", and open the Gameplay scene (first image). Previously this worked and the Navmesh showed up. Now it does not. Any ideas?
     

    Attached Files:

    • n2.png
      n2.png
      File size:
      398.4 KB
      Views:
      362
    • n3.png
      n3.png
      File size:
      318.1 KB
      Views:
      318
  30. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    I just started using this magical asset, but here is one problem appeared: if I use Terrain Culling System script on my splitted terrains, very often terrain I am standing on disappears. I want to use this functionality, but I can't until this happens. Please check this bug.
     

    Attached Files:

  31. amynox

    amynox

    Joined:
    Oct 23, 2016
    Posts:
    79
    Hi,
    Some time when using Local Area Updater after loading scenes around center point when i try to save all loaded scenes i get this error :

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. LocalAreaUpdaterEditor.SaveScenes () (at Assets/WorldStreamer/Scritps/Editor/LocalAreaUpdaterEditor.cs:461)
    3. LocalAreaUpdaterEditor.OnGUI () (at Assets/WorldStreamer/Scritps/Editor/LocalAreaUpdaterEditor.cs:268)
    4. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    5. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    6. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    7. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    8. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:272)
    9. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:265)
    10. UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:232)
    11.  
    Of course this error is annoying in the same way as the past reported one because we cant update loaded colllection prefab ... That means we have to copy and past all the changes in other scene, and load all the collection again with the local area updater and past back the changes crossing the fingers that now LAU will do the save !!!

    Can you please fix this and again is in Unity 2017.1.1
     
  32. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Last time did you also rename it?
    We will check :D
    Editor or play mode? Because at editor this could not refreshing. Hmm this generates spheres and use low unity functions to check visibility. Maybe spheres are to small. There should be gizom option to visualise them. If sphere is visible in camera terrain will show up. Btw how many cameras you got at the scene? Because system automaticly should find main camera and use it to check visibility. Btw culling is risky sometimes I dont know if unity fix crashes from turning on/off terrain parts.
     
  33. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    Yes, I renamed it the last time as well. I tried a different method, I baked the Navmesh, which creates the folder "Work" with the Navmesh inside, and I duplicated that folder, and renamed the folder "Gameplay". This does make the Navmesh appear in my Gameplay scene, but it is centred, instead of covering the actual area it does in the Work scene. I tried to set it's position in the inspector but this seems to have no effect.
     

    Attached Files:

  34. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    I didnt try this method for long, last time in 2 years ago in mmo game so hmm hard for me to say. Maybe you hsould try dynamic navmesh? It works really cool and it do not take memory space:)
     
  35. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Done I will upload this in 1h so available will be in 1,5h
     
    amynox likes this.
  36. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    Thank you for reply! This happens in run time. I have two cameras on my player: first one is "far" camera, and second one, that lives as child in "far" camera, is actually main (this weirdness required by a day-night-weather-environment I am using). Maybe algorithm finds the "far" one and behaves that way because of it? Even if so, it's always good to check if terrain you are going to hide is the one that player is located on -- and do nothing in this case. This logic will eliminate that kind of problems. Single "If()" will save many nerves))
     
    Last edited: Sep 18, 2017
  37. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    And one more... request I guess. I am going to stream giant terrain that will be logically divided into "locations", so I will have tons of layers. i.e. "Location 1 -- Terrain", "Location 1 -- Medium", "Location 1 -- Small", "Location 2 -- Terrain", "Location 2 -- Medium", "Location 2 -- Small" and so on. Up to 8 locations. I need this kind of division because if I change anything in Location 2, I do not want to regenerate ALL my Terrain layer -- only Location2-streamer-related. It would be great if I'd have ability in UI to logically group, collapse, layers. This will not affect any streaming logic, it's only for UI.
     
  38. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Hmmm this will be in version 2.0 anyway this could give logical problem with ring streaming and other systems;/
    Hmmm thats why you have issue 2 cameras. Maybe you have to switch camera at the script too:)
     
  39. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    Great!

    I' try that, thank you!)
     
  40. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    333
    Good afternoon. I have a serious problem in the project. I have terrain cookies and it loads around the player when it goes around the world. When the map loads, a very large peak arises !! Is it possible to avoid? I do not want to give up your asset. This download greatly hinders the game. This happens every time the chunks world is loaded
     

    Attached Files:

  41. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    +1
    Exactly same problem. 45 to 4 fps when loading terrain piece into game scene. Maybe some optimization tweaks needed I don't know about?..
     
  42. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    There are few things,
    a) please test at build:) as we mentioned in manual:)
    b) much depends from terrain data if splatmap and heightmap have huge resolution in compare to terrain size there is no system that will handle this. Splatmap and heightmap is uncompressed huge rgb24 file. So check this 2 things;)
     
    Vagrod likes this.
  43. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    Manuals! Right, I must start reading manuals) Ok, I'll try it after build. Resolution of a heightmap is something about 1200x1200 72ppi for 64km2 terrain, so each piece of 1km2 contains heightmap of 150x150px, it's okay I guess.
     
  44. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    333
    I'm using RTP. I contacted the developer. He said that the splatmap can not be made any compression. (Decrease their size). and how to be then ?? I have 2 pieces of 1.5 mb on each terrane. any ideas??
     
  45. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    What splatmap res you use? and heightmap res? (its in terrain setting)

    We have here few users that use rtp so its possible:)
     
    Last edited: Sep 22, 2017
  46. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    Since I have same problem, I'll write my terrain specs:

    Heightmap resolution: 513
    Detail resolution: 512
    Res per patch: 16
    Control tex resolution: 512
    Base tex resolution: 512

    I have drop from 85-90 down to 12 FPS on terrain piece load. I've left only terrain (only one streamer): no grass, no trees, no objects -- plain terrain. With 1024 res framedrop goes down to 4. On terrain I have only Terrain Culling script except standard ones. Pixel error is 128.
    Streamer loads pieces with step 1 of size 1000x1000.
    Same results in Unity and after build on standalone exe.
     
    Last edited: Sep 26, 2017
    Alex3333 likes this.
  47. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    You have something else at scene?
    Did you test at build?
    Also you could adjust texture async loading in unity setting. (In manual there are tips which will help you)
     
  48. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    No, I have only terrain and camera. Yes, results are same.
    OK, I'll look into it, and if nothing will help, I'll upload my scene here so you could look at it.
     
  49. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,611
    Sure i will look into it. Unity terrain is pretty problematic. I always advice to use 9 terrains loaded max and rest should be low poly meshes for far distance. So Terrain part should be size of area that you need detailed ( max trees rendering distance). If you use external system for vegetation like vegetation studio or any other you could render hp terrain shorter etc.. Its always matter of amount of data and how you manage it.
     
    Vagrod likes this.
  50. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    63
    Great! Thank you)

    Right, I will have no more than 9 terrains loaded at a time in a finished game, because player's field of view will be limited by terrain hills and trees, I won't need extra low-poly circle or terrains. For now, for testing purposes, I turned off all trees from streaming (I'm using AltTree) and all vegetation -- to debug terrain loading problem alone.
    I'll play around with texture loading settings as you suggested and will prepare simple scene to upload here -- if I'll fail to eliminate framerate drop by myself.
     
    Last edited: Sep 27, 2017