Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Released] Terra Slicer & S.A.M.

Discussion in 'Assets and Asset Store' started by gilley033, Nov 5, 2013.

  1. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hi all,

    I just wanted to report that the update is pretty much finished! There may be a few adjustments made in a few places, but the code is 99% complete. At this moment, I am working on the documentation and instructional material, because there are a lot of new changes and I want all users to be able to start using the update with minimal fuss.

    This is not necessarily an easy phase of the project, as there is a lot of documentation to write and I hope to make a lot of new videos detailing old and new features.

    Please bear with me as we reach the finish line!

    Best Regards,
    Kyle Gillen
     
  2. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    So, I was leaning towards making support for the Addressable system a paid add on, however I have changed my mind and have decided to include this support with the base package.

    The bad news is this will add another week or two to the development time, as I was not familiar with Addressables before starting the work to support them.

    This support will include two special Cell Object Loaders, one for loading prefab addressable assets and one for loading scene addressable assets.

    Editor tools for working with these addressable assets may be added in the future, but nothing is planned now besides supporting them in the World Asset Editor.
     
  3. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Important Notice
    I will be out of the office and without my computer from May 21 until May 28, and until June 6 will be have limited access to the computer. From May 21-28, expect very limited support, as I cannot guarantee that I will even have service to check my email. I will definitely not be able to help with any major issues, but will do my best to answer questions here, via email, and via discord. Thank you for your patience!

    With that out of the way, I wanted to give another update. While I though the code was finished, I keep finding things to add/improve. The addressable additions also took longer than expected, however I hope you all will be happy with the improvements when the update is finally released.

    The main culprit to the current delay is the addressable system and improvements to the World Designer (new name for the tool you can use to load/unload assets into the scene for editing purposes). The World Designer has been improved to allow you to edit which cells are enabled/disabled on a World Grid. In addition, I've added a new feature tentatively called the "Asset Creator". This feature allows you to define a scriptable object that can be used to construct assets for a given cell on the World Grid. This will mainly be used with the World Designer to make expanding your World Grid's easier.

    For example, imagine you are working on a world that has a 4 x 4 grid of cells. You decide you want to make the world bigger, so you add a new row and column, making it a 5 x 5 grid of cells. The new row and column by default will not have any assets associated with it. With the asset creator in place, you add new assets at the click of a button.

    When the update is released, there will be a default asset creator available which you can configure to create a prefab and/or scene asset. The prefab can be copied from an existing asset, and if that asset has a terrain, a new terrain data object is automatically created so that edits to the new terrain don't effect the old terrain, and vice versa. In the future I hope to add support for auto matching terrain neighbors, so that the terrain seems line up immediately and the new terrain looks decent.

    In addition, you will be able to configure the prefab and scene assets to be addressable.

    As for what work needs to still be done, the aforementioned Asset Creator still needs to integrated with the World Designer. In addition, the addressable asset system also needs to be integrated with the World Designer. After those two additions, I hope the code base will be locked down, and am going to do my best to only make changes if I find bugs or major issues that require redesign.

    With the current timeframe of being out of the office, the changes that need to be implemented still, and the documentation overhaul that still needs to take place, my best guess is that the update will be ready in late June/early July.

    Again, I apologize for the delay! I promise this update will come out eventually!
     
    Last edited: May 19, 2022
    SAMYTHEBIGJUICY likes this.
  4. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Progress Update Time!

    After finishing the World Designer tool, I wanted to put it through its paces to be sure it's as useable as possible. So, I have started to test it out by building a small world using it.

    There are still a few things that need changing with it, which have come to light via this testing process, however something somewhat unrelated to the tool also was made apparent to me while testing it.

    In its current state, the DLK is not really useable with incredibly large worlds. The main culprit is the use of arrays through the DLK to store information on a per Cell basis. With really big worlds, however, there are a TON of cells, and creating arrays large enough to fit them all is not really feasible (when I say really big, I'm talking about Worlds with greater than 1,000,000 cells!).

    While worlds this large may seem unlikely, it's actually not that hard to reach these numbers for 3D worlds. For instance, a 500 x 500 x 500 cell World totals 125,000,000 cells.

    Fortunately, such large worlds are unlikely to actually utilize every cell. It's more likely that there are sparse regions of cells which are used, while the majority of cells are unused. Using that fact, I am overhauling a few areas of the code base to eliminate array creation using all cells, instead shifting to arrays that only are as big as the number of enabled cells, or dictionaries/hash sets in places where data is region focused.

    I hope these changes don't add too much to the development time, however it's likely that further use of the World Designer tool will bring to light additional core changes.

    Once we get closer to release, I will let you guys know! I'll be posting a video showcasing the World Designer tool soon, so lookout for that!

    Thanks,
    Kyle
     
  5. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hello all! Time for another update!

    I have finally decided to call the code updates complete. There may be a few minor bugs that need fixing, but all major changes are finished. Currently, I am in the process of overhauling the Terrain Slicing & Dynamic Loading Kit to split it into two separate products.

    Terra Slicer (assuming that name isn't taken when I'm ready to publish) will simply contain the Terrain Slicing portion of the kit along with a few other helpful tools like the Terrain Tiler.

    SAM - Streamable Assets Manager will become the new "Dynamic Loading" portion of the kit. I have renamed it to better reflect that this product is really a comprehensive solution for managing streamable assets both in editor and in game. It will include the new World Designer Tool, Loading Blueprint Editor, and other significant improvements/additions.

    The current product will be converted into a Bundle, of which will include the two new products. In this way, existing users who purchased the Terrain Slicing & Dynamic Loading Kit will have access to the new products for free (with a little bit of pain in having to add the new products to your Asset Store Cart and go through the check out process).

    I have not finalized pricing but Terra Slicer will probably be set to the current price, while SAM will be set to a higher price.

    As a result of this overhaul, I have decided to redo the Unity Project file management to make the packages ready for the future. All script libraries have been converted to alternate script libraries, which has two consequences.
    1. When importing the new products into your project, there will be no need to delete the old folders before importing. There are no naming conflicts because all class files have been moved to a new namespace.
    2. It's will be necessary to recreate all assets/components. For example, your current Slice Generation Files will need to be recreated as new Slicer assets. The two files contain more or less the same settings, however the Files will not work with Terra Slicer and vice versa. You can of course keep using the old assets, however you will be missing out on new settings/features (which has more of an impact in the SAM - Streamable Assets Manager product).
    Now, I understand that this may be a pain. I will be looking into implementing some kind of upgrade system, which will auto create new assets/components for the new systems from the old assets/components, however I need to hear from users on whether this is necessary, because it will add a lot of work and may delay the update.

    I expect most users only have a few assets/components from the old system created. In that case, you can simply create the new assets/components to match the old ones, then open two inspectors, one focused on the new assets/components, one focused on the old ones. Then "copy" the settings manually to make the new assets/components reflect the old ones. If you have a ton of assets/components that will need to be converted, let me know. If enough users are in that situation, I will work on an upgrade system!

    So, what work is left? Basically, the in editor guides and promotional material. Unfortunately, I have a trip to Peru planned for October 1, and I will not be returning to work until October 18. I will be working on the guides during this trip, so I'm hopeful that when I return, I can work on a few promotional videos/materials and release roughly 2 weeks after returning (end of October).

    Thanks, as always, for your patience!
     
  6. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Travel Notice

    From October 1 - October 17, I will be out of the office and in areas with limited reception. I will try to answer emails/discord messages/forum messages during this time, however please expect delays and limited support. I apologize for any inconvenience this might cause, but hope for your understanding.
     
  7. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hey again everyone!

    We are about 1-3 weeks from the next update, finally! At this point, I wanted to talk a little bit about how this product will be evolving with the new update, as I've decided to make some changes that I think will prove beneficial over the long term.

    What's To Come
    With the next update, I will be splitting the Terrain Slicing & Dynamic Loading Kit into two separate products.

    Terra Slicer - Will contain the terrain slicing tool and a few other helpful utilities, such as the Tileable Terrain Maker (renamed to Terrain Tiler). The price of this new product will likely remain at the current price ($45), however this is still being determined and is subject to change.

    Streamable Assets Manager (SAM) - This is equivalent to the previous Dynamic Loading Kit (with several additions/improvements), however I've decided to rework the name to better reflect the power of the new tool set. This new tool set will contain:
    1. The same dynamic loading code for in game streaming, with improvements/additions such as:
      • Support for Addressables
      • LOD support
      • Multiple Groupings/World: Allows you to combine different object types more easily (forest, house, base terrain, etc).
      • Multi Chunking: Allows you to split game objects into multiple chunks, which reduces the loading impact of assets (imagine a forest with 1000's of trees. Loading them all in one load operation could cause stutters. Chunking allows you to split the forest into multiple loading chunks, eliminating the potential for stutters).
      • More control over assets once loaded (setting tags, layers, etc).
      • New components like the Cell Visual Transition Controller (allows you to control how assets are made visible when loaded, made invisible when unloaded, and transitioned between when switching between different LODs), Grouping Listeners (allows you to stay up to date and react to changes to the World, such as new cells being loaded, old cells being unloaded, and much more), and Execution Controllers (allows you to control how much time each frame World's are able to use.
      • New Persistent Data Saving/Loading solution that offers a great deal of flexibility, allowing you to more easily integrate the SAM into existing Save/Load solutions.
    2. The addition of Loading Blueprints, which allow you to customize the loading patterns used to load assets to an amazing degree.
    3. World Designer Tool, which allows you to:
      • Design a new game world from the ground up.
      • Modify an existing game world, allowing you to iterate on your design in an effortless manner, while keeping Editor memory use down by opening up the possibility of editing discreet areas of your game world in isolation.
      • Split existing, large game worlds into smaller chunks that can be streamed in via the Streamable Assets Manager in-game streaming code.
    In reality I'm probably missing some new features/improvements, but hopefully this is enough to wet your appetite. I will be releasing some new videos soon that will hopefully showcase to you how the Streamable Assets Manager is a robust toolset for building streamable game worlds. Since this new produce so much more robust than the Terra Slicer, expect the price to be more (likely at least double) the cost of Terra Slicer!

    What If I've already purchased the Terrain Slicing & Dynamic Loading Kit
    The reality is that the new Streamable Assets Manager should be a paid upgrade, however I have stated repeatedly that anyone who purchased the Terrain Slicing & Dynamic Loading Kit would be getting the next update for free. Even though this update has taken considerably more time to complete than I initially expected, and the number of features/improvements has grown 10 fold, I will be honoring that promise.

    Anyone who has purchased or purchases the Kit before these changes go live in a few weeks will receive the two new products for free!

    The way this will be likely handled is that the current Terrain Slicing & Dynamic Loading Kit will be converted into a new Bundle Package. Existing customers will have this bundle automatically, however in order to get the new Terra Slicer and SAM products, you will need to do the checkout process with both products, where you should see them as being FREE. The bundle will also allow for a discounted price for new customers who either want both products immediately, or who purchase one and decide to purchase the other one at a later time.

    I still need to evaluate this process and decide if it is the best option (and also allowable by the Asset Store team), but no matter what I decide, rest assured that if you've purchased the Terrain Slicing & Dynamic Loading Kit, you will be receiving the two new products for free!

    Thanks to anyone who read this long post.

    Best Regards,
    Kyle
     
  8. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    621
    Hi, will the streamable asset manager have some sort of HLOD functionality, e.g. an option to author LOD tiles that also contain buildings etc.? Does it also support varying tiles sizes for further LODs, kind of how different zoom levels of map tiles work - i.e. you have smaller high res tiles in the center and then the further you get away the lower the resolution and the larger the chunks get?
     
  9. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hi one, thanks for your interest!

    The LODs used by the Streamable Assets Manager all need to be generated by the developer; it does not have any systems for authoring LODs, either in the editor or at runtime. In the future a way to generate meshes from terrain might be added, however that will be the only authoring tool added.

    It also does not support varying tile sizes for further LODs. The size of a Cell is universal across all LODs of that Cell. You could manually combine geometry from different Cell's at lower quality LODs to perhaps create something that mimics what you are after, but I'm not positive how that would work.

    Sorry I don't have better answers. Thanks!
     
  10. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    621
    Ah, yeah, I wasn't talking about generation, more about incorporating the concept of HLOD into the asset. Varying tile sizes would be great for more distant terrain, i.e. that type of distant terrain that works kind of similar to the asset Horizon[on].
     
  11. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Just to be clear on what you mean by HLOD, you are talking about something like Unreal Engine has?

    https://docs.unrealengine.com/4.26/en-US/BuildingWorlds/HLOD/

    As for Horizon, could you link to a time stamp in a video showing off the feature you are talking about?
     
  12. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    I've been thinking about the idea of having smaller tiles (Cells in our nomenclature) for distant LODs, and actually it would be possible with some drawbacks.

    The LOD system, as it's intended to be used, does require Cells across all LODs to be the same size. There are many reasons for this requirement, chief among them that it makes determining what Cell's need to transition from one LOD to another much easier.

    However, our system also has support for multiple "Layers" (called World Groupings in our nomenclature), and these Groupings are able to use Cells of different sizes. Therefore, in order to use smaller Cells for distant LODs, you could simply set up one or more additional Groupings for each LOD that you want to use smaller Cells for.

    The drawback is that there is no LOD transitioning support for Cells on different Groupings; the best you could do is provide a nice transition "out" effect for the old LOD, and after that runs, a nice transition "in" effect could be used for the new LOD (versus performing the transition in/out effects at the same time, which is only possible with the normal LOD system).

    Hopefully that makes sense. If the HLOD system you are talking about is indeed similar to the one used by Unreal Engine, and if I am understanding that system correctly, you could probably use this same technique to support HLODs, by combining geometry across several different Cells in order to form a single Cell. Again, the HLOD would need to be on a different World Grouping (layer) if you want the Cell sizes to be different than the Cells representing the "regular" geometry.
     
  13. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    621
    Yes, that'd be one example. The gist is that HLOD groups multiple objects into one or fewer objects - this often means that the transitions might be a bit more involved (instantiating objects, potentially, flattening or re-creating state of individual sub-objects etc.) compared to doing LODs on a per-object basis.
    Theoretically, it's not necessary to explicitly support some sort of HLOD setup and instead just supply some callbacks/hooks when tiles are loaded, reach certain LODs etc. to set something like that up. But I think it'd be nice if that was handled in a way that had the use case of HLODs in the back of the head while designing such an API. An example for this would be that it might be necessary to have some async initializatio methods that are scheduled into the streaming system. That way it could be run for tiles that might need to do some more heavy lifting (procedurally generating some aspects of the world from a seed, for example) when switching to a higher LOD. Sorry, this is a bit ramble-ish but for some reason I can't put it much clearer at the moment.

    It's not necessarily a feature but more the concept itself of that asset - doing the furthest LOD stage simply with a shared heightmap, allowing it to practically stay the same and just shift the UVs of the shared heightmap (based on the shift of the origin/center of the world.) The meshes themselves simply get displaced along that heightmap, perhaps there's also a basic splatmap to read from that could have some very high-level texture assigned to it (e.g. farmland, forest etc.) The main benefit here is that it's possible to have just one or perhaps a handful of (low-ish) res heightmaps that drive/define distant terrain for vast viewing distances at comparably little authoring effort. If you author distant terrain at a resolution of ~10 meters, you can store data for a 10x10 km terrain in roughly a 1k heightmap and perhaps one or two 1k splatmaps. Very cheap, very quick to author and at a distance of a couple hundred meters, 10 meter authoring resolution is often sufficient.

    Yep, that sounds like a feasible workaround, though of course not a great solution. I do think that different cell sizes are really powerful for larger worlds (and I think the fact that map solutions use this concept also support that notion), but it sounds like it would be a major hurdle/design issue to fit it into this system, which is too bad but understandable. Thank you for the suggestion/idea on how it might be handled with the existing toolset, though!
     
  14. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    My system is setup so that for a given Cell, each LOD is a separate set of Assets. I have a dedicated Chunk Streamer class which is responsible for bringing new Assets into the scene when needed. For example, there is a default Prefab Chunk Streamer and Scene Chunk Streamer which load prefab and scene assets respectively. You can create custom Streamers to load different assets or create assets procedurally. Generally speaking when loading a given LOD asset set for a Cell, the Streamer does not know anything about the asset sets for other LODs, however you could theoretically access the other LODs in order to build the HLOD at runtime (I think). The issue I see is what happens if you load a Cell that should use an HLOD when one of the regular LODs for that Cell are not already loaded (for instance, at the start of the game)? There wouldn't be any loaded geometry to build the HLOD at runtime.


    This type of callback system is present and can be used in two different ways.

    1) The class that performs LOD Transitions (visually) is actually an abstract class which you can derive from to gain full control over how LOD transitions are performed. Theoretically, you could probably introduce a procedural LOD creation step here.

    2) I also have something called World Grouping Listeners, which allow you to implement a custom class that hooks into various stages of a Cell's life cycle. This is incredibly powerful and allows you to perform custom logic to basically do whatever you want with the Cell and its assets.

    In addition, most if not all classes (including these two), have enumerator based methods that allow them to be run over however many frames you wish, so there's no issue if your methods need to do some heavy lifting.

    I understand how this could be beneficial; I do believe my system is flexible enough to support this type of setup if you wish. Again, you would just need to place this shared heightmap on a separate World Grouping and would not be able to perform an LOD transition between the normal LODs and the shared heightmap.
    Again, if you stick the Assets on separate World Groupings, you can indeed have smaller Cell Sizes. Generally speaking, however, it is still not clear to me how having smaller Cell Sizes representing the same geographical range of the world would be beneficial. If you are able to link a video explaining how such a system would work and its benefits, I would be happy to explore this idea further.

    Thanks!
     
  15. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    621
    Thanks for the quick reply.

    Custom streamers sound pretty good! That might be necessary anyway to properly support addressables. For clarification though - I'm not looking for some sort of on-the-fly HLOD building. Being able to fully separate LODs on a per-tile basis should be good enough though, ideally as long as it's possible to have higher LODs as scenes and lower LODs as prefabs.

    Being able to specify custom transitions is really useful and should indeed cover most use cases. I think I'll need to dig a little deeper into the documentation though and also check out the concept of world groupings more thoroughly.

    Regarding the use of different sizes - the point here is not really having smaller cell sizes up close, but rather larger cell sizes in the distance, closely related to the concept of HLOD. Worlds would likely be authored with a base 'cell size' in mind as it would appear close to the player. However, at a distance, we don't need this level of detail and this resolution (which might have considerable memory implications, particularly for splatmaps). Sure, it's possible to have LODs for cells at the same resolution, however, by having larger chunks, it's possible to author lower LODs much more conveniently by being able to cover larger areas in a single scene/file, which becomes much more feasible due to lower LOD tiles needing a lower detail/authoring density. So assuming a cell size of 128m, I'd need 256 tiles for a 2k by 2k area - or I could quadruple the grid size and only deal with 4 tiles with 512*512m, and likely even get away with the same splatmap and heightmap resolution at a distance.
    A similar concept is used, albeit mostly for different reasons, with online maps. To boil it down, the advantages are lower memory footprints for distant LODs and faster/more convenient authoring.
    Though now that I'm thinking about it - it should be possible when using addressables and having another layer to handle data tiles at different resolutions - the tile LODs themselves could then simply refer to less granular map data. Sorry, I guess I'm also rubberducking here a bit :D
     
  16. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Don't worry about Assressables, I have default Streamers that work with them (both addressable scenes and prefabs). Of course, you can always create your own Streamer for Assressables if my implementations don't meet your needs

    And yes, you can specify a unique Streamer per LOD, so you could theoretically use Addressable Scenes for one LOD, Non Addressable Prefabs for another, Non Addressable Scenes for a third, and so on . . .
    Absolutely! Documentation is our primary focus at the moment; once we have something ready, I'll be sure to let you know.
    Thank makes sense! I do think just using different World Groupings could solve this problem, though of course it needs real world testing to be certain.
     
  17. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    621
    Alright, sounds good. Thanks for your in-depth reply, I think I'll give it a spin!
     
  18. Bwacky

    Bwacky

    Joined:
    Nov 2, 2016
    Posts:
    200
    Hello! I'm interested in grabbing the asset but wanted to ask if there's an estimate for when the new version is coming out :)
     
  19. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hi Bwacky, thanks for your interest!

    The holiday season has been very busy for me, I just got engaged and moved into a new home. On Monday I will be returning to working on the update full time. I am hopeful to have it completed before the end of January.

    With that said, all that is left is to finish the documentation and to do some compatibility testing with newer versions of Unity. If you don't mind having some missing documentation and possibly running into some 2021/2022 specific bugs, you can become a beta tester to get the update early. Just give me to the middle of this week to get the beta ready.

    To become a beta tester, you will need to show you are a current customer, so you will need to purchase the Terrain Slicing & Dynamic Loading Kit and email me your invoice number.

    Best Regards,
    Kyle
     
    Bwacky likes this.
  20. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Another Update!

    I just finished work on the persistent data upgrade system. This work was necessary because I have changed the way saving/loading persistent data works in the Streamable Assets Manager (I believe for the better), so any old data will not be compatible with the new system.

    Don't fear, however, as I have added some conversion methods which will allow you to convert old data to the new format. This conversion is performed at runtime, allowing you to use them in games where your players might have old save data that needs to be converted to the new "format".

    In addition, I am currently performing test to ensure everything runs smoothly on 2021.3f1 and 2022.1.

    As a reminder, the Terra Slicer and Streamable Assets Manager will only support 2020.3 LTS and above, as other Unity versions are no longer supported by Unity. In order to keep up with the pace of Unity versions (with a new one every year), it is necessary to leave older versions of Unity behind. I hope you understand.

    Hopefully by next week we should be nearing release, however don't be surprised if it takes a week or two longer. Again, I'd like to remind you that existing users of the Terrain Slicing & Dynamic Loading Kit can become beta testers now, if you'd like to get the new Terra Slicer and Streamable Assets Manager sooner!
     
    Bwacky likes this.
  21. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hi guys!

    I just wanted to provide a quick update.

    SAM - The Streamable Assets Manager is 100% finished (code wise). The only thing left to do is add a few sample scenes.

    I am currently working on the Terra Slicer In Editor Guide. It is about 90% complete. I anticipate finishing work on both products this week. I think it would be a good idea to create one or more new trailers for each product before release, so I will be working on that next. Hopefully it will not take long.

    As always, anyone who wants to become a beta tester for these new products is welcome to contact me with their invoice number and Unity Version.

    I will be supporting 2020 LTS, 2021.1, 2021.2, 2021 LTS and 2022.1 with these two new products. The 2021.2 version is a special version needed due to API Updater issues on 2021. Because this issue has been fixed in newer versions of Unity, I will only be supporting 20XX.1 and possibly 20xx LTS versions from 2022 and on.

    The 2020 LTS version will not be supported for long. This is necessary because in order to keep up with the newer versions of Unity, I need to stop support for older versions.

    Speaking of support for newer versions, fortunately, being a code based product, there are not a ton of changes that need to be accounted for with newer versions of Unity, so supporting newer versions is not usually an issue like it is with other products (where they release dedicated paid upgrades for each new version). With that said, it's always possible Unity makes some grand change that requires a lot of code to be reworked; in those instances, I reserve the right to release paid upgrades for newer Unity versions.

    Thanks for reading!
     
    one_one and Alexpi8 like this.
  22. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hey guys!

    I am still hard at work on promotional materials. This work is already resulting in a few last minute changes/additions, some of which have actually been pretty amazing for the World Designer Tool.

    I am hopeful that next week will be the time for release, and if not then, the following week for sure!

    Again, I'd like to remind anyone who has purchased the TS&DLK that they can become beta testers for both SAM and Terra Slicer by simply sending me their invoice number and Unity version (by PM or email). I will be out of the office until Sunday (April 30, 2023), so if anyone emails me before that, please expect a short delay.

    At this stage, you are pretty much getting a release version of both products, so really you can think of it as early access instead of beta.

    With that out of the way!

    I'd like to take a moment to explain a little bit more about SAM - The Streamable Assets Manager and its purpose.

    In short, SAM offers an alternative approach to game design in Unity by making use of smaller streamable assets that can be loaded in and out as needed. This approach offers several advantages over traditional large scenes where you have 1000's of objects.

    1. Lower memory footprint, both in the Editor Work and In Game.
    2. Better performance in moth instances, both in Editor Work and In Game.
    3. Assets can be better organized and reused between scenes or even different projects.
    4. Option to use different Asset Types (scenes vs prefabs, for instance) on a case by case basis, with the ability to mix and match as you wish.
    This is certainly not a full list of the advantages, but hopefully it's enough to wet your appetite.

    There are several existing Asset Store products out there that help you convert pre-existing scenes and assets into more manageable streamable assets. As far as I know, however, those solutions do not offer an easy way to iterate on and modify those assets post-creation, which is a must for any serious developer.

    In that spirit, today I want to talk briefly of a very cool feature of the World Designer Tool:

    World Regions

    World Regions are simply collections of Cells that define what should be loaded. They can be used in the editor to load pre-defined regions, which helps create a faster workflow.

    For example, imagine your World is separated into different zones, which is typically for an MMO.

    You can add all Cells that are part of the "Dark Forest" to a region. Then when you want to work on the Dark Forest, you just load that region and voila, you are ready to start making changes.

    While this may not seem like much, use of Streamable Assets can typically result in thousands of Assets being used for a single World, with a single zone containing hundreds if not more assets. If you were to load all of these assets by hand, it would be nearly impossible to get anything done!

    World Regions can only be created with the World Designer Tool, however you can save them to World Components to be used at runtime. Doing so gives you an alternative approach to loading assets than the traditional Active Grid/Player based method. It should be noted that these techniques can be used separately or in combination!

    I was hoping to upload a small GIF showing World Regions in action, but Gfycat appears to be done. Look out for it in a few days when I return to the office!
     
    one_one, Bwacky and Alexpi8 like this.
  23. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Today I started the process of getting the Assets ready for publication. So long as there are no delays, I should be able to submit both Terra Slicer and SAM - The Streamable Assets Manager tomorrow!

    I am still working on the trailers for both products, but hopefully they will be finished before the assets go live.
     
    Alexpi8 likes this.
  24. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    I am happy to announce that both Terra Slicer and S.A.M - The Streamable Assets Manager have been submitted to the Asset Store!

    The timeline for both products to go live is around 4-5 weeks if the Asset Store's estimations are accurate.

    I will be keeping the Terrain Slicing & Dynamic Loading Kit live as is until they are ready, after which I will be converting it to the Streamable Worlds Bundle (which will include both S.A.M and Terra Sliver).

    The price of Terra Slicer will be $45 while S.A.M will be $95. I have not finalized pricing on the bundle (whether I will have a bundle discount or not).

    Clearly the current price of the TS&DLK at $45 is much cheaper than the bundle will be, so you can consider this as a substantial pre-release discount for now, since customers that purchase now will get the bundle for free.

    I will likely increase the price of the TS&DLK as the release of the new products nears (most likely it will still be a slightly discounted price). Don't say I didn't warn you!
     
    Bwacky likes this.
  25. Bwacky

    Bwacky

    Joined:
    Nov 2, 2016
    Posts:
    200
    Do you have the trailers or documentation up somewhere yet for early reading? :D
     
  26. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    i was thinking the same. I don't even know what those assets are and not even a video or anything to check.
     
    Stormer2020 likes this.
  27. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Thanks for asking Bwacky!

    I am still working on the trailers for S.A.M. and Terra Slicer. I was hoping to have them finished before submitting the Assets but it they were taking longer than expected and I didn't want to delay any longer (which turned out to be a good decision, as the Asset Store review process will take 4-5 weeks).

    I do not have a ton of documentation because I am not using PDFs like other developers. Instead, I am using In Editor Guides you can reference directly in the Unity Editor when you run into any issues. I will of course be updating my website with general information and a feature list, but that's work that will be completed closer to release.

    For now, I will post some general documentation and details in the next two post after this one (one post per asset).

    Hey! Thanks for your interest!

    Terra Slicer includes the same functionality that was contained in the Terrain Slicing portion of the Terrain Slicing & Dynamic Loading Kit. I wanted to branch it off for people who were only interested in it and not the streaming/dynamic loading portion of TS&DLK.

    S.A.M. - The Streamable Assets Manager is an evolution of the dynamic loading portion of TS&DLK.

    Please see the next two posts for information about each Asset.
     
    Last edited: May 19, 2023
  28. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    In this post you can find information about S.A.M. - The Streamable Assets Manager!

    Price at Release: $95 (but free for existing TS&DLK users)

    S.A.M. - The Streamable Assets Manager unlocks a new way to build complex Game Worlds with Unity.
    The traditional approach of placing the entire game world in a single scene has several problems which become magnified as your project grows.

    1) Large scenes incur a high RAM usage cost, as all assets are loaded into memory even though many are not needed at any given time.

    2) CPU/GPU resources can be wasted on assets that aren't strictly needed.

    3) Scenes which cover a large area may run into floating point issues.

    4) Many operations (such as simply saving the scene) can stall the editor for short burst, resulting in the dreaded Hold On (Busy . . .) dialog box to appear.

    5) Simple procedures like moving a transform can become laggy.

    6) Large scenes can cause the Unity Editor to run out of memory.

    7) Working with a single scene can present conflict issues when working in teams.

    Working with Streamable Assets allows you to avoid these issues (and more), as you are able to load only those Assets that are needed at any given time.


    What You Get With Our Streaming Solution
    Break Down Large Scenes
    - The World Designer Tool enables you to break down large over bloated scenes into our Streamable Asset format with minimal effort.

    Easily Work With Streamable Assets - Game development is an iterative process. As such, we've designed the World Designer Tool to allow you to load, modify, save, and unload Streamable Assets within the Editor in a way that is both intuitive and effortless.

    Build Complex Worlds - In S.A.M. Grouping's (a set of related Streamable Assets; terrain could be in one grouping, forest assets in another, and so on) are setup individually then combine them to form complex game worlds.

    Use The LODs You Want - Use as many LODs as you wish with our system (a mechanism for adding transition effects between LODs is also included), or use Unity's built in LOD system.

    Load Prefabs, Scenes, and More - Mix and match asset types within the same game world. Via scripting, add support for custom asset types or assets that are procedurally generated!

    Use Addressables - Use the Addressable System for some Assets, all Assets, or none. We provide default implementations for creating, managing, and streaming Addressable assets, or you can create your own implementations via scripting (Note, Addressables Package must be installed to use).

    Control Exactly What Is Loaded And When - Define simple or complex patterns that are loaded/unloaded based on the position of one or more players, or load pre-defined regions configured in the Editor. Via scripting, you can also write custom solutions to basically load whatever you want.

    Eliminate Floating Point Issues - We track your Player's position and automatically re-center the World when they travel too far from the origin (if you wish). You have a high level of control over how the actual re-centering mechanism operates.

    Create Endless Worlds - Repeat your World on one or more Axes in order to create a looping, endless World. Combined with our world re-centering solution, we challenge you to make your player go too far.
    Mix and Match Pooling Solutions - S.A.M. includes default pooling solutions that should work in a majority of cases, however you can also add your own via scripting. Pooling is configured on a per LOD basis, so you can choose to use it or not depending on the requirements of each Asset.

    Control how objects transition into/out of the scene and between LODs - Eliminate popping using our included crossfade implementations or add your own implementation via scripting for advanced effects.
    Plug Into The Streaming Pipeline - Our event like system allows you to hook into the streaming process via scripting, which can be used to build complimentary systems or support Third Party Tools.
    Work with 2D or 3D Worlds - Create something as simple as a side-scroller or as complex as a space simulation.

    Easily Understand Everything With Our Robust Documentation - All of our configuration settings include tooltips to give detailed information, and our In Editor Guide ensures you don't need to search complicated Developer Websites to find the answers you need.

    Do More With Our Comprehensive API - Our API covers all of the public members in our code base, and is absolutely gorgeous. Use it to perform advanced operations like creating/destroying Worlds at runtime, initiating saving/loading, and transporting the player across the game World.

    Additional Features
    • Use Multi Chunking to split streaming work into different operations, reducing/eliminating single frame lag spikes.
    • Use our Binary Serialization based save solution or easily integrate directly with your existing save solution.
    • Convert groups of prefabs to scenes easily with our Scene Generator Tool.
    • Access a more efficient Terrain Neighboring solution compared to Unity's built in system.
    • Use miniaturized assets to better visualize your assets when defining loading patterns or working with the World Designer Tool.
    • Gain fine-tuned control over the per frame execution time of our streaming solution.
    • Use existing Assets from external tools easily via our Naming Convention system.
    Features Shared With Terra Slicer
    • Prefab Creator tool allows you to batch convert multiple game objects to prefabs.
    • Terrain Duplication command that allows you to batch duplicate Terrain (to create unique duplicated assets).

    In addition, the Asset Store Page will include some screenshots to go with the trailer. I may do another pass at these screenshots to improve the look and/or information. Feedback is welcome! You can view a PDF of these screenshots here:

    https://deepspacelabs.net/files/SAM/SAM_Overview.pdf
     
  29. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    In this post you can find information about Terra Slicer

    Price at Release: $45 (but free for existing TS&DLK users)

    Keep in mind that Terra Slicer is just a slightly modified version of the terrain slicing features contained in the TS&DLK package.

    Terra Slicer is primarily intended to allow you to generate smaller copies (slices) of a single Unity Terrain or Terrain Group within the Unity Editor. The slice copies are unique assets that can serve as complete replacements for the original Terrain(s).

    Slices have a smaller impact on the game's performance when loaded in, which allows the slices to be used with streaming solutions (such as our own Streamable Assets Manager), where different regions of the original Terrain can be loaded in and out on demand (usually based on the Player's position in the game world).

    A demo can be found on our website, which allows you to compare the generated slices with the original terrain they were produced from.

    Additional Uses
    Targeted Slicing
    - Target specific areas of a single Terrain in order to extract the features you want. The areas you don't want can be discarded as the features you do want are transferred to lower fidelity Terrain(s) (smaller resolution/size) without any loss of detail (note, this feature is not available when slicing a Terrain Group).

    Terrain Stitcher - The Terrain Tiler tool allows you to stitch terrain neighbors to make them seamless. You can also stitch a single terrain or terrain group along the outer edges to make the terrain or group tile with itself (makes the terrain repeatable in order to simulate an endless world).

    Detail Map Drawer - A nifty component that allows you to visualize the detail map of a Terrain, which can be useful for determining the optimal detail resolution and detail resolution per patch values.
    Support More Texture Layers With Default Terrain Shader - When using slices, each slice can have unique Texture Layers. This allows you to replace Texture Layers that aren't used by that slice with other Texture Layers that will be more useful.

    Main Features
    Holes Textures
    - Holes are copied correctly from the source terrain(s) to the slice(s).

    Exact Tree Copies - All trees are copied 100% exactly.

    Slice Processors - You can create custom slice processors to perform secondary operations after each slice has been generated. For example, you can use this to transfer objects to the slice, add components, or slice materials/textures (note, scripting knowledge is required).

    Scriptable Assets - Configuration Settings for slicing operations are stored in Scriptable Object Assets, which ensures they can be reused very easily. You can also duplicate the assets to create slight modifications to slicing operations for testing purposes.

    Features Shared With S.A.M - The Streamable Assets Manager
    • Prefab Creator tool allows you to batch convert multiple game objects to prefabs.
    • Terrain Duplication command that allows you to batch duplicate Terrain (to create unique duplicated assets).

    If you are interested in this tool, you can check out the Demo I linked to in the spoiler above. This demo showcases the slices generated with the slicing functionality so that that you can compare the differences between them and the original terrain they were generated from.
     
  30. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    The trailer for SAM - The Streamable Assets Manager is pretty much done! There's still a few things that I want to change such as adding the Asset Logo at the end of the video, but the core of the video is complete. At this moment, it is published on YouTube as Unlisted, so you can only access it via the following link (max resolution is 2160p, which can only be viewed on YouTube):



    This video will be removed once I finalize everything.

    I hope you guys like it! Keep in mind that it's a hype trailer intended to highlight some of the main features and give you a brief look at how they work. Videos detailing features will be added in the future (hopefully before release), and I expect developers will read the Asset Store Page in conjunction with this video to gain a better understanding of what SAM is. With that said, if you feel that the video needs to be more clear in explaining what SAM is, or have any other feedback, please feel free to leave it here!

    Best Regards,
    Kyle Gillen - Deep Space Labs

    Edit: I made a number of small improvements to the trailer, deleted the old video from Youtube and changed the link to point to the new version.
     
    Last edited: Jun 9, 2023
  31. Bwacky

    Bwacky

    Joined:
    Nov 2, 2016
    Posts:
    200
    Fun trailer but honestly speaking a quick overview of the features and workflow would do a bunch more than a trailer like this to be honest :)
    Considering there's no documentation to figure out the workflow and if this will work with our existing tools based on how you implement it into your workflow, and the trailer being a bit chaotic I'm still unsure if I can make use of it. Maybe I'm alone in this regard but available documentation or a quick-start video goes a long way.
     
  32. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Thanks for the feedback! Covering the workflow is a great idea and I will definitely be including a video to go alongside this one on the Asset Store Page that details the workflow and possibly the features (although features will be covered extensively in the Product Description, so I'm not sure if I will prioritize that. Perhaps a video that showcases some of the features that are harder to understand with just text might be a good idea).

    In the meantime, a few post above this one I posted some detailed information that outlines the features. I also posted a link to a PDF that briefly goes over the features as well as gives a general overview on how the system works (in theory).

    Also, if you have any specific questions regarding features or the workflow I would be happy to answer them.

    Perhaps the following information on the workflow can help illuminate what areas aren't clear:

    1. Effectively, my system is grid based, where each grid has a number of rows, columns, and layers of cells (which are defined in the editor before the game has started).

    2. Each Grid is associated with a set of Streamable Asset Chunks. Streamable Asset Chunks are the smallest unit that can be loaded/unloaded.

      They can be scenes, prefabs, or some kind of custom asset/object, and the scenes/prefabs can be addressables. You can use existing assets that you have already created, assets created using Terra Slicer, or assets created using the World Designer Tool (more on that later). There is a lot of flexibility on what assets can be used.

    3. Each Cell on a Grid is associated with 1 or more Streamable Asset Chunks. When that Cell needs to be loaded, all Asset Chunks associated with it are loaded. Same goes for unloading.

      The use of more than 1 Asset Chunk per Cell purely exist to reduce the load cost of Asset Chunks. For instance, if you have an Asset Chunk that represents a section of forest, and that forest Asset Chunk has 500 tree children, loading all 500 trees with one load operation might cause a lag spike. So you can split the Original Asset Chunk that has 500 tree children into 5 Asset Chunks each with 100 children (or 10 Asset Chunks each with 50 children. Use whatever you want!). All 500 trees are loaded around the same time, just not ins the same load operation.

    4. The main component that drives the majority of code is the World class. A World is just a combination of multiple Grids layered together and given position in the scene. You can think of it as the chef in a restaurant. It defines what your game can be (like the chef chooses the menu), but it doesn't necessarily do anything without input (customers putting in orders).

    5. That's where the Active Grid class comes in. Each Active Grid tracks one Player's Position and makes use of Loading Patterns to determine which Cells from each Grid need to be loaded based on that Position. The patterns can be basic ring patterns or complex custom shapes, all definable by you the developer using a GUI based workflow. You can have more than one Active Grid as well, if you have a local multi-player setup or multiple cameras in the game world.

    6. So, Active Grids basically determine what is loaded at any given time, however they are not the only way to control what is loaded, and are actually completely optionally. Another approach is to setup pre-configured regions of Cells in the editor (which we call World Regions), then tell the World to either load those regions at the start of the game or load/unload them during the game using scripting.

      You can also avoid both of these options and also elect to write custom code that loads/unloads specific Cells based on your own criteria.

    7. World and Active Grids can be created/destroyed at runtime and those changes can be carried over between gaming sessions using a save system.

    8. When Cells are loaded and unloaded, they are passed to a special Component called the Chunk Manager. This component determines whether Asset Chunks can/should be pooled. There are a couple default Chunk Managers that offer different pooling solutions, or you can create your own custom Chunk Manager to add different pooling behavior.

    9. If the Chunk Manager does not have Asset Chunks pooled for a specific Cell, it requests new Asset Chunk be streamed in via the Chunk Streamer Component. When unloaded Cells, any Asset Chunks that are not pooled are also passed to the Chunk Streamer so that the Streamer can unload those Chunks from the game.

      Again, there are several Chunk Streamer's available by default depending on the type of assets you are using (prefabs, scenes, Addressables, etc.), however you can also create custom Chunk Streamers to support custom Asset Types or procedural Assets (assets only created at runtime).

    10. After retrieving Asset Chunks for Cells, the Asset Chunks can be transitioned into a visible state using a special Transition Controller. This allows you to perform special effects like cross-fading, scaling, or re-positioning. Again, this is optional. You can forgo the use of this Controller to make stuff just pop in, but that of course won't look very good to your player.

      There are a few Transition Controllers available by default, however you can also create custom ones to add special effects.
    Some other general information:
    1. SAM support multiple LODs out of the box, although in some situations working with Unity's built in LOD system might be a better option.

    2. There is a tremendous amount of flexibility in the types of Asset Chunks you use. For some things you might want to use scenes, for others prefabs, and then for others procedural assets. That is totally possible with our system, and you can define this on a per LOD basis. In fact, a lot of stuff can be defined on a per LOD basis.

    3. Hopefully you've picked up on this, but our philosophy is to offer default solutions that work in 99% of cases, and then offer the flexibility to create custom solutions when that 1% case comes around. We try to separate responsibilities as much as possible, so rather than having a single core class that does everything, we use 5+ components that each do one or a few things.

    4. 96% of our code base is in compiled class libraries. This isn't about secrecy, to be honest I could care less if you decompile the code and use it instead of the compiled DLLs. DLLs are simply easier to work with across multiple Unity versions and make other things much easier. However, I will not provide detailed support for decompiled projects. You do that at your own risk!

    5. I'm probably missing a lot of stuff.
     
    Bwacky likes this.
  33. Bwacky

    Bwacky

    Joined:
    Nov 2, 2016
    Posts:
    200
    Exactly what I needed to grab the package - grabbed it just now :)
    Any idea when it'll be out of the queue? I'd love to dig into the in-editor docs and take it for a spin if possible a bit earlier.
     
  34. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Awesome! Thanks so much!

    It will probably be a few more weeks unfortunately, it seems the Asset Store review process is moving very slowly right now. SAM/Terra Slicer are 1340/1341 in the queue. They started around 2000 I believe (3 weeks ago).

    But if you've purchased, you can email me your invoice number (to support@deepspacelabs.net), along with your Unity Version, and I will send you the package so you can get started working with it.
     
    Bwacky likes this.
  35. Bwacky

    Bwacky

    Joined:
    Nov 2, 2016
    Posts:
    200
    Done just that, thanks! :D
     
  36. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hi all,

    We are about 1 week (I hope) out from the release of Terra Slicer and SAM.

    As such, I have decided to increase the price of the Terrain Slicing & Dynamic Loading Kit to $95. Please note, this is still cheaper than the future price of the Streamable Worlds Bundle (which TS&DLK will be converted to).

    The price for that will be $120-140.

    Remember, if you purchase TS&DLK you will get the bundle for free, meaning you will get both Terra Slicer and SAM. Thus, a purchase of TS&DLK at this time is really a purchase of the bundle.

    I have also released the trailer publicly. There's no difference between it and the previously posted trailer, so if you've already seen that trailer you don't need to watch the new one.

    Note, the video says available now on the store, but that's because I didn't want to have to re-release the trailer after the product is uploaded to the store, since that would require deleting the old one.

     
  37. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    The first tutorial (Getting Started) is out now for S.A.M.! While it won't be useful until the product is released, it will give interested parties a look at what S.A.M. is and how it works.

    Enjoy!

     
  38. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hello everyone! We have exciting news!

    Terra Slicer and S.A.M. - The Streamable Assets Manager are now live on the Unity Asset Store! The Terrain Slicing & Dynamic Loading Kit is currently being converted to the Streamable Worlds Bundle (waiting on Asset Store approval), however I have already configured it to act as a bundle, which means:

    1. If you purchase or have purchased the TS&DLK - When you add Terra Slicer and S.A.M. to your cart, they should show as free.

    2. If you purchase S.A.M. - When you add the TS&DLK or Terra Slicer to your cart, they should show as free.

    3. If you purchase Terra Slicer - When you add the TS&DLK or S.A.M. to your cart, they should show as costing $50.
    Keep in mind that the pricing of option 2 and 3 will change once the TS&DLK to Streamable Worlds Bundle conversion is complete, as the new bundle price will be $125 rather than $95.

    So once complete it will look like this:

    2) If you purchase S.A.M. - When you add the Streamable Worlds Bundle or Terra Slicer to your cart, they should show as costing $30.

    3) If you purchase Terra Slicer - When you add the Streamable Worlds Bundle or S.A.M. to your cart, they should show as costing $80.

    If you purchase both S.A.M. and Terra Slicer individually, do not purchase the bundle or the TS&DLK! There is no way to make the bundle free for users that have purchased each product individually, so I am not sure of what price it will show as costing, but purchasing the bundle at that point would be redundant.

    Please bear with me as I convert the website and API to reflect the new products. For the time bearing, some information may be outdated. If you find such information, please don't hesitate to let me know!
     
    one_one likes this.
  39. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hello all! I have had a report from a user who purchased the TS&DLK in 2015 and was correctly offered SAM at $0, however after purchasing it at this free price, the store offered them it at $50.

    I am trying to find out what's going on with this, but in the meantime, if you have correctly been offered SAM or Terra Slicer for free, and after checking out at the $0 price you see a non free price, please do not purchase them again at a non-free price point! You should be able to download the packages after the $0 purchases. If not, please let me know!
     
  40. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    The conversion to the Streamable Worlds Bundle is complete and it's price now sits at $125.

    This means the upgrade prices have changed.

    If you buy Terra Slicer, you can purchase the bundle or SAM directly for $80 (125-45)
    If you buy SAM, you can purchase the bundle or Terra Slicer directly for $30 (125-95).

    Remember, if you bought the TS&DLK in the past or buy the Streamable Worlds Bundle, you should see SAM and Terra Slicer as costing $0 at checkout! If you see them for a non 0 price, please contact me.
     
  41. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hey all! We just added a new video to YouTube that compares Terra Slicer with Unity's Split Command from its Terrain Tools package. We hope you find this instructional! As always, please feel free to leave feedback here or on discord.

     
  42. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hey all!

    We're not sure if anyone is sticking with Unity after the latest news, but if you are, you might be interested to know that we just submitted updates for both SAM and Terra Slicer to the Asset Store. Beta Testers can get these versions on the website (please email, DM me here or on discord for information on how to be come a beta tester).

    SAM Change Log: https://deepspacelabs.net/files/SAM/change_log_1_1_0.pdf

    Terra Slicer Change Log: https://deepspacelabs.net/files/Terra_Slicer/change_log_1_1_0.pdf

    I'll highlight the major new features/improvements for SAM:
    1. A new SAMInitializer component was added, which should make initializing SAM easier (especially the gradual/multi-frame initialization). This component makes activating/deactivating game objects before/after initializing really easy, and also allows you to hook up a UI Text and/or Slider easily to display the Initialization Progress to the user.

    2. A new Scene Breakdown tutorial Chapter in the In-Editor Guide.

    3. Faster Advanced Operation speeds for the World Designer Tool.

    4. Performance Improvements when unloading non addressable scene based Asset Chunks.

    5. The addition of two new Cell Visual Transition Controllers, which allow you to perform scale and position based transitions.
    We hope everyone is doing well! For anyone looking for discussion of one of our products, please bear in mind that the Discord Server is a little bit more active than this forum thread. The link to the server is in the original post if you are interested in joining!
     
    Last edited: Sep 14, 2023
    one_one likes this.
  43. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    1.1.0 for both SAM and Terra Slicer are now live on the Asset Store!! Remember, you can find links to the full change logs in the post above this one ^^
     
  44. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hi everyone,

    Update 1.2.0 for S.A.M. - The Streamable Assets Manager has just been released on the Asset Store. The full change log can be viewed at https://deepspacelabs.net/files/SAM/change_log_1_2_0.pdf

    A few highlights:
    1. Added the first version of the Samples Package, which includes some sample scenes and assets that go over specific topics and show you working scenes that you can reference to get a better idea how things should be configured when using SAM. Rather than add these samples to the Asset Store package (which would increase the size by 200MB at least), the Samples package is available for anyone to downloaded from our website, at https://deepspacelabs.net/html/sam/samples.html (of course, this package is completely useless to anyone without SAM).

    2. A new Extra Visible Scaling setting for the ScaleTransitioner class, which allows you to modify the final visible scale of all Asset Chunks of a World Grouping in a uniform way (i.e., you can make the scale of each Asset Chunk 3x's larger, 5x's larger, 1/2 smaller, etc.). This makes it easy to change the scaling of assets without having to adjust each individual asset in the editor.

    3. A new GetAllLoadedWorldCells method for the World class, which allows you to get all loaded World Cells for a specific World Grouping at runtime.

    4. Fixes three bugs, one of which was a compilation error (all three bugs can be found in the Known Issues spoiler in the OP).

    5. Added a new FAQ Chapter to the In-Editor Guide. For now it only covers three questions/answers (one of which is about the new Samples package), but in the future I will add more information to this Chapter.
    Hope you enjoy!
     
  45. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hey everyone! I'm excited to announce a new video that gives a General Overview of S.A.M. It will help you understand the basics of how S.A.M. works in game, and highlights some of its key features/functionality.

    I'll be posting more videos like this soon, such as one covering the World Designer Tool.

    Enjoy!!

     
    one_one likes this.
  46. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hey everyone!

    I just published update 1.3.0! You can find the change log on my website: https://deepspacelabs.net/files/SAM/change_log_1_3_0.pdf

    as well as past change logs: https://deepspacelabs.net/html/sam/sam_version_history.html

    Some highlights:
    1. Added a new Scriptable Object class you can derive from to listen in to Load and Unload events on the World Designer Tool.

    2. Several bug fixes

    3. Reworked the Getting Started Tutorial to make the actions you need to carry out more explicit.

    4. Added the first iteration of the FAQ Chapter to the guide, which should help troubleshoot some common problems.
    Thanks and enjoy!
     
  47. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Update 1.3.1 has been approved and is now available on the Asset Store!
     
  48. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hey everyone,

    Update 1.3.2 was published today on the Asset Store. Get it while it's hot! You can find the change log attached. Enjoy :)
     

    Attached Files:

    one_one likes this.
  49. NDVR

    NDVR

    Joined:
    Jun 23, 2016
    Posts:
    4
    Hi, I am an artist, I am learning sam recently, I did not find out how to manage the pre-baked lightprobe data of the scene, the lighting part is how to do cutting and management. Besides, what are the good suggestions for culling? Thank you very much and look forward to your reply.
     
  50. gilley033

    gilley033

    Joined:
    Jul 10, 2012
    Posts:
    1,181
    Hi there NDVR! Thanks for the great questions.

    Unfortunately I have not dealt much with Unity's baked systems such as lighting. This is a topic I am going to be exploring soon to see what solutions I can come up with.

    Of what I know, Unity's baked lighting will not work easily with SAM, as SAM is setup to load and unload multiple scenes as needed, whereas Unity prefers all lighting data be baked into a single scene. Based on this alone, it seems like there would be two solutions:
    1. Load the entire game world into the editor and bake the lighting into the main scene.
    2. Load small parts of the game world into the editor, bake lighting into the scenes containing the main game world pieces (like the terrain), then change which of these scenes is active at runtime based on where the Player is in.
    Of course, this is theoretical and option 2 might not actually be workable. I'd be open to suggestions if you have any! I'll post back here sometime next week after researching this topic further.

    For culling, I believe another user is using a culling system from the Asset Store without any issues, so I will do some research and try to find out what they are using.