Search Unity

[Asset Store?] Asset Streaming Plugin

Discussion in 'Works In Progress - Archive' started by JamesPro, May 23, 2014.

  1. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I've been working on a Asset Streaming System using Asset Bundles. You create your Game with all scripts and Scenes then you create a 2nd project where you layout your Levels or Regions depending on what your doing with it. In a Large Seamless Openworld game your world will be made up of Regions which are a grouping of Static Assets, Terrain, Triggers, ect. Using the mix of the Region Importer and Paging Manager your World will be streamed in to your game by loading in region files which are exported out through the region Exporter.

    UniStream Features:
    - Region Exporter
    - Region Importer
    - Paging Manager
    - Automated creation of Asset Bundles
    - Game Ready Fix for PhysX Floating Point errors
    - Truly unlimited Sized Worlds limited only by the amount of disk Space required.

    Floating Point solution
    UniStream's Solution to Floating Point issues entails resetting the Region the player is currently on back to the origin in real time as the player moves around. You define what regions are connected along with their offset during the export process and the Paging Manager handles the rest for you!

    Demo Release
    Here is the first release! This is a Demo Release to allow you to test out UniStream in it's Current state. This Release comes with everything you need to Create and Export Regions and Asset Bundles for use with UniStream and comes with the UniStream Viewer to allow you to walk around and test your regions.

    Exporter Package: http://www.riseofheroesmmo.com/UniStream.unitypackage
    UniStream Viewer: http://www.riseofheroesmmo.com/Viewer.zip

    This release does NOT come with the fix for PhysX and does not include the Client/Game SDK or support for anything other then Terrain and Static Objects.

    Licensing
    Atavism Basic - Free. This is a Basic Version with limited sized world that will be included with the Atavism MMO Framework.

    Unity Basic - Free. A Basic limited Sized World version that will be available for general Unity Projects

    UniStream Indie - $50. A version suitable for Unity Indie which uses the Resource Folder instead of Asset Bundles. This version is limited by the memory requirements of Unity.

    UniStream Pro - $100. An Advanced version which includes the possibility to use the Resource Folder OR Asset Bundles depending on your games specific needs.

    How can my Project benefit from UniStream?
    UniStream can help to streamline projects from Open world MMOs to simple small scale single player games based around Levels.

    Open World Games - MMOs, Single Player RPGs, ect.
    Using UniStream you will be able to create large seamless worlds and stream in the assets into the Client/Game as the player is moving around. The Tools for working with UniStream are streamlined to make it quick and efficient to add new regions to an existing game.

    Level Based Single Player games
    Setup your game to read in region files then adding new levels through downloadable content packages becomes a breeze.

    Level Editors or Moddable games
    Are you creating a Level Editor so players can create their own levels in your game? UniStream makes such project a breeze!

    Games Using UniStream
    Greed Monger - Openworld Sandbox MMORPG - ElectricCrow Games
    Neos - Openworld Sandbox MMORPG - NeoJac Entertainment

    $GM_Tools.jpg

    $UniStream_Tutorial2.jpg

    Let me know if you have any questions or would like to have something like this on the asset store.

    Tutorials

     
    Last edited: May 28, 2014
  2. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    I guarantee you this is what a lot of developers (including myself) want; it's a necessary and fundamental tool that should be in every game engine.

    If its reasonably straightforward to implement for the end-user, allows for large, dense worlds, allows for AI navigation through loaded regions and doesn't hitch, you can be assured it would be very well received.

    I see a lot of threads like these, testing the waters to see if there's interest. If you've spent the time on something (it appears you have), have confidence in it, make it the best asset you can and release it. Understand that very few vocal people like myself will respond, but a great many others will not, but will buy this asset. Get it on the store! :D

    Cheers

    -Steven
     
  3. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Thanks Steve. I'll work on a basic Free version that will have a world size limit that will allow people to test it out and see if it's for them. It will give you a chance to see how easy it is to work with. I still need to add support for Triggers and so far it has minimal support for Custom Asset Groupings so you can create a town for example and group all the assets together for the town which just helps in organizing your assets more. I have some other features I've started thinking about as well but haven't started implementing them yet.

    The Package will come with a Viewer Application which let's you view your regions using the basic FPS Character System before adding it to a full project.
     
  4. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Sounds good James.

    With the Free version, make the world as small as you can to simply demonstrate the full breadth of what your'e offering so it's completely clear your asset does what it intended to, but nothing more. Don't give your work away.

    Also, and this might even serve you better, have a demo that is on par with any open world game on the market today (GTA5, Skyrim, etc) that shows comparable performance and density of assets (geometry, texture, audio, etc). It doesn't have to be gorgeous artwork, but shows that what you're offering is again, on par with the streaming engines used in todays games.

    Keep it up and keep talking about it :D

    -Steven
     
  5. Muber Gaming

    Muber Gaming

    Joined:
    Jan 24, 2014
    Posts:
    48
    Sounds interesting,

    Been looking for something like this for a while, in my search i found something that is close to what i need, it is called: SECTR COMPLETE
    altho price is a little steep, but seems to have the complete streaming structure, audio, terrain, assets, lod etc.. i wonder if that is why price is a little steep, well at least for me :-(
    what would it be the difference between your asset to existing SECTR COMPLETE?
    price?
     
    Last edited: May 24, 2014
  6. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Looks like the biggest difference is that SECTR doesn't use Asset Bundles. It looks like you create your different regions if you will in different scenes and then it loads the scenes as needed. I see no mention of it using Bundles and the only feature that is Pro only is loading using async. UniStream will be Pro Only as it's all built around Asset Bundles.
     
  7. Muber Gaming

    Muber Gaming

    Joined:
    Jan 24, 2014
    Posts:
    48
    ahh, ok
    so your asset streaming tool is for unity pro only, right? :-(

    so i assume as steep as the other when it comes to price?
    the diff is that with SECTR will work for both unity free and pro.
    so i better start saving for SECTR then since i cant afford unity pro :-(
    thanks
     
  8. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    So just wondering what you guys thought of something. Should I add in a way to get around the whole floating point issues with PhysX when you go too far away from the origin or should I leave that up to Developers to handle for their own games? If I added it in then UniStream would truly be capable of Unlimited Sized worlds or at the very least the ONLY limits would be those of HD space to hold all of the assets.

    Also here is a Screenshot from the Sandbox MMO Greed Monger showing an area of the world that is 100% streamed using UniStream:

    $GM_WaterfallMaybe.jpg
     
  9. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    The last sentence in your initial paragraph answers the question preceding it. :D
     
  10. GoGoGadget

    GoGoGadget

    Joined:
    Sep 23, 2013
    Posts:
    864
    If you did manage to create a fully game-ready, all-purpose solution to floating point inaccuracies, that would be fantastic, and very useful.
     
  11. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I've got some ideas on how to go about adding in a fix for Floating Point but I just need to prototype the ideas and make sure they will actually work in practice. In my head I don't see why they wouldn't though.
     
  12. cookimage

    cookimage

    Joined:
    Sep 10, 2012
    Posts:
    729
    Looking good James!!
     
  13. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Please, Please, solution to floating point issues, Did I say please :)
     
  14. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I updated the original post with some of the features already included or planned, a Listing of games currently being developed using UniStream, and a listing of how your game can benefit from UniStream!
     
  15. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I've released a Demo Release that will allow you to test out UniStream using the UniStream Viewer. This release does not include the Client/Game SDK.
     
  16. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Here is the first Tutorial. I'll be doing more soon. Sorry in advanced for the bad Audio Quality.

     
  17. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Hmmm hard to follow, very laggy and poor audio. I recommend you don't use google hangouts to create your tutorials.
    Here is a great freeware screen recorder: Screen-Recorder
    Also not sure if the end of the video worked? was the Viewer meant to do anything, all i seen was the directory with the exe to run the viewer.

    Look forward to future tutorials that show what looks to be a fantastic asset in operation.

    Any chance this will support terrain created using TerrainComposser :)
     
    Last edited: May 27, 2014
  18. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Yeah the end of the video didn't come out. The Viewer goes into full screen and Google Hangouts has issues with Full Screen DirectX Games/Application.

    I was told just a few minutes ago that TerrainComposer is capable of creating Procedural Content at runtime. If you use TerrainComposer like that then I'm not sure how well UniStream would handle TerrainComposer. IF however you used TerrainComposer in the editor only to create your terrain, texture it, ect. then yes UniStream would work great with it.
     
  19. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I have added a 2nd tutorial showing how to add Static Objects and set them up for streaming. I also added a Screenshot showing the result of the 2nd tutorial.
     
  20. dahrrr

    dahrrr

    Joined:
    Jun 4, 2012
    Posts:
    52
    Nice, could you show how it remove memory use too? It's easy to stream/download region into memory, but the question always is :
    - when should I download it?
    - when should I remove it?
    - there will be spike on GC on old computers?


    All best!:) We made something like that without bundles but only for textures. I hope you will create something bigger from this what you started:).
     
  21. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I had a several people asking about TerrainComposer being used with UniStream. I decided to do some tests today as part of development of a Showcase Game. TerrainComposer works just fine with UniStream. My Test environment for the Showcase Game is made up of a 3x3 grid of Regions with each region 1,000 by 1,000 units.

    $UniStream_TerrainComposer_test.jpg
     
  22. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Has anyone had a chance to play around with the Demo I released? Any thoughts or suggestions? I'm making some updates to it this weekend and then have to write up documentation the start of the week then hopefully will be submitting it to the asset store toward the end of the week.
     
  23. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Ok So I had said that I was doing a Showcase Game for UniStream well I am now ready to discuss it some.

    For a few months now I've been toying with the idea of doing my own Zombie Survival Multiplayer game. My own take on DayZ or WarZ... Well the time has come! With the help of a FPS Starter Kit I found I'll be creating my own Zombie game.

    Here are my plans:
    The Server will be available to freely download so players can host their own Servers. The Servers will be able to be set as Private or Public. If they are set to public they will connect to a Lobby Server I run on my own hardware. This way players are able to find Servers to play on. The Client will also have the ability to connect directly to an IP that you enter in so you can connect to Private Servers.

    Server Admins will be able to configure how many players can connect to the Server at a time and a bunch of other Server options. Admins will also be able to mod their Servers. Adding in new items, new Zombies, whole new Static Assets, and even create their own Custom Maps.

    So far I have Zombie Spawning pretty well setup the way I want it and I have Loot Spawning working but it still needs some work. I have Added Thirst and Hunger and every time you take Damage you run a 25% chance of Bleeding for 2 minutes. When you Bleed you lose 50 worth of Blood every 5 seconds. If your thirst or Hunger gets to 0 you start loosing Blood.

    Zombie AI still needs some major work but so far they detect you based on the amount of sound your making. Standing Still you create the least amount of Sound. Walking while your crouching generates the least amount of sound moving. Walking generates more while Running generates the most. Shooting weapons generates ALOT of sound based on the weapon and is enough to draw a whole mob of Zombies chasing after you so use your weapons wisely!

    For Vehicles so far we have a Military Buggy and a Helicopter working. I still need to add in spawning of them but that won't be very hard to add in.

    So far I have all of this working in a single player Prototype however it won't be too hard to get it all working over the network.

    Project_Zombie.jpg Project_Zombie_Bleeding.jpg Project_Zombie_UI.jpg Project_Zombie2.jpg
     
  24. UltraTM

    UltraTM

    Joined:
    Dec 8, 2013
    Posts:
    221
    Hi James.

    When did you plan a release of UniStream to play with. or when does it come to the Assetstore.
    Greetings René
     
  25. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    UniStream will be available for Atavism in one of the next updates.

    You guys using Atavism will be getting the UniStream Indie License for Free as part of Atavism. UniStream Indie uses the Resource Folder instead of Asset Bundles so it's available for both Unity Indie and Pro users. If you want to be able to use Asset Bundles then you will need both UnIStream Pro and Unity Pro.
     
  26. rblkwa

    rblkwa

    Joined:
    Jun 20, 2013
    Posts:
    61
    Hi james,

    Looking good! Did you also implement something for a multiplayer enviornment? In the game im working on im banging my around this in a large world using a floating origin.

    Tnx
     
  27. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I am in the process of preparing my MMO Framework that I'll be using for the Zombie Survival Game to have UniStream Integrated directly into it. The MMO Framework will also be getting sold on the Asset Store once it's successfully been tested. It includes a Lobby System for Lobby based Multiplayer games. It also has a Python Scripting Engine for Server and Client side scripting, Custom Messaging System, Plugin Framework, and many more features.

    I will be selling a complete kit that includes all the plugins needed by a typical MMORPG it will include a Standard Compiled Client and Server, UniStream will be included. You will get access to the UniStream Exporter while the UniStream Importer and Paging System will be compiled into the Client and Server so they can't be used in other projects out side of the Kit. Your world will be created using the UniStream Exporter and you will add items, mobs, quests, ect. using the built in Python Scripting Engine.

    The Framework is a very solid foundation built on top of Lidgren so it uses UDP Communication. Plugins are very quick to create depending on the complexity of the Plugin. I was able to create the entire Lobby Server in just a few hours last night. The Lobby Server currently contains a Lobby Plugin and a Chat Plugin.
     
  28. rblkwa

    rblkwa

    Joined:
    Jun 20, 2013
    Posts:
    61
    I will keep an eye out for those assets!
    Tnx
     
  29. UltraTM

    UltraTM

    Joined:
    Dec 8, 2013
    Posts:
    221
    Is this still in develeopment and comes with Atavism on some point or need to buy that?

    Greetings
     
  30. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I'm done with Atavism for reasons I've made very clear so no this will never come with Atavism. I still work on it from time to time for my own personal Projects so at some point it will most likely make it to the asset store. I can upload a new demo version which should have everything included that you would need to integrate it into your own project.
     
  31. Nmzikcs

    Nmzikcs

    Joined:
    Nov 27, 2012
    Posts:
    7
    When you are going to release this plugin?And can you please add a new demo version?
     
  32. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    Here's the latest Exporter Build. You can download the old Demo and replace the exporter dll with this one.

    Please provide feature requests, ways to improve usability, ect. Thanks!
     

    Attached Files:

  33. SuperNewbee

    SuperNewbee

    Joined:
    Jun 2, 2012
    Posts:
    196
    I am planning on buying this to replace my current system (SECTR) because this deals with floating point issues which SECTR can not do. Is there any update on the release date yet? Thanks
     
    John-G likes this.
  34. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    uStream doesn't currently have the fix for Floating Point. That's a Feature I'll be adding in later. So far I've been working on features that I've NEEDED for projects I'm using it with. It's setup with features specific for MMOs like the ability to load Spawn Point Objects ONLY on the Server and the same with Trigger Objects. I also have the ability to set up variables for custom Classes. The Custom class get's added to the Game Object upon loading the object and variables get set.
     
  35. siblingrivalry

    siblingrivalry

    Joined:
    Nov 25, 2014
    Posts:
    384
    Hi James, are you still working on this?

    Thanks.
     
  36. odival

    odival

    Joined:
    Jun 11, 2014
    Posts:
    57
    would this work with Unity 5?
     
  37. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    No idea yet as I haven't upgraded to Unity 5 yet but I see no reason why it wouldn't.
     
    odival likes this.
  38. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Would be nice to know
     
  39. MMOInteractiveRep

    MMOInteractiveRep

    Joined:
    Apr 7, 2015
    Posts:
    88
    Hello. Yes I've upgraded this to Unity 5 so yes my latest version does work with 5 but it's not available to the public yet.
     
  40. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Okay thanks