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. Erh, how it does not affect optimization? :O
    If you have a single public variable and a simple property, you should choose the property. It is not slower than the variable (it gets inlined in the JITted code for final build) and you have the opportunity to change the setting and/or getting later without breaking everyone's code if you need it. (C# 101)
    If you will need sanity check on the member later, with public variable, you're in the cold water, with properties, you can do that easily.
    I do not care about beginners, if they can't read a property, they should learn the basics of the C# if they want to read code in C#. It's simple as that.

    And even, if you care about your beginners, you shouldn't teach them on the wrong way. Teach them how to do things properly (use properties instead of variables anywhere you can). The only place you can't is the unity editor interface. In these cases you should use variables and heavily comment that do not touch that except in the editor.

    You're welcome. I'm glad I'm not alone with my opinion. BTW, I'm not a native English speaker either, so welcome to the club! :D
    Regarding the last part. Don't overreact! I think WS still a very good and useful tool, regardless the small bumps on the code optimization and/or weird renaming-requirement.
    I was thinking about to create a similar tool as well, but I do not want to invest that time and energy into it. WS is far above good enough with all the problems it has. Perfectionism in the software development world is bad. ;)
    So instead of writing my own WS, I'll go through the code of the real WS and I'll try to customize it. Maybe I'll send my modifications to NatureManufacture as well, maybe they consider to use it, if I can come up with something less usability nightmare than rename every single object.
     
    Last edited by a moderator: Mar 28, 2017
  2. nogebatorr

    nogebatorr

    Joined:
    Apr 16, 2016
    Posts:
    14
    1) Do you know about "Find in Files" ability?
    Find all "if (cancel) {", Match case, Whole word, Subfolders, Append results, Find Results 1, Entire Solution, ""
    D:\WorldStreamer\Assets\WorldStreamer\Scritps\Editor\SceneSplitterEditor.cs(275): if (cancel) {
    Matching lines: 1 Matching files: 1 Total files searched: 295

    4) Sorry, I was wrong about layers counting. But, yes, I prefer to use for loop in this case.
    Any way, as far as you recalculate layers indexes each time this value always will be equal to the position of the layer in the list and it's not necessary to store this value one more time. Event more, you use this values to sync with splits dictionary only - it could be enough (and much efficient and clear) to use only one collection for splits and layers.
    Look, you have one SceneCollection script attached to the corresponding GameObject for each layer. You put all splits to this game object. So you can get SceneCollection's transform from it instance and automatically all it children are his splits ;).

    Even in this case you can use private fields ;)
    [SerializeField] private int _someVariable;
    public SomeVariable {get {return _someVariable;}}

    Pawel, one of the main idea with properties - to protect data from changing outside the class. But when it's necessary to change this data - you can add setter and it will be only one place to control all changing requests.
     
    Last edited: Mar 30, 2017
  3. hollegar

    hollegar

    Joined:
    Nov 15, 2011
    Posts:
    34
    1) I know how to use find! I asked to be sure which place do you mean! In this case listSizeCollections can be changed from editor side so using property for currentCollections.Count won't work!
    4) Right now SceneCollections are Monobehaviour scripts i will be changing them for the ScriptableObjects and then using one collection for layers and scene collections with all data serialized to one ScriptableObject per work scene.
     
  4. nogebatorr

    nogebatorr

    Joined:
    Apr 16, 2016
    Posts:
    14
    1) As you can see in my early answer - there is only one place in your solution with string "if (cancel) {"
    Ok, I see - I never tried to remove some item directly in editor when SceneSplitterEditor window is visible.
    BTW, in my case it was enough to write:
    for (var layerIndex = 0; layerIndex < _sceneLayers.Count; ++layerIndex)
    {
    var layer = _sceneLayers[layerIndex];
    if (layer == null)
    {
    _sceneLayers.RemoveAt(layerIndex);
    --layerIndex;
    continue;
    }
    //other displaying UI logic
    }
    It keep my list _sceneLayers always actual without necessity to store it size somewhere.

    4) Well, was I right that one collection is better and simple then two ;)?


    Could I give some more questions?

    I) What do you think about refactoring SceneCollection class you used in two different ways?
    a) To store data about layer and to share it with UI
    b) To store data in prefab and use it in Streamer class
    In fact it must be two different classes with some general interface because each way use only some subset of fields from the SceneCollection class.

    II) Could you simplify type of the key in Dictionary<int[],SceneSplit> scenesArray;?
    int[] sceneID = new int[] {
    x,
    y,
    z
    };
    Creating array in this case is additional garbage for GC.

    III) How can you estimate the task: "When you staying on the border between 2 cells it's possible to get situation when moving few steps forward will load next cell and stepping backward will unload it and load previous again. We need to have some depth from the border to ignore unloading previous cell because it's common situation in our game"?
     
    Last edited: Mar 30, 2017
  5. hollegar

    hollegar

    Joined:
    Nov 15, 2011
    Posts:
    34
    4) When it is possible yes but this change doesn't affect speed much and its only in view part of editor window for spliting which is less important then focusing our efforts on optimizing Streamer.
    I) As i wrote earlier it will be refactored with scriptable objests in World Streamer 2.0
    II) I'm checking right now different options as i want to add bigger streaming possibilities for looping then just single additive scene loading in World Streamer 2.0
    III) Have you checked our manual there is already this case described there.
     
  6. nogebatorr

    nogebatorr

    Joined:
    Apr 16, 2016
    Posts:
    14
    If you are talking about:
    "Destroy tile delay, value/time, in seconds, is useful to precise time, after which your virtual grid
    element(scene) will be unloaded from RAM memory, when virtual grid element(scene) will leave "Loading
    range". This value is useful when player is moving along the border of virtual grid elements or the player
    often moves between the same virtual grid elements. This will help you to avoid numerous load/unload
    actions in short time..."

    my answer will be yes. I saw Invoke ("SceneUnloading", destroyTileDelay); call. But it's not the same I'm asking about.
    You can enter to another cell for a long enough period but for few centimeters. And stepping back after destroyTileDelay seconds will request loading previously leaved cell again.
    It could be more optimal to set depth in meters from border to ignore unloading at all.
    In some kind of games where you can make small movements near any point on the scene (our game is one of them) it's would be great to have such feature.
     
  7. hollegar

    hollegar

    Joined:
    Nov 15, 2011
    Posts:
    34
    Ok we will add this feature to our ToDo list and implement it in one of next updates.
     
  8. nogebatorr

    nogebatorr

    Joined:
    Apr 16, 2016
    Posts:
    14
    Thanks a lot!
    How do you think, how much time it will take to implement? I'm talking about time for developing this feature only but not about when it will be released.
     
    Last edited: Mar 31, 2017
  9. Paxew

    Paxew

    Joined:
    Apr 8, 2014
    Posts:
    30
    Hi

    Have you tested World Streamer with 5.6? 5.6 was released yesterday and I upgraded. The streaming I can get working fine, but when I add the terrain culling script to the terrain tiles they all turn invisible also those tiles closest to camera and in view. I can see the tiles loading in the hierarchy but they turn invisible immediately after finished loading. When I check the terrain component of the loaded tiles they all do have the "Draw" option turned off.

    Do you see same behavior or have I missed something in setup process? I did never test World Streamer while I was running 5.5 so I can't say if it worked there.
     
  10. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Tiles in camera view also were invisible? Do you see them in game window? It is possible that something could be changed but bassically they will show up only when game window is open. Dont ask why:D just unity culling system work like that:D
     
  11. Paxew

    Paxew

    Joined:
    Apr 8, 2014
    Posts:
    30
    @NatureManufacture

    I will post some screenshots when I get home. In the Game window the terrain is completely invisible, even the tiles in front of the camera. But there is collision as I can walk on the invisible terrain and also all the terrain trees are visible so they just seem to float in thin air. If I enable the checkbox available in the culling script, can't remember what the option was called right now, then the trees also turn invisible.
     
  12. nogebatorr

    nogebatorr

    Joined:
    Apr 16, 2016
    Posts:
    14
    Hi, Pawel!
    Have you test how big is advantage from increasing MaxParallelSceneLoading value?
    As we can read in documentation:
    Max Parallel Scene Loading is an integer value that gives you opportunity to decide how many virtual grid
    elements(scenes) you want to stream at the same time. This option is useful to optimize streaming. Low
    value will cause longer loading but you won't get any performance drop. You have to estimate and check few
    values of this to fit your purposes.


    But in fact Unity use only one thread for scenes loading!
    As far as your Streamer controllers works independently and does not synchronize their loading requests you can't control loading order and scene will be shown in Hierarchy window as mess of different layers.
    Even if Unity give possibility to load some count of scene simultaneously in future, current architecture give no possibility to set constant value of parallel threads (let's say 3 threads when you have 5 layers). It could be done only by developing special Loader class with single queue used by all layers.

    I make some tests with such kind of loader - there is only small advantage between 1 element queue and 3 elements queue. It's up to 20ms on 30 scenes loading. And bigger queue give only 1-2 ms difference and it's rather measuring error.

    So, looks like now you can set MaxParallelSceneLoading to 1 for each layer Streamer and hide it from inspector as little influence parameter and maybe some day improve your loading architecture.
    Hope it was helpful.
     
    Last edited: Apr 3, 2017
  13. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    I will check that tommorow morning when I instal 5.6v - not beta. If we have any bug I will send you hotfix etc or solution.
    Thanks for cool test!:)
     
  14. Crusare

    Crusare

    Joined:
    Feb 14, 2014
    Posts:
    21
    Hi!

    So I've noticed that in the latest version of WorldStreamer, occlusion culling is now supported.
    As I couldn't find any tutorials or instructions about this, I have to ask -- how do I set up occlusion culling to work?
     
  15. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    It will work like lightmaps and navmesh - load scene by local area updater. Then bake occlusion culling and save scenes. Everything should be saved in parts with scenes.
     
  16. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    How big visibility distance you setup for this terrains?

    Edit: We tested and terrains work fine at 5.6
     
    Last edited: Apr 5, 2017
    Paxew likes this.
  17. Paxew

    Paxew

    Joined:
    Apr 8, 2014
    Posts:
    30

    Great, good to know. :) I probably messed up some step when I did my terrain then. I've not had time to play around with this the last days, I'm doing some 3dmodelling at the moment but I'll have a new go at it after. I'll let you know if I still have some issues then.
     
  18. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Np feel free to contact us if you will have problem with that. Anyway I will say this is culling distance value.
     
  19. TalkieTalkie

    TalkieTalkie

    Joined:
    Jul 5, 2012
    Posts:
    123
    @NatureManufacture

    I currently own and use Gaia and MegaSplat and want to buy World Streamer, but the store page shows compatibility with RTP only. Does that mean it won't work with MegaSplat since there is no integration?

    Can you please confirm if I should be getting this or will it make MegaSplat useless or something.

    Thanks.
     
  20. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    We haven't try with mega splat, probably it will work if not I will talk with Jason. It will work with Gaia (we are in co-operation with Adam, we creating product together now). So no worries:)
     
  21. TalkieTalkie

    TalkieTalkie

    Joined:
    Jul 5, 2012
    Posts:
    123
    OK thank you, I definitely want World Streamer's capabilities and MegaSplat is something I can't make do without, so I'll report back if anything breaks.
     
  22. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    No problem We have both on skype line everyday and all day, so if something will not work give us a sign. Gaia 2.0 will have direct integration with world streamer - data export
     
  23. TalkieTalkie

    TalkieTalkie

    Joined:
    Jul 5, 2012
    Posts:
    123
    Just bought World Streamer, I'm going in, wish me luck.

    Joking aside, does World Streamer handle LOD for meshes too? The videos on YouTube show a lot of objects (trees) popping in at the distance. Not sure, going to mess around with it now.
     
  24. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    @NatureManufacture
    Hi,
    Your plugin looks great, i have some questions :

    1) If we have some long continous road models made with some spline system, they can't be split and streamed because they cover too many terrain tiles ?

    2) Will the plugin improve by including a terrain split tool instead of having to use external plugin ?

    3) Could it be possible to have Medium and Big list of prefabs automatically assigned to the Medium and Big Streamers ? Instead of manually doing it it could be automatic.

    4) Could the streamers (terrain, medium,big) creation be automated when we craete a new scene ?
    For example a plugin button named "create Streamers", instead of manually creating them.
    Also the scenes collections should be automatically assignes to the right streamers.
    I think these basic manipulations should be part of the plugin.

    5) the teleport object could already have the right streamers assigned, this is less manipulations as Med,Big and terrain Streamers objects never changes.

    6) Automatically prefabs category (Medium,Big) based on bounding box boundaries values :
    Having some options to specify Medium and Big Prefabs max boundary sizes.
    For example Medium boundary is set to 100, for some prefab like a long road Z boundary = 200 the plugin automatically place it in category list "Big".
    This would avoid us to use prefabs name prefix like "Med" and "Big", automatic attribution is done by the plugin and this would be name independent.
    If this can't be possible some tag system would help, prefab attribution would be done by tags, we could select an entire folder of Medium prefabs and just select the "Medium" tag for example.
    I don't like the name convention, it's old school and too much restrictive on workflow.

    7) in the scene Layer when we moddify something, why there is not buttons like "split all layers", "generate all layers" ? instead of doing each manually ?

    8) The local adapter should have pre assigned, small,med,big, terrain objects as those never change ?

    9) For culling, why not have the plugin make itself a search of all "world_creator_terrain" objects and only have one button to add or remove culling system component without us to do it manually ?
    And have a button "select all terrains", automatically select them and we only need to change the culling value in the inspector ?


    I ask all that because i already use plugins and many are almost fully automated.
    For World Streamer many things i find could be automated by the plugin instead of having the user doing all unecessary manipulations that could be easy automated.
    It would result in a plugin faster and more easy to use.

    Thanks.
     
    Last edited: Apr 16, 2017
    AGregori and TalkieTalkie like this.
  25. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    We could replace models by models but I would not say this is LOD for models, rather by terrain. For example we replace terrain at far distance by low poly mesh without any refreshing scripts. Thanks for good word!:)
    1) System should be able to export road as mesh from point to point, mesh must be in parts to stream it in parts. There is no other way.
    2) Ok.. ok :D in v2.0 we will add this! All you guys and girls are terible:D. We will add this to our list.
    3) Im not sure what are your mean, could you give more info about that?
    4)Yes 2.0 will have interface for such thing and there will be 1 object where you chose an options
    5)Like in point 4).
    6) You know this are only names, for other games devs for example separate layers for AI, light, planets, navmesh. Size is not only category (prefix) that is used by devs. We will change name convention , it will be an option but new solution will doesnt need it. Anyway it help to keep everything in order and automatic.
    7) In scene splitter there are buttons for each layers and for all layers.
    8) Hehe yes and no:). For 3rd person or 1st person game yes but for platform or logical games not really. Also our system are used for cloud point viewers, gis systems and much more which we do not expected. Some devs do not need small objects or big so hmmm yeah we will handle that as predefined layer options.
    9) Ok we will add this;) Btw you have such thing in unity editor hierarchy so its easy operation but yeah with huge amount of terrain could be anoying. Maybe we will add this option in spliter or in streamer to manage culling real time? less work for you and more control.

    We slowly creating list for 2.0 features and thanks! that was very helpfull. We want to rebuild and imporve alot our system with all feedback included.
     
    Lurking-Ninja likes this.
  26. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I got this error trying to run some examples scens provided in the package :

    Scene 'Simple_Work_Scene_Terrains_x3_z3' (-1) couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.
    To add a scene to the build settings use the menu File->Build Settings...
    UnityEngine.SceneManagement.SceneManager:LoadSceneAsync(String, LoadSceneMode)
    Streamer:LoadLevelAsyncManage() (at Assets/WorldStreamer/Scritps/Streamer.cs:336)
    Streamer:Update() (at Assets/WorldStreamer/Scritps/Streamer.cs:316)


    Any idea what is going on ?


    I thaught the object collection (High, medium) could be assigned automatically to a streamer, but a streamer is a streamer and does not know what it handles.
    With predefined Streamers (Big, Medium,terrain) Objects collections would be automatically assigned.

    Good news, as lot of things can really be automated and some premade (streamers Big,med,terrain automatically generated for example).
    Less tedious , more automated plugin is always less time spend on repetitive tasks, and much appreciated :)
     
    Last edited: Apr 18, 2017
  27. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Yes, you have to click button "add to build settings" on each streamer. Please read and watch video tutorials. This will really help in such situations;)
     
    zenGarden likes this.
  28. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I thaught the step by step video tutorials was complete : www.youtube.com/watch?v=LKa2SWoyzL8
    Or it is explained in another video i missed ?
     
  29. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    After some tests, i found the same issues with Unity scenes and loading, there is frame rates drops from 200 to less than 30 fps when there is loading of new scene. Sometimes it is a micro freeze and it's even more noticeable.
    Unity Scenes loading are long and not optimized for speed, for example if you play the game Recore you'll see it clearly.

    A better streaming system would be to not use Unity scenes and have only one empty scene with the player start.
    A streaming object would manage region tiles loading and objects populating, this could benefit from objects pooling and would no more be dependent on Unity Scene loading performance and optimisation.

    Anyway we have also these frame rate drops visible in some AAA open world games but they are less pronounced indeed, and it's perhaps a really minor issue considering the overall gain about having big open worlds possible in Unity, and i really like the plugin.
     
    Last edited: Apr 19, 2017
  30. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    I have used World Streamer, and Mega Splats, no issues here.... I use GAIA, Map Magic, and Terrain Composer 2 all with these set ups as I use all tools to make my terrains, yes I'm a PICKY SOB.. I like each tool for different reasons.... I export them out to World Streamer, and had no issues with Mega Splats.
     
    TalkieTalkie likes this.
  31. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Its in manual which is first doc which you have to read until you will judge or test anything. It's important like hell to read whole doc. It contain tips, idea of streaming and much much more. Thats why it is 60pages book;). Streaming is hmm something that devs must accept - it force structure of thinking about project and game. About video it's my mistake that I had already added scenes during demo recording. In other tutorials it was visible that i click that button:p

    Did you tried at build? Beacuse as it is in manual - at editor you have many operations that are made at runtime, which are made already during game build process.
    Only unity scenes give you : lightmap support, navmesh support, occlusion culling support, batching support and much more. In our opinion its best way to load somathing async with all engine support.

    Btw you could remove whole textures from project and read only meshesh and baked collisions almost for 0 frame drop if you will use graphine or amplify texture streaming. This systems gives you unlimited texture resolution per object. We used such solution im MMO games and some AAA

    Basicaly you always have under control what you are loading new, when and how much. AAA games have profilers to mark when a sector have to many new assets to load at once - for example tom clancy write article about this.

    As Recon0303 works with many AAA games he know how to manage this even better then us in some cases:D

    Btw I will say manual manual doc because nobody want to read it! I know but.. but its so important in this case:(. You could bake collisions, and other cool things which will remove loading process. Disc speed is also pretty important in such things because we read from disc. At SSD everything is much much faster etc..
     
    Last edited: Apr 19, 2017
  32. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I'll try the runtime to checks if it improves the scenes loading.

    I'll do.

    And how you do without game collisions ?

    It's already a powerfull PC with SSD.


    Last concern, is the streamer is made to work with static objects only.
    If i have spawners using Gameobjects pools that spwan dynamic Gameobject on the map anywhere like characters, when World Streamer unloads a scene tile where there is characters , it removes also the characters on the tile and it breaks the spawner pool management.
    Or worse if it unload a scene tile containing a Spawner , but there is characters that belong to that spawner on other scene tiles it also breaks the spawner system.
    This is why sometimes you need a streaming system non dependent on Unity Scene system and managing itself populating each tile zone with objects.
     
    Last edited: Apr 19, 2017
  33. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Baked collisions mean checkbox in unity build settings. All answers are in manual:)
    Yeah streamer could stream everything what is saved in the scene.
    Umm everything depends on you. Huh... ok you really must read doc first:)
    You have 2 things:
    - main scene
    - streamed scenes
    If you save something at main scene where you have player etc it will not gonna be affected by streamer
    If you save something wat streamed scenes it will be removed with scene
    You have many layers so you could setup AI at other layer then terrain and models with different range of streaming.
    You could even stream network objects which will simply read data from server about their current stage when they become loaded.
     
  34. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    It should be possible to keep pooling spawners and the objects they spawn on the main scene and manage them with player distance. I'll try it.

    About texture streaming , Amplify texture do no more exist and Granite is another 65$ , it is so hard to include a texture streaming system for static objects in World Streamer to make it a real complete streaming system ?
     
  35. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    We have such thing for collider - you could simply change collider manager to your purposes (duplicate and change code to turn off spawner script instead of turning on cinematic checkbox)

    Texture streaming system is huge thing that is huge task and umm we will not gonna touch this. Because textures goes outside unity into outside array system and they will be readed when objects is on the screen. No way to create such system without huge amount of time and big team. AAA games pay fortune for such systems inside their games and egines.

    Amplify texture is available at their website.

    For example unreal engine have texture streaming but... it suxx and devs use outside solutions like graphine.
     
  36. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    ok

    I tested some games made with the existing streaming out of the box with full vegetation and objects and it was running pretty good without micro freezes.
    Anyway i am not making Skyrim with Unity and World Streamer, but mainly for smaller game and mobile perhaps so i am not seeking the ultimate streaming system lol
     
    Last edited: Apr 19, 2017
  37. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    This is not our intention to compete with already made solutions. If we will focus on too many cases it will be hard for us to update it and keep fresh stable version after every unity update. If somone made total solution for part which is usefull for our customers its ok. Not everyone use unity terrain or even terrain. Our system is for all kinds of games.

    Unreal engine streaming will not freeze game but it will left lower resolution texture even in the middle of your screen. I had such situation in movies which i made with it.
     
    Last edited: Apr 19, 2017
  38. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    We actually are making a fairly large open world mobile game, been using it for 2 years with World Streamer, yes you need to code some stuff to work with certain assets some work out of the box.

    We use Unreal for PC, console, Unity somtimes for other platforms, but Unreal 4 we are going to be using Amp Texture, right now we use graphine., as our game is fairly large./.... Yes smaller games you cna get away with alot, but anything larger , open world, will be a task... Which it has been for us, but we are all experience with our own solutions with streaming in the past, World Streamer made it alot easier for larger games in my opinion. But all of your questions are great question as we had questions long the way as there can be alot to streaming. We use Layers , and networked objects since we are making a multi player game with Bolt... It does take some work to get everything working. Alot work out of the box, back when I started the DOCS where not great....Today I feel Bart did an amazing job.. With the docs, READ the whole documents as it as helped many of our new users on my team.. That is the first thing I have them do when someone joins my team..

    \Best of luck.


    PS: For example we had to code our own for tools like Uconstruct and our own solution.. Then we suggested to UConstruct how easy it was and useful, so they added it to there tools.. all of them... So some people do add World Streamer, if you ask them.. Keep that in mind....

    We been adding Bolt, to World Streamer as of late, which is one of the harder one to add, since its multi player.. I hear the developers are adding and example to work with World Streamer soon as I suggested they should for people, since it has been a bit of a task.
     
    Last edited: Apr 19, 2017
  39. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Why you want to change graphine to amplify texture at unreal? Amplfy create asset for unreal too?
     
  40. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I am aware that in house streaming from studios or teams are always ahead of others, for example
    http://www.gdcvault.com/play/1020231/Solving-Visibility-and-Streaming-in
    http://www.develop-online.net/tools...logy-is-building-just-cause-3-s-world/0212516
    http://twvideo01.ubm-us.net/o1/vault/GDC2014/Presentations/Gollent_Marcin_Landscape_Creation_and.pdf
    http://gdcvault.com/play/1022960/Free-Reign-Building-Visual-Effects

    Indeed i don't think we can such above complete top notch streaming and world editing solutions at very cheap price.

    Like i said i don't know if using Unity Scenes is a good option ? I know Unity Scene loading are not super optimized and are slow, that's why World Streamer will always be limited in some way to Unity Scene loading performance.

    I think i don't have no more escuses to not read it now lol.
     
    Last edited: Apr 19, 2017
  41. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    Umm, we bought it long before Amp was out... Plus I don't like dealing with products in beta, but we had ours long before.. Amp ever was around, I been using Unreal engines, long before Unity, over 15 years now or so.... UDK, Unreal 3, and 4 the day it came out.

    ps, But we want to play with AMP more, to see if its better, as we are always looking for better products.....Which is what I do now.. I don't like just relying on one product if we can get a better one with better performance....
     
    Last edited: Apr 19, 2017
  42. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    ya I was just letting you know its possible with World Streamer. With larger worlds, with a little bit of work.
     
  43. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    How do you avoid Scene loading frame rate drops or micro freezes ? Even in some AAA open world games we can some frame rate drop when loading stuff.
     
  44. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    I don't see major frame rate drops.. We also don't have a million things loading and unloading, we optimize our scenes, and grass and trees is the only thing I ever seen cause these issues, but this is with mobile which they have that issue anyways, with out streaming,so I use less of them on each tile. We also use modular buildings, so we don't have to load and unload a hundreds of the same objects. OF course alot more to it as mobile is really , really a pain with the older devices, so main reason it has taken us longer, is optimizing the crap out of our game.... I spend a ton of time doing this. not to bash others, a lot of people don't spend the time doing this...They stack a ton of objects with one tile... grass, trees, and objects and none of them are optimized properly or at all, not saying you are..Just saying what I have seen, as we have had to fix others peoples games, with other assets..

    I say this as we have a small company that does work for AAA and indies.. Using Cry, Unreal, Unity mostly mobile these days, which will change soon, to all platforms again, we stopped for awhile, I even do work with in house engines, so we seen all types of STREAMING solutions we even made our own, which is a pain with Unity updates which is why we bought World Streamer, at the time was like 40 bucks....Which is dirt cheap for all the time we put into ours and the upkeep....Which is why we buy assets, Unreal we don't own any assets as a lot is built into the engine.. Not all but alot. anyways got a bit off topic a bit. Anyways, there are many reasons that can cause frame rate drops...

    I would use a new scene with just Unity terrains, or what ever your using, and see if you still see a drop, no grass, no trees, no nothing.... Just add cubes, and terrain tiles.. I do things a bit different than some developers do as I work in what we call scenes... Then we add everything slowly together so we can pinpoint issues easier...When using assets, you have to be even more careful... as some assets are done poorly.. This way you know for a fact its an issue with World Streamer, or not...I know Bart had someone else, have frame rate issues he had trees, and grass for mobile...Unity grass, and trees..... and he had FRAME rate issues, and he had a ton of grass and trees, and thick density......Which you really can't do with mobile.. Unless you do it properly..... So most of the time, its grass and Tree density is to high...way to much grass on one tile......... I suggest using something like Unature for Desktop, as mobile is still broke .. Which helps some... and InfiniGrass for mobile, which is what we use for grass and helps alot.
     
    Last edited: Apr 19, 2017
    zenGarden likes this.
  45. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Thanks for the clever advices.
     
    recon0303 likes this.
  46. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    No Problem ZenGarden anytime, if you need help just post, are you using this for Desktop or mobile? Or possible both??

    We use this for mobile , but are in the works for using it for XB1, IOS and possible, PS4.
     
  47. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    It would be great if the package could include this great example that have bigger terrain example far distance view
    www.youtube.com/watch?v=HXU2rfGTDMc

    It's not realistic terrain or overloaded graphics details, so World Streamer should perform well enought.
    I am focusing on mobile platform about assets i make and using optimisation like atlas textures for materials or meshes grouping like a model representing a group of trees.
    Mobile is a good way to test potential interest in a game for me (and i don't need greenlight to success for example), if it get a minimum success it could motivate me to make some desktop version with some enhancements.


    No Switch ? It's a very young console and i don't know if Nintendo support for developpers is good or not, but as it lacks games it's a good opportunity for who can develop for it.

    What sort of modifications do you bring to World Streamer for consoles and mobile ? Or do you use the plugin as it is ?

    Do you use some Substance Designer textures on mobile ?
    Some devs said that very simple ones can have a very fast generation at loading time and diminuish a lot the loading time of textures.
     
  48. strongbox3d

    strongbox3d

    Joined:
    May 8, 2012
    Posts:
    860
    Hello,

    I am developing for Xbox One. Is there a way to use this asset in Xbox One?

    Regards,
    Carlos
     
  49. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    Yup we do use Substances, we use many custom coding/tools , and adding other assets as well, such as Bolt, UConstruct to name a few. But not going to name everything we do in open chat. sorry, as we do alot of custom stuff that most developers told us NOT to do, but we have the experience with larger world in mobile. So we did have to do alot of customizing, you aren't making anything that large and if you did make a large scene for mobile you could use alot out of the box. and be just fine.. We are adding tools for future games,so we are ready for most of our games , and won't be as much work for us in the future.

    I have no interest in KickStarter and right now no interest in Green Light either right now ., . No interest in Switch currently. We are a newer company so that is why we went mobile right now as well, we aren't new developers, but our company is newer. a few years mostly doing client work, but moving towards all of our own games now. We all worked for companies before..and got tired of making games for others and making them tons of money, so we want to make our games now.. and hopefully become successful. With our new company. Its about 2-3 years old now.

    PS Far as substance, you need to optimize them, properly..and they will work fine, we use them, we don't use alot of them in run time, as much, but we do use them a fair amount, as I'm a huge substance designer, painter users as well as Quixel Suite 2.
     
  50. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    2,026
    Yeap it support any platform even webGL.
    In manual there is ifno how to handle unity speedtree and grass.This 2 S***s are terrible to load/unload. If you could instantiate something ? Do it sepecialy when 5.6 support it. Most important for trees and grass. There are even free solution for trees - critias trees or something like that.

    Hold splatmaps at good quality but not to high. I saw spikes from splats and grass if someone use big splatmap tons of unsued textures and a lot of grass at mobile. If you create for example 2k x 2k terrain with 1k splatmap use 256x256 for 500x500 chunk instead of 1k again:D Splatmap is RGB map with very small compression so its very heavy. Ofc unity have parameters to load/unload textures but this is silly how it works if this even work...

    I could check if I have this pack from video, last time GC takes only 0,3- 0.7ms, loading a bit more but it was super fast. Anyway it contains alot more stuff like landscape ground packs, etc.