Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    Dismiss Notice

[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,602

    I know this is old, but don't think it was answered, anyways... I will answer it, yes you can use L A M. That is more of a shader tool.. Far as streaming Vegetation......Check out Vegetation Studio its coming to the store any day and will work well with World Streamer....and stream Vegetation among other things... Nature works with that developer with his tools...So I suggest to get it soon as it comes out..
     
  2. KRD-Games

    KRD-Games

    Joined:
    Nov 22, 2017
    Posts:
    4
    In the following scenes I'm also using demo-collider from the package as comparison.

    1. In this demo I'm going mainly forth and back:
    collider1.jpg
    Furthermore in this instance I managed some how to get the house interior in a state of "always showing".

    2. Another Problem:
    If we have more than one instance of the same collider, the loaded collider scenes are all in the same postion. (The last edited position!?)
    collider2.jpg
     
    Last edited: Nov 29, 2017
  3. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,092
    I'm sorry recon, I half recognized your name, half say you talking about MapMagic after I was talking about it XD

    I'd love to hear more about how you guys are going about getting past 20km. I'm sure there's some approaches to the problem that just haven't registered in my brain yet. I'm 99% self-taught, so there are some things I just don't know are possible =O

    I'm just trying to let my player travel an unlimited distance, but in a single scene if I go much beyond 10-15km I start getting float precision errors and it just gets worse the farther I go. I'm using MapMagic which uses world coordinates and I have not yet been able to successfully bend it to my will =[

    What happens when you go past 10km though? You move everything back to zero and adjust your terrain data usage accordingly? If you just keep placing tiles, you'll still run into float precision errors. Or are you moving around different scenes somehow?

    There's something to the process I'm not understanding.
     
  4. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,602

    no worries, I wanted to make sure I wasn't losing my mind, getting old here, lol
     
    malkere likes this.
  5. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,602
    ya, what I do or would do, is export OUT your height Maps out of Map Magic so you have your height map and tiles. I wouldn't be using MM with WS..... I would just use World Streamer.... and export height maps out as stated..

    I have not worked with endless terrains yet in World Streamer, but I do work with three games now with World Streamer mobile, PC and console, all have large maps.. two are over 20 Km.... One is on a server loaded all the time...Other is handled, locally like you would any single player game more or less, it just loads, a certain amount of tiles and unloads... based on the camera ...Also I set the culling distance, and use Ring STREAMING for performance reasons. but I may change that . still works well.

    Endless terrains, it shouldn't be much different than that, I would think as Bart pointed out... I would think it should load the tiles and unload until end of the chunks and restart back over. to the first chunk again I have not used endless, nor used much in my career. I typically make large maps though for many years.. and made my own streaming tool like WS...but I have to many assets to update and Bart is a stand up guy who gave great support so it was a no brainer to buy WS...It has never let me down....

    I'm sure Bart will help you, with your issue. or helping you understand it more.. I'm not sure how else to answer it other than what is already been said. But Bart will come up with something I'm sure so you can understand it better.
     
    malkere likes this.
  6. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,092
    Thanks again for the replies @recon0303 I do understand how to go about tiling the terrains, pooling methods, moving the back row to the front as you move around, I can wrap my head around that. I just don't get how you go about keeping the player from going too far from zero. I've never tried to "shift" into another scene, and frankly it may be that simple (simple being relative of course).

    I should say when I say 20km I mean from 0, not 20km in length, aka +/-10km from the start. I need more like 200km-250km+ squared. But 20x20 would be a decent start and I'm leaning more and more towards just limiting the world to that for initial release...

    My custom attempts at shifting just moved everything back to zero and made the total amount shifted a public variable for anything that needs to know, like terrain noises, so that when x20z0 is brought into the position of x0z0 after shifting -20km on the x axis, it knows to generate itself as x20z0 not x0z0, and that's saved building data, mined resources, etc., not just heightmap data, all saved in an x20z0 file.

    I'll probably pick up WS on Saturday and see if I can work something up with it. Maybe even using TC2 to generate the heightmaps instead of MapMagic, partly in hopes that brings in some better compatability... until then I'll re-read the manual once more.
     
  7. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    Ok so....

    This is the same scane loaded few times by collider? I think each collider should be separated scene but.... i should work even with shared scene... I must think about this.

    Not 10km 10 tiles, t restart is in tiles, yes we move everything to 0 again and write how much unity we moved in which direction so this info could be used for spawning or multiplayer communication.
     
    recon0303 and malkere like this.
  8. KRD-Games

    KRD-Games

    Joined:
    Nov 22, 2017
    Posts:
    4
    In ColliderStreamerManager.cs line 57:
    if (item != null && item.sceneName == colliderScene.sceneName)

    -> Every scene is assigned to the first colliderStreamer in the array.
    -> There must be a way implemented to distinct duplicates of colliderStreamers and colliderScenes.
     
    Last edited: Nov 30, 2017
  9. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,602

    Still confused? It shouldn't matter what terrain tool you use. But that is up to you... any of them will work. If your doing runtume, then I can understand.. why you would want this.....I found TC2, Runtime easier to work with. I have not used Map Magic a ton, and when I did, it never suit my purpose as it didn't work well with your OWN height maps.

    Best of luck, I think you will enjoy World Streamer and find it helpful.... Also... if you get TC2, or have it...I suggest to check out Node Painter 2, for TC2, Seneral's tool which makes easier even nicer to use. /Cheers.
     
    malkere likes this.
  10. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,092
    I think I'm just too used to using MapMagic, trying to bend it to my needs unsuccessfully. I've owned TC2 since it was released, and I just bought World Streamer. I'll try and get a simple infinite setup running tonight/tomorrow, and maybe move some of my other game tools to Bart and Nathaniel tools if all goes well =D Certainly lots to choose from!
     
  11. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,602

    TC2 is a great tool I used TC1 for many years, and was the first tester for TC2, it has alot you can do with it. I tend to make stamps using World Creator Standalone. So using all these tools we have to pick from you for sure should have no issues. Also with GAIA 2 coming one day soon, we will have another.
     
    malkere likes this.
  12. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,092
    I used TC1 as well and was in TC2 beta as well =D I do not use stamps or anything premade though. That's one of my main concepts and why it's a little more difficult for everything I do. Pure noise.
     
  13. TalkieTalkie

    TalkieTalkie

    Joined:
    Jul 5, 2012
    Posts:
    122
    Has anyone tested this out with Voxeland yet?

    I was using World Streamer with Gaia before but ditching Gaia for Voxeland now. Will have to try World Streamer with it, would be nice if they work together without any issues.
     
  14. Stefan86

    Stefan86

    Joined:
    Aug 31, 2017
    Posts:
    53
    hey .. I have a problem .. my player is created before the first terrain is loaded and therefore it keeps falling down ..
     
  15. KevinCain

    KevinCain

    Joined:
    Nov 8, 2016
    Posts:
    85
    Prior to streaming setup, I was able to poll the distance between a bird character and the terrain with this raytrace call:

    Code (CSharp):
    1. downRay = new Ray(newPosition, -Vector3.up);
    2. if (Physics.Raycast(downRay, out hit)) heroScript.heightAboveTerrain = hit.distance;
    Now, after configuring streaming in WorldStreamer, the above hit.distance returns 0. The positions in world space are the same, so I don't see why the ray is not intersecting the WorldStreamer terrains.

    Anyone with a similar experience willing to chime in?

    Note: I have two streamers -- a major streamer for Unity terrains and a minor streamer for 'ring' streaming meshes.
     
    Last edited: Dec 8, 2017
  16. KevinCain

    KevinCain

    Joined:
    Nov 8, 2016
    Posts:
    85
    I can't seem to find any reference for adding ‘Terrain Culling System’ to prefabs -- at what stage do you recommend adding these? Before splitting and generating scene collections, or after?

    Is this culling purely distance based? Or does it test the camera frustrum? It seems this is not occlusion based from the little I can find on this forum.
     
  17. Stefan86

    Stefan86

    Joined:
    Aug 31, 2017
    Posts:
    53
    hey guys.. can everyone help me please??
     
  18. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,092
    I use a script that watches for the terrain to come on. On Start() is sets the player RigidBody to isKinematic = true, so it doesn't move. When the terrain is properly loaded, can check with a simple ray or name check or whatever in a WaitForFixedUpdate looping IEnumerator then it sets the player RigidBody to isKinematic = false. Or whatever, you can do anything you can imagine, you just might need to learn a little more.
     
  19. KevinCain

    KevinCain

    Joined:
    Nov 8, 2016
    Posts:
    85
    I've configured WorldStreamer, with a major streamer for Unity terrains and a minor ring streamer for coordinated meshes.

    Everything is working fine, but here's one nagging question I can't seem to resolve:
    • Both major and minor streamers load automatically at runtime -- what is the preferred way to delay loading call to accommodate user input? Is something already in place to handle this case, which I'm not seeing?
     
  20. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,602

    Did you set him up to spawn before the terrain you can set this up, per the doc,..and the video tutorial both show you... Bart also has a platform, that you can use to have him spawn on, and it disappears when the terrain loads..which has a script already there for you as well, he has a few ways depending how you want it to spawn.... Forget the name , I don't use it, but I I know it is there...

    . So be sure to read the docs and watch tuts....So you understand the program fully... very important.

    You also can tag the player, to load or not to ..
     
    Last edited: Dec 10, 2017
    Stefan86 likes this.
  21. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,602

    Please read Page 35 . That should help, also look into culling. Be sure you have culling scripts added and set up..

    I point to the docs ,because you guys will understand more about Streaming...if I point you to the right areas....and Thank me later...If I just tell you what to do every time...You won't understand the tool as well.. So don't mean to be rude, if you have more issues, just ask....

    plus everyone has there own needs, wants, Bart streaming tool as so many things you can do with it. I use it a lot for a few games and use it differently each time.
     
  22. KevinCain

    KevinCain

    Joined:
    Nov 8, 2016
    Posts:
    85
    Thanks, @recon0303, I checked page 35 but can't find anything relating to my question...what bit did you want to direct me to?

    To restate, I have the WorldStreamer streamers and the UI loading screen object configured; both are working. The streamers are loading terrains as given by by the transform of the teleport project on awake. Instead, I'd like to explicitly load after I move the teleport object to a suitable position.

    So, I'm asking if there's an inbuilt way to instruct the streamers to defer loading until an event is fired, or a similar method for calling the loading explicitly. I can modify the source to do that but wanted first to see if there's an existing technique as I imagine this comes up frequently.

    In my case, I would like to get user feedback on initialization to determine the teleport destination.
     
  23. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,602
    Then I must of miss understood your question then
     
  24. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    Sorry for late replay. Why unity forum dont show me posts here... I made this thread it's watched and i didnt get any notice alarm about any new post. I would like to ask anybody to mark me @NatureManufacture in post which is for me. This will solve this problem....
     
  25. KevinCain

    KevinCain

    Joined:
    Nov 8, 2016
    Posts:
    85
    Thanks for writing in, @NatureManufacture, sorry I didn't include your handle with my first post.

    To restate as I did for @recon0303 :
    • I've configured WorldStreamer streamers and the UI loading screen object; both are working.
    • The streamers are loading terrains as given by by the transform of the teleport project on awake.
    • Instead, I'd like to explicitly trigger loading after I move the teleport object to a suitable position.
    So, I'm asking if there's an inbuilt way to instruct the streamers to defer loading until an event is fired, or a similar method for calling the loading explicitly. I can modify the source to do that but wanted first to see if there's an existing technique as I imagine this comes up frequently.

    In my case, I would like to get user feedback on initialization to determine the teleport destination.

    Thanks!
     
  26. Hawk0077

    Hawk0077

    Joined:
    Nov 6, 2017
    Posts:
    565
    Are there any tutorials with voice instructions? Gonna be a nightmare stopping and starting video not being able to see what you are actually doing
     
  27. hollegar

    hollegar

    Joined:
    Nov 15, 2011
    Posts:
    30
    Is your question about first loading of the scene at start or during gameplay when scene was loaded already and player teleports?

    At start streamers load tiles around Player transform not the teleport. If you want to postpone loading of the tiles you can turn off all streamer objects and turn them on on user feedback.
     
  28. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    Um not yet but for 2.0 v we will invest in such thing;)
     
  29. Hawk0077

    Hawk0077

    Joined:
    Nov 6, 2017
    Posts:
    565
    Thanks for the response, much appreciated.

    I may be being finniky but it annoys the hell out of me when game developers and programmers develop really advanced stuff then dont use a mike in their videos.

    I do understand the time issues though so no problem and thanks.

    But ALSO....

    Is world Streaming negated if used with Occlusion Culling? Are they in effect the same?

    As you can see I am a complete Newbie// Apologies for that.

    Cheers.
     
  30. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    We had voice but.. there was hate your english is not perfect bla bla bla ... heeh:D

    You could use it weith occlusion culling but you have to bake it when scene are loaded together probably. Anyway with streaming you dont need culing. For interiors you have collider streaming. For outside scenes you got streaming which will remove small objects at even close distance etc.:)
     
  31. Fabbs

    Fabbs

    Joined:
    Dec 2, 2013
    Posts:
    25
    Hi ! Im having a problem with the local updater. If i update something, or make something new, i can save it and the new changes are reflected when playing from the game scene and when building, so that is all good! but the changes are not reflected in my worker scene. I must be missing something obvious but i have been going over the documents several times and following those steps.

    Thanks!
     
  32. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,743
    Horrible people. :( I wonder how many of them can speak a second language?

    Have you considered writing a script for your video and having someone read it for you and then add it to the video? You could do that with most video editing software tools.

    I actually have a tough time following videos without voice as well. But if your written documents are strong that should not be a huge problem.
     
    Shawn67 and NatureManufacture like this.
  33. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    Just a question.

    I have prefabs for my terrains. If I want to adjust my base map distance and tree distance, can I do this on the prefabs, or do I have to open the local area updater and do it there?

    I am getting an error:

    Unity.exe caused an Access Violation (0xc0000005)
    in module Unity.exe at 0033:4034e11e.

    and that code matches a number later in the crash report at RIP:

    Context:
    RDI: 0x005facf8 RSI: 0xffffffff RAX: 0x00000217
    RBX: 0x00000000 RCX: 0x05d31618 RDX: 0x1da0fa70
    RIP: 0x4034e11e RBP: 0x05d31618 SegCs: 0x00000033
    EFlags: 0x00010246 RSP: 0x1da0fa30 SegSs: 0x0000002b
    R8: 0x00000001 R9: 0x1da0fce0 R10: 0x00000000
    R11: 0x1da0fa20 R12: 0x0000006b R13: 0x00000016
    R14: 0x05d30c10 R15: 0x05d2fb10

    I don't know exactly what is causing that error and what those codes mean, but it seems to happen only after I try to adjust the above mentioned settings.
     
  34. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    Because you could work on local area or in work scene but! but! you could create work scene from local area data simply by : load all and unpack all :D so you will get work scene in 2 min again from localy changed data:)
    Yeah... but it always downrate if somone will say such thing. I will try to find a voice actor someday hehe.
    You could do this on prefabs, without opening the scene. This looks odd, unity have alot of errors for example when I have tree with lods and 1 lod is missing I coudn't open the scene because I get crash everytime. When I will fix missed lod it works fine sooo I would suggest to check lods at trees this could be a reson - missing data. I fight with my other project with this about 1 day to figure out what is going on.
     
    helgarddebarros likes this.
  35. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    Just an update, the error:

    Unity.exe caused an Access Violation (0xc0000005)
    in module Unity.exe at 0033:4034e11e.

    that I was getting was a Unity engine bug. It looks like it has been fixed in Unity 2017.3
     
  36. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    Thats why we hold before unity 2017.3 will be released:) it's snake nest like always:D Final version will be fine preobably.
     
  37. renski

    renski

    Joined:
    Sep 27, 2013
    Posts:
    14
    Hi, bought the package but will this work with a multiple camera setup ?, i am working in a vehicle simulator and we have multiple camera views and we use 2 cameras for the main driver as an extended field fo view.
     
  38. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    Hi
    Streaming depnds from object position not camera. Just setup for streamer object to falow as car or game object which represent its position.
     
    renski and Shawn67 like this.
  39. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    58
    Hello, I am seriously thinking about buying this product but I do have a question first. I will admit I have not gone thought every post in this forum. My question is, with the streamers are there code hooks? I want to setup a streamer like I have seen in the videos, but instead of linking to the stream prefab, instead have a callback to load or unload items myself. The reason is I want to load and unload player created prefabs that are not available at build time. Or do you have this kind of functionality and I totaly missed it like a noob?
     
    Last edited: Dec 28, 2017
  40. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    ummm I would say you could stream only objects that were made before. Ofc we made few tricks like if something is predefined it could be loaded even as network object. Anyway if you want to stream object must exist before. It could be prepared set or scene part.
     
  41. Ascensi

    Ascensi

    Joined:
    Sep 7, 2013
    Posts:
    577
    @NatureManufacture
    Hi the Dev of Voxeland has upgraded his asset to allow custom name, layer, component and tags attached each terrain mesh chunk.. would this now work for world streamer ? Each mesh chunk has it's own built in Hi and low LOD. Voxeland has it's own method of knowing the location of each chunk but each chunk is parented under the Voxeland game object that is required to generate terrains.

    If the parented chunks are a problem is it possible that you can create a game object that unparents all the Large_terrain chunks from the Voxeland Generator parent at runtime or whatever need be?
    • The terrain chunks are all numbered as a suffix
    • Each terrain chunk has it's own LOD switch
    • chunk output can be custom named to have a prefix such as "Large_"
    • chunk out put can have the same tag, layer and component- for each dynamically generated output (creates new chunks if terrain is set to infinite)
    • It has it's own mesh & collider, grass management system that clipping distance but i can change each parameter to set them at max to have world streamer take care of loading.
    I've successfully used the asset "InstantOC" to cull parts of the terrain by disabling the mesh renderers by switching the chunks to a different layer. The terrain chunks hidden by other terrain directly in camera's view is disabled but overall it just stops rendering what the camera doesn't see. It did fail displaying the horizon mesh but it might be a bug at this point.

    Does it sound like Voxeland will now work with World Streamer?
     
  42. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    We added option to move objects into proper sectors / vortual grids even from parents so hmm anyway someone must test this:)
     
    Ascensi likes this.
  43. Ascensi

    Ascensi

    Joined:
    Sep 7, 2013
    Posts:
    577
    Just to be clear.. when you say "you've added the option to move objects into proper sectors" is this permanent? or do you mean it just reads/access the positions of files under parents and directs them to work properly? If the Voxeland parent can stay as it is with its children - voxeland chunks then I believe this will work - I mean it will work as a world that can constantly be edited/sculpted as world streamer does its work but the contrary would be that world streamer would only read and move the files once and the creator would have to manually update world streamer if Voxeland was updated as well. If the files are removed from the parent it wouldn't work dynamically/infinitely. I will try to test this as soon as I can. You don't by any chance have a new video tutorial on these changes do you?
     
  44. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    We must move objects into virtual grids, if objects must be in parent of main object (because of script) that mean the architecture of code is simply wrong...If you have this system we could look together on this via skype.
     
  45. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    Just a question, does this warning apply to the whole terrain culling script, or just to the vegetation culling option?
     

    Attached Files:

    • 32.png
      32.png
      File size:
      9.6 KB
      Views:
      372
  46. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    There is only problem with vegetation culling. It could crash in few unity versions. When you turn on and off vegetation it could generate crash (Trees and grass). I would say it's rather trees issue.
     
  47. helgarddebarros

    helgarddebarros

    Joined:
    May 10, 2014
    Posts:
    125
    OK, I was having a crash in the editor when playing not in full screen, in the window, and turning off the foliage culling seems to have stopped that.

    edit: If I was using a product like uNature, would foliage culling still work, or does it only work on the Unity foliage system?
     
  48. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,666
    uNature separate foliage from terrain but it should be compatibile. It was at start I dont fallow it now. Vegetation Studio is compatibile too.
     
    helgarddebarros likes this.
  49. Ascensi

    Ascensi

    Joined:
    Sep 7, 2013
    Posts:
    577
    It doesn't need to be parented except if people still want to build their worlds, the chunk generation just appears as children and that might be needed as a container to overwrite the previous chunk(s) if something new is sculpted or generated. This is why I was thinking it would be great if during runtime it moves the chunks but I rethought this and realized it saves meshes to the scene but if I wanted to use it with World Streamer it does allow us to bake out the chunks with lods and all the mesh positions remain intact so it will work that way. I think what would need to happen for this to work for continuous unlimited creation with World Streamer is @Wright an option instead of saving chunks to the scene all of the chunks are saved as prefabs to a folder but the instance of them reside in the scene and when something changes that all or some of the chunk changes in the prefab Instances will be updated/apply command.

    One thing last to note is the Culling system, at least with InstantOC does not work with the Horizon mesh at this time, I wish it did. If I was to use World Streamer I think I'd definitely have to set it's own distance loading/building on to max, your streaming and Occlusion Culling system combined I think would give it a superior performance advantage which could benefit you both for the mobile market.

    Update:
    Taken from Voxeland Wiki: Modes: Baked: same as the static mode, but built chunks will be stored in scene as meshes. Voxeland will not re-build them on scene load. It’s still possible to change the terrain in baked mode – Voxeland will automatically re-bake changed chunks. It’s recommended to use baked mode with some third-party streaming solution. @Wright if I use this baked mode can the terrain still be rebaked if I unparent the chunks or will they only be rebaked if parented under the Voxeland Generator?
     
    Last edited: Jan 8, 2018
  50. Ascensi

    Ascensi

    Joined:
    Sep 7, 2013
    Posts:
    577
    @NatureManufacture Is World Streamer's Occlusion culling a streaming culling or a rendering culling?