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
    World Streamer 1.5 is uploading. It will be available soon. It generate scenes 20 x faster and we fix m any bugs, sometimes SC_collections haven't been updated by engine. Local Updater tool is in beta, but after very looong fight it should be without any bug.
     
  2. SuperNewbee

    SuperNewbee

    Joined:
    Jun 2, 2012
    Posts:
    196
    I did Arizona last night (300 km2) using world streamer.

    worked perfectly.
     
    TheSeawolf likes this.
  3. MarcusWatson

    MarcusWatson

    Joined:
    Dec 9, 2014
    Posts:
    53
    Out of interest what did you use for digitising it - Mapity/WorldComposer/Terraland?
     
  4. SuperNewbee

    SuperNewbee

    Joined:
    Jun 2, 2012
    Posts:
    196
    World Composer with Terrain composer. My sat imagery was a bit low res so I used terrain composer and rtp to add the textures instead.

    Tried Mapity for the roads but failed to get the roads in after a few tries. (Only managed to get the highways for some reason - and only for one tile at a time)

    I got lazy so I used t-90 tank instead of car to deal with lack of roads.

    It was just a boredom project. Now I am trying a much smaller region with 64x64 tiles with 2048 res sat maps at highest zoom but I am having difficulty getting them all in one scene in order to create the "work scene" that world streamer needs before splitting. Unity seems to not like so many tiles at once, but I have managed to do this high number before.
     
    TheSeawolf likes this.
  5. MarcusWatson

    MarcusWatson

    Joined:
    Dec 9, 2014
    Posts:
    53
    Thanks - always curious to hear what folks use. Just not found anything that brings roads in correctly. Maybe when EasyRoadsv3 comes out it'll get better.
     
  6. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    You could use 1.5 local area updater to work on smaller area or to add more area. Simply add scene collections, put 1/2 of the terrains or smaller amount (your choice) in correct place, than click split and save loaded scenes. You will add new scenes without work on big world. In 1.5 you dont need big world scene to create huge world. Even for initial split, now you could make it in parts.
     
    Velo222 likes this.
  7. Redrag

    Redrag

    Joined:
    Apr 27, 2014
    Posts:
    181
    1) To clarify, in the latest update can tiles by loaded based on where the camera is looking?

    2) At the moment I am using Terrain Switch and was thinking of adapting it to load and destroy prefabs (then unload unused assets). Will Terrain Streamer give me any advantage over this in terms of performance?
     
  8. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    1) 1.5 update contain system to locally update your world which is split into parts. First initial version is able to load local area using multiple layers and you will able to modify it, than click save. All changes will be saved in split scenes or if it's necessary system will create new scenes. This will give you also ability to work on your world with few devs, or work at editor with extremely big and detailed world without problems with cpu at unity editor.
    2) World Streamer is loading and deloading terrains, if they are close enought or to far (you could change this range dynamically). Loading and destroy prefabs are much slower than world streamer streaming conception. With World Streamer, you don't need any prefab or code, also you could load models. If you change your mind about terrain chunk size, you could split terrain (out side free tool, look at FAQ) and with 2 buttons stream them in smaller chunks etc.
     
  9. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Hi new version 1.5 is up!

    Here is the feature list:
    - this world streamer version still support older unity versions!
    - scene creating process is 20 times faster, improvment requires unity 5.3+
    - added new loading/deloading improvment requires unity 5.3+
    - innovative local area updater tool [beta], it requires unity 5.3 +
    - additional support for huge teams that work on one world, , it requires unity 5.3+
    - additional support for huge world, it requires unity 5.3+
    - if you change world streamer to 1.5 from older version you have to rebuild your scenes (it's only few seconds now). We added plenty of informations to our scripts so they must be filled by system.

    In the meantime, we released our winter ground pack. Take a look if you are interested:
    Winter Ground Pack
     
    TheSeawolf and John-G like this.
  10. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    it's working with world machine ?
     
  11. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Hi,

    Sure, but you have to export your terrain in chunks.
     
  12. Redrag

    Redrag

    Joined:
    Apr 27, 2014
    Posts:
    181
    Are there any plans to streaming based on camera view? I have large areas of sea and islands so bringing in tiles or scenes based on proximity is not much use to me.
     
  13. SuperNewbee

    SuperNewbee

    Joined:
    Jun 2, 2012
    Posts:
    196
    I like the new update. Thanks

    I would like to know if there is a way to make the scene splitter choose objects that are child of parent?

    I think right now it uses parent game object location (located in root) to calculate position of split. If I have 10000 rubble pieces, then I need to put the in the root of work scene in order to spilt then correctly. If I add another 5000 rocks for making another layer stream it becomes very hard to manage because scene root has many objects. I would like to know if I could keep all rubble objects inside rubble game object and all rocks as child of one rock game object?

    Also is there a setting that can make the world composer tile numbers match the ones generated by world streamer?
     
  14. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Basicly it is based on camera view. You only have loaded things that are close enought. You could load small object in close range, big in big range.

    There is no engine that have streaming based on camera view (if you mean rotation etc). Everything must be loaded in back ground to avoid spikes. So if you will rotate camera and you haven't loaded area around you, player will see loading process. If something is small you simply put it on layer with close range objects. This will save your culling at cpu and memory.

    Nope, ofc you could make a simple script to upack your objects from folder to split them. You always could left your models in splited catalogs. If you have problem with layers you should use prefix for spliting, it will put models in correct place automatically. I'm not sure im understanding your problem.

    I'm not sure about world composer, I haven't use it for long time.
     
  15. SuperNewbee

    SuperNewbee

    Joined:
    Jun 2, 2012
    Posts:
    196
    the unpack script idea worked great. Here is my newb code if anyone needs it. I don't know better, but it works

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. //put this script on parent gameobject
    5. public class Unparentchildren321 : MonoBehaviour {
    6.  
    7.     [Header("Click Gearbox on right and choose Unparent321")]
    8.     public int dummyvalue = 1; // needs this for some reason
    9.     [ContextMenu("Unparent321")]
    10.  
    11.     void Unparent321() {
    12.         //Unparent children on this gameobject
    13.         transform.DetachChildren();
    14.      
    15.         //Root object will be destroyed as well and it children will be unparented
    16.         //DestroyImmediate(gameObject);
    17.     }
    18. }
     
    John-G likes this.
  16. buc

    buc

    Joined:
    Apr 22, 2015
    Posts:
    123
    Regarding the floating point error fix, have you solved the following problem?

    While you can distribute the loading of terrains over several frames with async, moving the terrain (which is needed when resetting the position) gets done in only one single frame and not distributed over several frames. So the engine updates the tree's and vegetation's new position in one step. With a vast amount of grass this causes a huge lag, in my test from 1200 frames (yes 1.2 thousand) down to 40 frames.

    I've also tried a scene with 64 terrain tiles (8x8) in order to have smaller terrains and smaller grass areas. But this wasn't satisfying as expected :(

    In your demo I can't see any grass, but if your system can handle the above problem it's genius and I'd love to buy it.
     
  17. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Hi.
    In curved world demo (planet with plane) video I had huge amount of trees (speedtree) and I used looped and floating point fix system. I haven't any problems and spike. So you also shoudn't have any issues. Just buy and try:) If you will get any spike I will give additional info, that will fit your scene/world architecture. I haven't hear that anybody have problem with world streamer and terrains. Basically we don't load terrains as instantiated terrain prefabs, so we avoid huge amount of problems. Btw in system that you are curently use, you have cpu spike from culling?


    I am happy that I could help you. :)
     
  18. Ben-BearFish

    Ben-BearFish

    Joined:
    Sep 6, 2011
    Posts:
    1,204
    I know it says it works for every platform, but has this been tested on WebPlayer/WebGL?
     
  19. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Yes, we have separated loading function for web player. Few devs asked about them so we support it.
     
  20. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    NatureManufacture I had your Skype info, I believe, but I never get a reply, so can you re-post it. Just to be sure. Also have you tested this with Horizon On, and 3D Roads yet?? I been using World Streamer for awhile now and been having issues with using those two assets with it.

    I asked you this awhile back, but you said it was on your list, so I was wondering if you had a chance to look at it yet? With Horizon On.

    Any help would be great!.
     
  21. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Hi. Because you don't have me on your skype list. You don't get any message from me. I just resend you invite. What issues? I will take a look.
     
  22. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    I was on your list, and was removed for some reason? I sent a message back to see why.. I posted my questions , please read my last post. Thanks!
     
  23. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    I try to contact you all the time. I haven't remove you:). It looks like you don't recived any messages from me. I see yours... I will send you skype history as private message and please confirm that you recived this messages.
     
  24. SuperNewbee

    SuperNewbee

    Joined:
    Jun 2, 2012
    Posts:
    196
    Does anyone know if there is a max number of scenes that I can add to the build settings?

    I am trying to super maximize the density of objects in my build. (desktop 64) and I just want to know if splitting my scene into tens of thousands of splits is ok.
     
  25. RadioactiveXP

    RadioactiveXP

    Joined:
    Nov 6, 2013
    Posts:
    69
    In your test terrain folder for the tutorial, you have a series of Terrain files called testTerrainXX, where they are numbered sequentially; how are they organized? What tool did you use to slice them? I have your slicer tool; what I am really looking for is a tutorial that would include if I have a huge world created by world machine; how do I use your program to stream it without pre-slicing it (or if I need to preslice it, some info about that process would also be helpful).
     
  26. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    wierd maybe a bug?? It shown, I was removed, because when someone removes you on Skype it shows a ? mark and you can't see why they are online.. That is what I seen with you..Anyways, I seen now I was re-added? I dunno.. I can see your messages now I will talk to you on Skype.

    Thanks for looking into it. I will talk to you on Skype !
     
  27. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    I tested with 4-6k and there are no problems, so probably there is no limit or it's 65k or more.

    This test terrain I made manualy but in FAQ I give a link http://kostiantyn-dvornik.blogspot.de/2013/12/unity-split-terrain-script.html to free tool, it will slince your terrain. World Composer is also exporting terrain in parts with correct xz names and positions. If you want to stream terrain you have to cut it into parts (by this free tool) or export it in parts from world machine. Parts should be as big as future sectors that will contain terrains, or sectors should be as be as your terrain chunks.

    Yeah now it's work fine. You finally get my messages.
     
  28. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    For the "floating point fix" feature, at what distance does the fix kick in? Or is this configurable?
     
  29. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Hi everyone!
    We are on unity sale madness! It's good time to buy World Streamer 1.5! You can save 50%!

    You can setup this distance in sectors, so it's flexible.
     
  30. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    OK. I was just curious because I'm probably only going to be going as high as 4kmx4km, but possibly 8kmx8km. I wouldn't think it would even kick in for terrain those sizes so I was just wondering.

    I am definitely picking this up today. It's one more missing piece in the puzzle of our game development process.
     
  31. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    117
    Hi
    Can you tell me how this performs on mobile. i already have the 'sectre core' streaming asset and found on iphone 4s and ipad3 there is a big spike/pause when a sector is loaded/streamed. How smooth is this? have you compared the two?
    thanks
     
  32. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Hi.
    I haven't try sector stream but.. World Streamer is able to split your world to as small chunks as you want, so if you have spike, you simply could change streaming sector size and try with smaller parts. By clicking 2 buttons you are able to resplit your world into biger or smaller sectors, so you can easly find best streaming speed.
     
  33. hakankaraduman

    hakankaraduman

    Joined:
    Aug 27, 2012
    Posts:
    354
    I also want to buy this while it's discounted, just a thing I want to ask, how much does it increase the apk file size, given that android limits apk to 100 mb, it would be good to know if there is an expected percentage of the increase
     
  34. DarkXess

    DarkXess

    Joined:
    Sep 30, 2014
    Posts:
    136
    Just purchased, thanks for such a wonderful asset - will give my review upon playing around with it for a while and getting used to it etc :)
     
  35. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Sectors take only few kb, so it will not increase apk size.

    Thanks! If you have any questions, you are always welcome!
     
    DarkXess and hakankaraduman like this.
  36. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    We have been interested in trying this and with it on sale, it seems like a good time. However, I have concerns about the documentation. Any chance I could see that before buying? I am so tired of buying assets with little to know docs and the reviews for your asset did mention lack of docs. Maybe you have fixed that issue. :)

    Thanks and look forward to hearing back from you.
     
  37. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Tomorrow we will share doc if you need:)
     
    Teila likes this.
  38. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Thank you.
     
  39. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Basically doc is big, but but.. You know peoples write books about memory streaming....World Streamer is very simple and automatic. We want avoid developer mistakes. Ofc devs always asking, how big sectors they should use etc etc.. It's very individual thing for every game. I include huge amount of info in doc but peoples still want more:D
     
  40. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Big is fine with me!
     
  41. DarkXess

    DarkXess

    Joined:
    Sep 30, 2014
    Posts:
    136
    Ok, just imported this with GAIA and I'm getting a lot of warnings, as such:

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(1028,48): warning CS0618: `UnityEngine.Object.FindObjectsOfTypeAll(System.Type)' is obsolete: `Please use Resources.FindObjectsOfTypeAll instead'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(940,35): warning CS0618: `UnityEditor.EditorApplication.OpenScene(string)' is obsolete: `Use EditorSceneManager.OpenScene'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(931,241): warning CS0618: `UnityEditor.EditorApplication.currentScene' is obsolete: `Use EditorSceneManager to see which scenes are currently loaded'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(929,43): warning CS0618: `UnityEditor.EditorApplication.OpenScene(string)' is obsolete: `Use EditorSceneManager.OpenScene'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(927,43): warning CS0618: `UnityEditor.EditorApplication.SaveScene()' is obsolete: `Use EditorSceneManager.SaveScene'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(907,43): warning CS0618: `UnityEditor.EditorApplication.OpenScene(string)' is obsolete: `Use EditorSceneManager.OpenScene'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(903,43): warning CS0618: `UnityEditor.EditorApplication.SaveScene(string, bool)' is obsolete: `Use EditorSceneManager.SaveScene'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(880,57): warning CS0618: `UnityEditor.EditorApplication.currentScene' is obsolete: `Use EditorSceneManager to see which scenes are currently loaded'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(872,35): warning CS0618: `UnityEditor.EditorApplication.SaveScene()' is obsolete: `Use EditorSceneManager.SaveScene'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(772,241): warning CS0618: `UnityEditor.EditorApplication.currentScene' is obsolete: `Use EditorSceneManager to see which scenes are currently loaded'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(740,57): warning CS0618: `UnityEditor.EditorApplication.currentScene' is obsolete: `Use EditorSceneManager to see which scenes are currently loaded'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(733,35): warning CS0618: `UnityEditor.EditorApplication.SaveScene()' is obsolete: `Use EditorSceneManager.SaveScene'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(301,50): warning CS0618: `UnityEditor.EditorApplication.currentScene' is obsolete: `Use EditorSceneManager to see which scenes are currently loaded'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(96,55): warning CS0618: `UnityEditor.EditorApplication.currentScene' is obsolete: `Use EditorSceneManager to see which scenes are currently loaded'

    - Assets/WorldStreamer/Scritps/Editor/SceneSplitterEditor.cs(84,50): warning CS0618: `UnityEditor.EditorApplication.currentScene' is obsolete: `Use EditorSceneManager to see which scenes are currently loaded'

    - Assets/WorldStreamer/Scritps/Streamer.cs(218,61): warning CS0618: `UnityEngine.Application.LoadLevelAdditiveAsync(string)' is obsolete: `Use SceneManager.LoadSceneAsync'

    What have I done wrong, something my side or maybe something I forgot? this is important into a fresh projected too.
     
  42. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
  43. DarkXess

    DarkXess

    Joined:
    Sep 30, 2014
    Posts:
    136
    5.3.1f1 and yes, I know they are only warnings, its errors I'm afraid of so its no biggy really lol, and yes its still working ok, just asking as I was sure :)

    Edit: just updated to 5.3.3f1 (latest version) and still getting the warnings :(
     
    Last edited: Feb 25, 2016
  44. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    I've not installed it on 5.3.3f1 yet, but will do later and see if I get the same.
     
    DarkXess likes this.
  45. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Unity 5.3 have few own problems (MultiSceneEditing) that we had to avoid, but those warnings don't broke anything. Just nothing important, don't worry about them.

    Documentation LINK
     
    DarkXess likes this.
  46. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Thank you. :)
     
  47. barge9

    barge9

    Joined:
    May 13, 2015
    Posts:
    12
    Nice! just purchased. Can't wait to try it out. Looks really cool, thanks!
     
    NatureManufacture likes this.
  48. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    got bad trip with pivot point



    please help
     
  49. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Does all GDN objects have pivot position 0 0 0? If this is model and you coudn't change that, you alway could put them in mother with correct position.
     
  50. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    yes try found working flow mobile
    loading stop at 50 % and now info on console