Search Unity

Dream Bit Bundles - Game foundation framework based on powerful asset bundling system

Discussion in 'Assets and Asset Store' started by dream19, May 15, 2019.

  1. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello fellow game lovers and developers!

    I humbly present you a system that could benefit a lot of (beginner or veteran) developers called Dream Bit Bundles (DBB). The main thing you gain by using it, I could easily say its TIME (i mean..thousands of working hours!). DBB is a (almost) complete game kit/framework, ready to rapidly kick start your game development by solving/facilitating lots of game related challenges so you can focus on your actual game mechanics! At it's core resides a powerful and greatly simplified asset bundling mechanism which also allows you to access the bundled assets with simple and clean code, perform bundles server uploading, deploy binary and game patches (without the need of external patching programs!), massively reduce patch size by using delta encoding, configure splash screens, display in-game modal alerts and so much more. It is also easily extensible with your own custom logic. On top of all that there is a powerful level configuration system that will rid you once and for all of the need of having more than 1 scene in your entire project and built game.
    Being designed with my own game development needs in mind, it is an ongoing project and you can expect support and new useful and cool new features as time progresses.

    IMPORTANT: Dream Bit Bundles can be officially purchased ONLY on the Unity Asset Store. I don't sell it and I've NEVER done it anywhere else! Also, I have NEVER given others permission to do so!
    Any copies you see being sold or freely distributed anywhere else ARE ILLEGAL and should be treated as such and avoided.


    If you are a TL;DR kind of person, I have summarized in some short videos, some core features:

    dbb_logo_splash.png

    Folder based Asset Bundling:



    Uploading your bundles to a server and automatically downloading them client-side:



    Creating and Deploying to your clients a game patch:



    Level Configuration:



    Binary Self Patcher



    I will leave you with a Link to more Video Tutorials/Demos.

    More awesome features and screenshots at Asset Store Link
     
    Last edited: Mar 31, 2021
  2. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    Sorry to barge in like this but I have a small update: I've updated the first post in this thread with an embedded video showcasing, in as little time as possible, (~3 minutes) the core asset bundling and accessing mechanisms of DBB. So if you are still unsure how DBB can make your development easier, and/or were discouraged by the sheer amount of textual/image information provided, give it a chance and see for yourself the magic happening.
     
  3. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    DBB has just received a significant update which brings some essential fixes and a powerful new feature: you can define a list of supported platforms and have the asset bundles/game players built for all of them at a time. This significantly reduces build times when targeting multiple platforms as it spares you the effort of manually changing the project build target and rerunning the building process for each targeted platform.
     
  4. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    Recently I've released version 1.5 of DBB, with a richly populated changelog. You can see all changes on the product page, under the Releases section. To mention some highlights:

    ● I've introduced a Binary Self Patching system which allows you to deploy compiled code to your client devices, using the asset bundling mechanism already provided by DBB. This means that now your games can receive both new/patched game assets and also new/patched programmed logic, over-the-air, WITHOUT the need of external patching programs. (Supports Android, Windows and Linux Standalone builds). For more details you can watch the quick demo tutorial in the first post.
    ● You can now digitally self sign the newly built asset bundles in order to protect them against being hacked in route to your client devices or while being stored on the server.
    ● I've introduced some frontend features as well: an in-game modal dialog system, configurable game start splash screen and fade in/out transitions between game loading screens.

    I've also updated the first post of this thread to better reflect the improved DBB.
     
  5. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello,

    I've released recently a new massive update that bumped the version to 1.75 (then 1.76 came with some fixes):

    ● The most important addition to DBB that came with this version is the delta encoding / binary diff patching system. This is a professional grade system which can greatly reduce the size of deployed patches by computing smaller binary difference files between the old and newer asset bundles. So, instead of uploading/downloading entire updated bundles, the system will deploy only what has actually changed to a bundle since last build, saving lots and lots of network traffic for your clients.

    ● Added official support for MacOS and iOS. Now DBB supports all major desktop and mobile platforms.

    Decoupled the FTP server communication logic from the DBB core. Now you can easily add your own file server backends by implementing a simple interface.

    ● Implemented a transactional patch upload mechanism. This means that during the process of uploading bundles from the editor, clients trying to connect will not be able to download new content, and those who were in the middle of a download process will be interrupted.

    ● I've updated the product page with clearer screenshots, revised description text, added subtitles to video quick demos.
     
    Last edited: Jul 29, 2019
  6. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    The time has come for the last major build, 1.8. This one comes with the following major features:
    • Selective asset bundling or also known as Asset bundle Variants. This feature allows you to pack, in the same asset bundles, different assets for different target platforms. Uses a reserved folder name based mechanism as so it's incredibly easy to separate your assets for specific platforms.
    • I've implemented an integration with Google Cloud Storage platform to use for asset bundle upload and public access from your client devices. So now you have the good old FTP and GCS at your disposal.
    • Implemented a mechanism that allows you to enforce a minimum build version for the installed game before allowing that respective client to download new asset bundles.This way you can force your players to download a new executable (apk. exe. etc) before allowing them to download new bundles.
    • An end of summer PRICE CUT!!!
     
  7. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Dream19 (aka Daniel)

    I just recently became aware of Asset Bundles in Unity (4 years too late) and am looking for a good "manage this nonsense for me" solution to the problem that I'd rather not spend brainpower trying to deal with. I just wanna make games and play with others! You know, like you said in your Asset Store Sales Pitch for DBB (very impressive, BTW)
    So, been looking at other older and apparently abandoned solutions in the asset store for solving this and came across your DBB asset.
    I am literally drooling over watching how simple your demo appears to make all this work very well! I want to purchase and start using, but I have been majorly disappointed in custom Unity Add-on that are not in alignment with Unity's core stuff (NGUI, BOLT, etc). I am debating if I should just learn to use native Unity asset bundles or give your solution a try. Do you have any showcases or other clients using your DBB? I believe you are the real deal, I just need some assurances that if I build my new suite of games on top of DBB that I can count on some support.
    I'll give it that "try" if you are in my corner a little from the start.

    Really appreciate what you have done here as your demos CLEARLY set the standards of what a good bundle-update solution SHOULD look like. No doubt.

    Best,
    Ron (MindTipGames Developer)
     
  8. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello Ron,

    Thank you very much for your appreciation of my work and for considering to buy it!
    It is my first DBB related feedback and it means a lot to me!

    To answer your doubts. Unfortunately I can not show you any products based on DBB, for 2 reasons:

    1. From the ones who bought it, I haven't received any feedback (even tough in the Manual I provide my personal email and I encourage feedback, issues reporting, feature requests etc.). So I have no idea in what kind of projects, other people are using it.
    2. You see, DBB was initially a small module inside an ambitious game we've started a year ago (with a small team of artists and sound engineer). As each member of the team found other priorities along the way and bailed the project, I found myself incapable of finishing it or any of the other game ideas I have in my backlog. So after realizing the great potential of that small module I managed to write up until I found myself a one man team, I began full time development (no day job, no weekends or holidays) towards a full blown, standalone framework. I've incorporated lots and lots of features I've collected in my mind during my game developer career and some features I admired on AAA titles (eg: Binary Diff patching, Cloud based content delivery) and published them in about 10 successive Asset Store updates. So, you see, even my own games, which were meant to be the primary beneficiaries of DBB, did not see the light of day (for now!).
    It just wasn't enough time (and manpower) for me to work on them because DBB (coding, testing, UI, documentation, videos, bugfixing, asset store images and text) burned through my time and financial resources in the past year.
    As for the support, you can count on me on doing my best in helping with any issues or questions you might have, as time allows it (as I've said, DBB spent my savings and I find myself in need of getting a day job). I've also provided a comprehensive manual (~50 pages), a quick start guide and 2 series of videos (a quick demos list and some in-depth 20-30 minutes commentaries) regarding core DBB features. Also, you can see my commitment towards DBB from the amount of features and releases, Asset Store page materials, documentation quality (trust me, it is not just a 50 page wall of text).

    If you decide to buy it, I hope it will serve your purposes well and that it will be part of record breaking games!
    Many thanks once again!
     
    Last edited: Oct 14, 2019
    MindTipGames and TeagansDad like this.
  9. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends!

    A kind request to all who bought DBB: please write a quick review on the product page about why you liked it (or on the contrary!).
    It will help me greatly in improving it, if necessary, and also the persons who who would want to buy it but do not know what to expect.

    Thank you.
     
  10. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Daniel,
    I appreciate the very detailed response. :)
    Sorry, I got distracted with Halloween holiday in the US and am just coming back to this post.
    Okay, fair enough. I'll give it a shot and see how it serves my immediate needs on a project that got dropped in my lap a couple of weeks back.

    Best.
    Ron (MindTip Game Dev)
     
  11. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello Ron,

    Thank you for your purchase!

    Do not hesitate to share your opinions (good or bad), questions etc.

    Regards!
     
  12. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Daniel,
    Still going through the asset as I was finally able to sit down and focus on it today. There is a lot here.
    This has lots of promise and once things are operational, I can see how it will save lots of time and effort.

    First impressions are that it appears to work.
    A couple minor bugs I found.
    Click Edit in Scenes Config Add with nothing in the text box results in a broken code generated and make Unity unhappy.

    It seems the Plugins Data Folder is really tied to the default setting... tried to change it and it didn't remake those "API" items. Changed to a custom location and it is not doing anything and produced a modal box that wouldn't go away until I restarted Unity.

    Working around that, the rest seems to be okay to use.
    Definitely works on bundling, but took some learning to figure out how you intend users to use it. Terms are a little confusing. All efforts to use this asset seems tied to copying the MainScene and using that as opposed to starting a fresh scene and bringing "DreamLoader" into it as a prefab. Not sure.
    Pretty steep learning curve.
    But, the alternatives are Unity Bundles (yuck) and a couple of others that don't appear to support mobile bundle patching.
    Not trying to be negative, though... So I will repeat, that this asset has lots of promise and once things are operational, I can see how it will save lots of time and effort.

    A little disappointed that there is no option for DL bundles via https. Looks like FTP read-only user and Google Cloud(ugh) are the only options to DL the bundles. My current server hoster doesn't allow for any read-only FTP users... I guess I should've read that closer in the description. Still need to build and somehow get the bundles on some server to make sure it works as a POC before I can commit to this solution. I have other core programming tasks for the product I have to get to tomorrow (bundles or no bundles), so I'll get back to experimenting with this at a later time. Overall, good job! Just needs one more https Download feature and some polish on the instructions, in my opinion so far.

    Best,
    Ron (MindTip Game Dev)
     
  13. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello Ron,

    Thank you very much for your feedback and I apologize for DBB not being quite what you expected. I will try and address each of your issues/questions.

    1. I've reproduced the issue with the empty field, in scene Add, and subsequent resulting error. Not sure how that slipped past me, as I'm usually overly-paranoid while processing input field data.

    2. As you noticed, DBB is meant to be easily configurable especially when it comes to reorganizing your project as you please. The plugins folder can be moved around but you will have to pick the new path for it, from the main inspector. The API game objects are not automatically (re)generated so please do not break them :D. I could not reproduce the issue (works on my machine!). Make sure that when you move the DreamPlugins folder, reconfigure the path to it from the inspector, and make it point exactly to the folder in its new location (not the parent containing it). Additionally you can restart Unity to make sure proper path is loaded.

    I will definitely fix some issues I've gathered and come up with a patch, in the following days!

    3. You are probably right about the learning curve. It became a bit steeper when I've introduced Selective Asset Bundling (although it seems a bit more complicated AT FIRST, it eases greatly the process of targeting multiple platforms - a case where you need the same game assets in different quality (eg: LOW-HI poly) but need to use the same asset bundles and access code), in the previous release. The demo project is structured in such a way to illustrate most of the core features (hence the complexity). But if you do not need this feature you can turn it off in your projects. At its core, the system remains very simple: put assets in folders, hit build and obtain Asset Bundles and C# code to access them.

    4. The storage backend choices are very limited indeed. But I've anticipated that each customer might have specific needs, where they want to store the AB data. So the system is easily extensible with your custom implementation for storage backends (HTPPS Server, Google Drive etc.). You just need to create a custom type which implements an interface, register that class with the system and you should be all set. (NOTE: coincidentally, no further than yesterday I was thinking I should have provided a HTTP solution as most solutions do). I have in plan some improvements regarding this area of DBB and will definitely consider adding also a HTTP backend, but I can not give you an exact time frame (I'll try and make it happen until year's end).

    5. Indeed the MainScene was intended to be only one you will ever need in your games and any other GameObjects you need are meant to be loaded from bundles using the Level Data Loader mechanism (the one with the empty field bug). Of course you could modify this system and use custom scenes but keep in mind that the DreamLoader game object must be present as it is the backbone of the whole system!

    If you have further issues or questions do not hesitate!
    If DBB proves to not suit your needs, i will not hold any grudges against you for requesting a store refund :)

    Many thanks!
    Regards
     
    Last edited: Nov 10, 2019
  14. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Daniel,

    Thank you for the detailed response and giving me more insight on what your intents are for this product.

    It is a very good product. No refund necessary (unless you are abandoning the DBB product.. I don't think you should, though
    You've done too much work here to throw it away... and I really want to see it work) I am sure others will want this product as well. You just need more people to see it. The challenge for all of us. am I right? ;)

    Yes, the concept makes sense if explained as you have done here in your last note.
    At its core, the system remains very simple: put assets in folders, hit build and obtain Asset Bundles and C#
    code to access them.

    I think it just needs to be explained over and over... that is how I learn anyways. You'll typically find me replay-watching videos or re-listening to certain audiobook passages to really hammer in the concept to my "we little brain".;)

    The major challenge I had in working with the tool is the workflow. I recall I had to lock down the inspector a lot to keep it focused. This is probably just a habit I need to develop.

    In my opinion, that feature of HTTPS download of the bundled content is the only key to making this product very useful to me and others. I know I could code the extension myself (no time!) ... and I appreciate that you have the whole internet interaction based in .NET framework library instead of depending on Unity's ever-changing internet library. (i miss WWW)

    I'm working on a business app (yawn) for a customer for the remainder of the year and the bundles for it are light. So, it is a good test for your DBB product. If you have some beta HTTPS patches you want to throw my way, I'm game for trying them out.

    Best,
    Ron (MindTip Game Dev)
     
  15. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello Ron,

    Thank you again for your feedback and appreciation!

    I plan on maintaining and improving DBB up until Unity comes with something better out of the box, so hopefully a few years from now. As a matter of fact I've prepared in the weekend a new release with patches for the issues you've reported and some other ones I've found since the last release. It should reach the store in a few days (from my experience - 2 weeks at most). It all depends on the good folks at Unity and how fast they will approve the new submissions.

    Regarding the HTTP Server storage back end, I've done a bit of research and I think it should be simple enough to implement and therefore I could give a shot in the following weekend(s) (during the week I have to deal with a new job, worries etc.).

    Will keep you updated!
    Regards
     
  16. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Daniel,

    Very good... I'll await your updated product from the asset store... I have other parts to work on and can get by without bundling anything during the current Dev phase.
    Also, good luck with your new job... I assume it is a Day Job to keep the lights on until we (the community) can flood you with purchases for this product. :) Hopefully, that is not too far away in the future.
    I like your customer service and development ability in this interaction, so I'm sure whoever you work for will be pleased as well. Take care, sir.

    Best,
    Ron (MindTip Game Dev)
     
  17. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello Ron,

    Thank you for the good wishes and appreciation. Yes, it would be awesome if DBB started to bring some steady income, enough so that I can return to full time game development. Remains to be seen....

    Anyway, some updates regarding DBB:
    • During the last weekend I've worked around the clock to implement the HTTP server integration logic and the custom inspector needed to support this feature. The code is 100% written but it needs more testing as I've also refactored and fixed some other things along the way. Furthermore, I have to update the Manual and Asset Store materials to reflect this new feature.
    • I have decided to postpone the patch I've promised in earlier posts. I will ship all the patches and the new HTTP feature in just one release.
    Those being said, I hope to bring you the new release in about 1-2 weeks.

    Regards!
     
  18. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Daniel,

    Okay, that is great news! Glad you are proceeding to make improvements on your asset... as it is truly an asset! :) I understand that your day job will probably impede your progress on this and yes, I completely understand that you want to make sure all is thoroughly tested and working before you upload and make it available to all on the asset store... I mean, we ARE talking about the entire Unity userbase here... and you WILL have others find this asset very soon. So, yes, take your time and do it right. :)
    For your kindness in making these adjustments, I will definitely post a positive review of your asset... and offer some advice to promote it better and increase your sales. Your target clients will be any newbie users to Unity and those users (like me) who have been unaware of how critical bundling assets are on their games. Smaller initial downloads, better control on updating assets on a remote server. There is a challenge in educating the clients that they need your asset, though. We, the Unity community, need to spead the word more and get others to adopt such a "bundle mindset workflow" in our app designs. It becomes a better user experience for all.
    But, learning bundles in native Unity is painful and keeping track of them to ensure the latest is even more challenging. Your asset workflow does simplify things quite a bit. I have to do some self-promotion as well on my stuff... I'll be sure to mention your asset as a key find. :) Take care and look forward to trying your improvements.

    Ron (MindTip Game Dev)
     
  19. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    I am glad to announce that version 1.85 of DBB is now live with the following change log:
    • Implemented HTTP file server integration for bundles storage.
    • Fixed some issues caused by invalid UI input and added proper checks where missing.
    • Removed support and references to LinuxStandalone (32 Bit) build as it was deprecated by Unity.
    • Various core changes, fixes and improvements.
    The newly added HTTP integration was developed using HFS acting as file server. Depending on your actual use case and server, you might have to do some tweaks in code, especially for the DELETE file operation (I understand that the delete operation in HTTP servers is "exotic" and as such I could not come with a solution to fit all cases).
    Your feedback, suggestions and bug reporting is, as always, greatly appreciated.

    Future Development Roadmap - ordered by priority

    • Fixes for Bugs reported by customers.
    • I plan to add a custom Editor UI to report progress on tasks such as asset bundling, upload, game build etc. The default Unity Editor progress bar works...ok, but is "hijacked" by Unity itself to display it's own tasks progress so you are often left without any UI progress during very intensive tasks. A custom window used only by DBB will solve all that confusion. And it will look prettier (hopefully) :)
    • I plan to completely detach the patching servers integrations (FTP/HTTP/GS) from the DBB core and make them standalone, auto detectable plugins. This new mechanism I have in mind will greatly simplify the process of adding your own, custom server integrations and it will better comply with SOLID programming principles.
    • New features suggested by customers and/or ones I might come up with.

    So, now to respond to Ron's post. It is true, the potential market for DBB is huge as many developers, new or old, do not yet know the great potential (and the absolute need in some cases) of using asset bundles. Even myself, I did not know about this powerful concept (and I was a Unity developer for about 2 years) up until our players started complaining (for good reasons!) that they have to re-download and reinstall the entire game (~5 GB), each time we released a patch. Oh, and we did release patches..sometime a few times a week..
    I did a small video in which I've tried to bring some light and popularize the concept of AB, but unfortunately I am not a great content producer and/or speaker so it didn't quite have any success. You can check it out here.
    Oh and many many thanks for considering a positive review and some publicity! Greatly appreciated!
     
    Last edited: Dec 2, 2019
  20. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Daniel,

    Great news and glad to hear of the improvements being planned! I'm just getting back from holiday and have been working on other "UI" problems in my current projects. Currently blocked on that one (come on, Unity! a basic UI text entry doesn't exist? Really? :p ) Anyways, I'll DL your changes and give them a try with that HTTP solution being implemented and report back when I can. Thank you for looking into this and making a better asset that is needed by all. Cheers! :)

    Looks like the HFS is something that needs to be setup and installed on the File Server where the bundles are to be stored?

    Best,
    Ron (MindTip Game Dev)
     
    Last edited: Dec 4, 2019
  21. MindTipGames

    MindTipGames

    Joined:
    Oct 1, 2016
    Posts:
    10
    Hi Daniel,

    I've been steadily trying to use this asset and I think I finally have it figured out... at least the workflow of it. It is definitely a challenge to grasp the concept of where to start. I have written myself some detailed instructions of how to use it going forward. I still have not tried the HFS solution you provided, which only looks to be a HTTPS file share system that I still need to figure out instead of just a straight HTTPS download and no user. I may write my own HTTPS downloader for it, since it would only be a UnityWebRequest.
    The two things that kept throwing me was the custom ScriptableObject for the Level and the fact that the bundles kept rewriting the code that calls the bundles. Which is fine, but imagine my surprise if you don't realize that is happening! Whoa! New Code! The scriptableObject thing in Unity was a new concept for me... so THANK YOU for introducing me to it. (great way to bundle content!) :)
    I still intend to write good instruction or video to describe how I am using it, when I get time, of course! ;) I can write a review as well and definitely let future buyers know that this is an advanced concept... and really need to study basic bundles first to understand how your asset makes things better and easier. It does work.

    Oh, and to help others make there own LevelData files from the Unity menu (instead of copying them from file explorer), you may consider adding CreateAssetMenu attribute to LevelData : ScriptableObject class
    I added this and yeah, easy to make my files now from scratch.

    We definitely need to get this tool more exposure. I'll do what I can to help.:)

    Best,
    Ron (MindTip Game Dev)
     
  22. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello Ron,

    Sorry I did not respond earlier as I was hard at work preparing a new release with lots of cool new Editor features and especially code quality and architecture dramatic improvements. Also, for some reason, I did not get notified by mail of the new forum posts.

    First, I want to thank you, for considering to contribute to DBB popularity and for your appreciations.

    Sorry to hear that you still find it pretty difficult to grasp the intended workflow. I take into consideration to remake the video tutorials and also to improve on the Manual, when time will allow it. Keep in mind that you also have a Quick Start Guide PDF in the documentation folder to get you faster on track. So give all a try: Quick Demo YouTube video series + YouTube commentaries where you can hear me talk (ugh!) and guide you for almost an hour per video + Manual PDF + Quick Start Guide PDF.

    Regarding the LevelData scriptable objects, you do not need to copy and paste old ones. Just create a fresh new one from the Level Loader plugin inspector by clicking the bottom yellow button named Create New Scene Configuration.

    Now regarding the 1.9 version release: the code is ready and tested and as we speak I'm updating the manual. The new content should reach the store in a few short weeks. Stay tuned, it will be worth the wait!
     
    Last edited: Jan 18, 2020
  23. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    The new 1.9 version of DBB is live, with the following generous changelog:
    • Implemented a preset system which gives the possibility to save/load the current DBB inspector configuration.
    • Implemented a color themes system which gives the possibility to customize the look of the DBB custom inspectors from existing presets or create custom ones.
    • Greatly improved code quality and maintainability by splitting the core DBB script into 3 separate classes.
    • Implemented a plugin like system which automatically detects and registers server connection handler classes (FTP, HTTP etc.). This system strips away lots of conditional code and enums required to keep track of multiple server handlers. It also reduces to an absolute minimum the effort needed to implement new connection handlers.
    • Refactored the existing server connection handlers to include all their related data and functionality in one single class (per handler), including Editor UI related functionality.
    • Implemented a generic, expression based mechanism, to obtain serialized properties inside custom inspector scripts. This mechanism eliminates the need to have lots and lots of serialized properties fields (one for each configurable parameter) inside complex inspector scripts such as the main DBB UI. The end result is a more readable, cleaner and less Editor UI code.
    • Reworked the digital signature mechanism to save (and subsequent load) the cryptographic keys to a password protected file.
    • Added a button in each Dream Plugin inspector to navigate back to the main DBB inspector.
    • Various fixes, code quality and performance improvements

    Summarized:
    • I've rewritten the monolithic core script and separated it into multiple smaller classes, for easier code maintenance, greatly improved quality and compliance with S.O.L.I.D. programming principles. I've also improved and automated a lot of things along the way to make your life easier if you plan on extending the existing logic.
    • The code responsible for drawing DBB custom inspectors (Editor scripts) also received a lot of attention. I've implemented an ingenious, expressions based, system to get rid of all the tens of SerializedProperty objects i had stored in my scripts and obtain them dynamically wherever they are needed to be drawn. You have to see for yourself to understand the beauty of it!
    • You can now customize the DBB appearance with the new color themes system and also you can save to presets and later restore you favorite DBB inspector settings

    I've also began reworking the video tutorials, in hope it will be more informative. Give this new video a try an tell me if it is helpful enough:
     
  24. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    During the past week I've released a small update which fixes the Editor UI issues introduced with the new Unity 2019.3 version. Some of the existing DBB custom inspectors were affected by the new version and the issue had to be addressed urgently.

    Because I forgot in the previous post to mention future development plans, I will do it here:
    • The core asset bundling mechanism will be improved to perform incremental builds. This means that the system will auto detect which assets have changed and rebuild only their corresponding bundles. At the moment you have the possibility to automatically rebuild either ALL bundles or, to save you build times, you can rebuild individual bundles whose content you think has changed during development.
    • The current DBB level configuration system offers you a cool, Editor based and simple method for creating new levels, bypassing the need to have multiple scenes in your projects. However, because many of you still rely on scenes for organizing your game levels, I will extend this module to support drag and drop of your existing scenes inside the DBB level configuration system. With this new addition, you will benefit from the existing DBB features such as: automatic level loading progress monitoring, with custom splash screen and progress bar sprites and minimal coding to invoke another level. Basically, DBB will load your existing scenes with a nice progress bar using a one liner piece of code.
    • As usual, I will be monitoring your feedback on potential bugs or new features requests and take them into account. If critical problems are reported, i will probably release patches earlier than planned.
    The expected time frame for this release will be probably the first half of 2020.
    Thank you and would greatly appreciate some feedback!
     
  25. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    Hello, am currently looking at your asset and may take the plunge. Essentially what I am trying to do is run a in "game" update to the Vuforia AR system. Which, is a database file and images. From what I have read, and understand I THINK your system will allow this.. have you had any experience of this?
     
  26. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello!

    Thank you for your interest in DBB!

    Indeed, DBB offers among many other things, an in-game patching system based on Unity Asset Bundles. Basically the Editor tools offered by DBB pack your game assets (NOT including scripts!) into archives and uploads them to a configured server. Each time the players start the game on their devices, the new archives are downloaded and their local content is patched/updated.

    Now regarding your particular scenario, using Vuforia AR: personally I do not have any experience developing AR/VR apps or using that particular SDK. You should probably read and find if the Unity Asset Bundles have any particular restrictions or incompatibilities with Vuforia (and if they are even useful in your context).
    IF Vuforia plays nicely with asset bundles and your project targets one of the supported platforms (Android,iOS,Windows,Linux,MacOS), DBB should theoretically work just fine with it (or any other library).

    If you have any other further questions, do not hesitate to ask them. I will try and answer them as soon as possible.

    Thank you.
     
  27. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    Reading up, it all seems a bit of a unknown.. I THINK as long as I don't make any core changes it should just work... Vuforia has a DB, local assets... the DB name etc doesn't change, just the content.
    Ive taken the plunge and picked up the asset.. so.. fingers crossed :D
     
  28. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello,

    Thank you for your purchase. I hope it will serve your needs or at least gain some knowledge from it!

    Don't forget to check the included Manual, Quick-start guide and the YouTube tutorial videos for how to's.
    If you have any issues while using it or further questions I will happily answer them, as time allows it.

    If it doesn't suit your particular needs or Is not what you expected, you can request a refund (in maximum 2 weeks, I think). I won't be (particularly) upset :)

    Thank you again!
     
    Last edited: Mar 3, 2020
  29. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    I guess my biggest question is how I start your asset from a blank canvas. The import pulls in as a whole project (overwriting my settings which I don't want to do), if I add the DBB Config API script to a Empty Game object I get various issues with the Level Loader already looking for the Demo Level and as such I cant perform a initial build. Is there a way not to use your level loader for the time being?
     
  30. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    You could download the asset In an empty project and copy the files from there to your project.
    The settings which are included in the package are mainly for the demo part included with DBB (the space shooter game).

    Regarding the Level Loader: DBB was designed to be heavily integrated with the Level Loader plugin (which is a very cool feature, you should definitely give it a chance). I aim to make the core less dependent on this plugin, in a future release.
    You could, for now, comment the following line: in DbbRuntimeAPI.cs -> the method PluginsLoadedHandler() -> this.GetPlugin<LevelDataLoader>()?.LoadMainMenu(); . This will prevent invoking the Level Loader plugin to start the main menu.
     
  31. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Ziggy73701's post got me thinking a bit about how people try to integrate DBB into their projects.

    In the past, I've received from other customers all kind of issues, mainly caused by the fact that they tried to adapt DBB to their intended workflow instead of adapting their project to DBB's intended workflow. I know it sounds a bit odd to force someone rethink their approach but It should be more apparent once you understand what DBB is all about.

    DBB, as a whole, is a dual entity:
    • The Editor part is a collection of tools and custom inspectors that you use in the Unity3D program during development. Its primary goal is to help you PRODUCE asset bundles from the game assets included in the project.
    • The Runtime part is the component which will be built into your game. Its primary goal is to help you CONSUME asset bundles inside your games. It does a bit of resource memory management too.
    I will focus my further explanation on the runtime part.​

    DBB acts as a middleman between your game logic and your game assets, stored in bundles. But it also acts as an in-game patcher (with its own progress UI!) which automatically downloads new content and applies it locally. After new content is downloaded, it initiates the loading process of your game (the LevelLoader plugin enters the scene here).

    In order to perform this tasks, you must understand that DBB should be the first thing your game initializes and it will take care of the rest.
    So, DBB has its own dedicated scene (MainScene) with a special game object inside (DreamLoader) and the DbbConfigAPI.cs script attached to it. The DreamLoader object is almost as important as the script because it contains a lot of UI elements which are used to display the loading/patching progress, splash screens and some smaller scripts.

    The system is designed in such a way that all your game content will be loaded and unloaded inside the MainScene. You do not load or add DBB in your own scenes, DBB will load your game in it's scene!
    Furthermore you can NOT attach DbbConfigAPI.cs to an object different than DreamLoader and expect it to work, for the reasons I've mentioned earlier.

    Now, I'll try and give you some quick tips on how to rethink your projects to use DBB properly and make the most of what asset bundling is all about:

    1. Split your existing game project into multiple, self contained modules. Each module will be a separate project folder with assets for the same game entity. To give you an example of possible modules in a game: Player, Enemies, Environment, Sounds, Music, UI etc. etc. If you split the game in as many modules as possible, you will be able to build as many asset bundles as possible (think that each module will be packed into its own separate bundle) and maximize the patching process efficiency. For a practical example, take a good look of how I've organized the contents of the Demo folder.
    2. If its easier for you, you can just split your game into multiple fully configured game scenes (levels) and add each of those into separate bundles.
    3. After you have managed to organize your project and build some asset bundles from it, use the Level Loader plugin and its configuration objects (for an example on how one should look, search the project and study the example files DemoBundledScene, DemoLevelData or DemoMenuData) to load your own game objects and logic (or entire scenes) into the MainScene. Do not add anything manually in MainScene, as it will get destroyed at runtime. Make the most of DBB and let it do the loading part. Again, take a good look of how the included Demo handles the loading for the menu, the playable space shooter scene or the example which loads an entire scene file! Also look how the Instantiate Asset button, in the playable shooter scene, handles an individual asset loading from code.
    4. DBB knows to load content only from the asset bundles it has built. If you want something loaded in your game, it MUST be packed inside a bundle first. See step 1.
    5. I hate to say it but... you will need to do a bit of user manual reading and/or YouTube watching. I know, I know, nobody loves reading documentation (me included). But at least watch the videos to understand the bigger picture, study the included Demo as it covers all the major concepts built into DBB and read the manual to fill in the blanks. The whole system in itself is very easy to use but I can not cover all the steps and options at your disposal in one single post.
    That will be all for now. If you still have questions, as usual I will try and answer them as soon as possible.
     
    Last edited: Oct 1, 2022
  32. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    I want to take the time to properly ingest what you have written above, but also wanted to acknowledge it. I am relatively new to Unity and there is definitely some back fill required! Your plugin definitely fills gaps I have I just need to put some time in to it I have no issue with YouTube watching (I have logged countless hours just getting to this point) I also won’t be asking for a refund, I can see a HUGE amount of work has gone in to this and I am happy to work with it.
     
  33. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hi,

    Thank you for your appreciation and I hope DBB will help ease your journey in learning Unity.

    In this, rather large project/library, I've covered many Unity concepts such as: asset bundling, custom Unity inspectors,
    scriptable objects used as configuration files (for levels) and even a fully playable Demo game. Hopefully these should offer you some level assistance to better understand what a Unity3D based game is all about.

    I think you have made a very inspired decision to think of an in-game patching system right from the begging of your interaction with Unity, because this will familiarize you with the very important concept of bundles, concept which for some reason is widely disregarded even by veterans. Its a good thing to learn good practices and powerful features at your disposal right from the begging.
    Even myself, I've struggled 2-3 years with huge game build sizes, lack of patching mechanisms and poor project management until I've found the magic solution in asset bundling.

    After you give Unity Asset Bundles a good read, not only you will understand better why they are so cool to have in your games but also will understand why DBB makes your life so much easier than working with what directly Unity's API offers right out of the box. Basically, DBB is an abstraction layer over the somewhat complicated Unity API calls required to build and load content from bundle files.

    Additionally you can also watch this video of mine in which I try to argue in favor of using asset bundles in any project. The video is not of such great quality due to poor narration..but hey...If vlogging were my thing i wouldn't be destroying my eyes and brain cells coding.

    Thank you again and If I can be of further help, I'll try and, at least, point you in the right direction.
     
    Last edited: Mar 5, 2020
  34. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    Just a very quick update, I have the level loader working. I think once the idea of everything (including gui etc) needs to be w prefab it all starts to make sense. As a newbie this is probably the one part that isn’t clear. I saw a huge improvement in the load times.
    On to the updater next!!!

    I see one of 2 warnings from you code in the console, do you have a area set up for those to be reported?
     
  35. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hey, I am glad to see you are getting the hang of it!
    Indeed, you have to think your games in terms of prefabs, added and loaded from bundles.

    Regarding your question: I have provided my personal email in the documentation and in the header of each class file, but I prefer you report any issues you encounter in this particular forum thread. It helps me by keeping the thread higher in the list for all people to see and consider using DBB. Besides, I want to be as transparent as possible with this project and I think people should see both the good and the issues which may come with it.

    Thank you, and have fun playing with Unity.
     
    Last edited: Mar 8, 2020
  36. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    Me again

    Are there any considerations to be made with regards to cameras between levels? When I run my app in Unity (using levels) I get a “more than 1 audio listener” message suggestion the one in your main scene isn’t being destroyed. My app when run on a android device crashes when loading the Camera prefab for my level.
    Just wondering if there is something I should be doing?
     
  37. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello,

    DBB has it's own camera needed by it's custom UI.
    In theory you do not need to do anything special as the system automatically disables the UI camera when any other camera is detected in scene. The camera switching process takes a few frames to happen so that is why you see, just for a short time, 2-3 info messages that there are multiple listeners in scene. You can see this happening even in the included Demo game. At the moment I do not have a solution for this inconvenience.

    However, the crash you mentioned is not normal. For now, you can investigate the camera switching logic which can be located in the DreamBitBundlesUi.cs script in the FixedUpdate method. Additionally you could debug the code which loads the assets for your level and see if anything happens when it loads and instantiates your custom camera. The said logic can be found in LevelDataLoader.cs, the LoadLevelData method.

    Please let me know what you find.
     
  38. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    Hello...
    As of last night... I have started seeing this when I try to add assets to the lever loader. This is in a existing project and if I start from a brand new project.
    KeyNotFoundException: The given key was not present in the dictionary.
    System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) (at <437ba245d8404784b9fbab9b439ac908>:0)
    DsC.DreamBitBundles.Plugins.DreamLevelLoader.Editor.DreamAssetsPicker.OnGUI () (at Assets/DreamBitBundles/Editor/DreamAssetsPicker.cs:282)
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <437ba245d8404784b9fbab9b439ac908>:0)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at <9a184ab867bb42c296d20ace04f48df3>:0)
    UnityEditor.HostView.Invoke (System.String methodName) (at <9a184ab867bb42c296d20ace04f48df3>:0)
    UnityEditor.HostView.OldOnGUI () (at <9a184ab867bb42c296d20ace04f48df3>:0)
    UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Boolean canAffectFocus) (at <57fa7f4ad1c34ed185465e0a9f71c244>:0)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)
     
  39. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hi,

    I've investigated the issue and here is what I've found.
    First of all I'm using the latest Unity version: 2019.3.5f1.

    I could not reproduce the issue on an existing or project or a new one in which I've imported just DBB and AsyncAwait library.

    The DreamAssetsPicker script uses internally 2 dictionaries (DiskToHumanReadable and HumanReadableToDisk) to speed up needed data access and the Editor rendering process. The 2 dictionaries are initialized right before displaying the Asset Picker window, in the Initialise method. If, for some reason their content is not initialized before the window is displayed, I think the issue mentioned by you could manifest. However, I could not find such a case...
    Please try the following and tell me if the problem is solved:
    1. Upgrade to latest Unity version, if possible.
    2. Rebuild both the Plugin asset bundles and the Game ones.
    3. Restart Unity and try to open again the Assets Picker window.
    4. In the DreamAssetsPicker.cs add the following safety check snippet, at line 282:
      Code (CSharp):
      1.   if (!DiskToHumanReadable.ContainsKey(group.Key))
      2.                     {
      3.                         DsCLogger.LogMessage($"Key:<{group.Key}> was not found in rendering dictionary. Skipped rendering");
      4.                         continue;
      5.                     }
    5. Additionally you could try and force a dictionary cleanup. In the same script add the following snippet at line 117 just before the foreach loop:
      Code (CSharp):
      1. DiskToHumanReadable.Clear();
      2. HumanReadableToDisk.Clear();
    If the problem persists after performing the suggestions above, I'll try this weekend, after work, and look further into the issue.
    Thank you and I apologize for the inconvenience.
     
    Last edited: Mar 13, 2020
  40. Ziggy73701

    Ziggy73701

    Joined:
    Jul 23, 2018
    Posts:
    11
    Bouncing up to 2019.3.5f1. Rebuild plugin and game assets resolved the issue. Thanks for coming back so quick.
     
  41. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    I'm glad to hear it solved your problem!

    Rebuilding the bundles should be done often, especially after you make changes to your game assets.

    LE: I'll add further safety checks and logging in the script to avoid future issues, regardless if the bundles are in sync with the content or not.
     
    Last edited: Mar 14, 2020
  42. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    I've just released a small build (1.9.2) which fixes some reported and some older known issues.
    Thank you Ziggy73701 for reporting them. The change-log is the following:
    • Fixed an issue which prevented the DBB UI camera to get disabled immediately after another one was loaded in scene. This issue often caused a "2 audio listeners in scene" warning.
    • Added extra safety checks and fixes in the assets picker window to prevent it from crashing in certain cases.
    • Fixed an issue which prevented the level loader plugin from loading assets of certain types from bundles
    Additionally, I've refactored some of the scripts and removed the "var" keyword and used explicit type declaration. When writing code it seems very convenient to use and abuse it, but later when you revisit the code it makes your life more difficult. In upcoming releases I aim to remove it from all remaining scripts.

    For the next planned release, I am currently in an advanced state of developing a mechanism that auto detects which assets have changed since the last build and rebuild only their corresponding bundles (incremental build). This could save considerable build time in bigger projects.
    Given the complexity of life nowadays, I can't give you an estimate on when it will be ready, but hopefully in the next 1-2 months.

    If critical issues are reported in the meantime, a patch for those will be prioritized.

    Thank you and take care everybody!
     
  43. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    I have just released the 1.9.3 build which brings cool new features, improvements and some code and comments fixes.

    First of all I have to mention that, unfortunately, I did not have the time to finish and include in this build the
    incremental asset bundle build feature, as promised in the previous post. Due to current ongoing crisis, I had to reset my priorities on more pressing issues. Anyway, I hope you enjoy and find useful what I managed to come up with in this period.

    The generous change log is the following (long version):
    • Extended the LevelLoader plugin functionality to support loading Scene files from Asset Bundles.
    • Refactored all DBB scripts to use explicit type declaration instead of the "var" keyword. This should improve long term code readability and maintainability. Third party libraries code was not affected by this change.
    • Reworked the existing memory caching mechanism into a generic one, to be used by both the loaded Asset Bundles and Game Objects. Additionally, this new mechanism supports (optional) memory consumption monitoring, which means that in case of application exceeding a certain consumption threshold it will start evicting a configurable percent of cached items. Also, it's parameters can now be configured from an Editor inspector.
    • Implemented an easy to use object pooling mechanism, completely integrated with the existing DBB logic for loading assets from bundles. Just 1 line of code needed to create a pool of certain objects, 1 line to retrieve an object from pool and 1 to recycle it back. Very useful to speed up performance when dealing with frequently instantiated assets such as projectiles, particle effects etc.
    • Fixed a potential critical bug affecting the Asset Bundle loading mechanism which manifested when performing multiple concurrent requests to load assets from same bundle.
    • Rebuilt and added in project an additional, backwards compatible MainScene. This one should work on older Engine versions such as Unity 2018.4.xx.
    • Various code and comments fixes.
    • Added a footnote to Octodiff LICENSE in which I mention the original repository and what changes I've made to some source files. Also added a small readme file inside the UnitySpaceShooter folder in which I indicate the original source of the assets used for the DBB demo level.
    Shorter version:
    • I have modified the Level Loader plugin so that now it can load entire Unity scene files from asset bundles. Now you can set your level configurations to load either a list of bundled assets (as it was until now), one or multiple bundled scenes or even a combination of assets and scenes. Also, the demonstrative minigame included in DBB received a new level, to illustrate how a Unity scene with a terrain and baked Navmesh can be loaded from bundle.
    • I have reworked the memory caching mechanism to store both asset bundles and the assets loaded from them. Also, I have added memory consumption monitoring logic, to start evicting items from cache in case the application exceeds a memory threshold. Furthermore, the caching mechanism parameters can now be configured from the custom inspector of the Bundles Accessors plugin (check the manual for details).
    • I have implemented an object pooling mechanism for assets that are frequently loaded from bundles and instantiated in scene. For example: the space ships projectiles used in the Demo Level are now recycled from a prepared pool, instead of being instantiated each time the weapons are fired.
    The next planned release will be out when the incremental asset bundle build feature is finished. Due to current conditions, I can't give any time estimate for this one.
    If critical issues are reported in the meantime, I will try and address them in a separate build.

    Stay safe and best wishes!
     
  44. lukezinsan

    lukezinsan

    Joined:
    Jan 16, 2014
    Posts:
    19
    great work. this is my fav asset on the store.. love it

    stay safe and healthy
     
  45. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    I have managed to finish the promised asset bundle incremental build and include it in the 1.9.5 release, among other important fixes and changes. This is (probably) the last DBB release bringing new features.
    It will be a longer post as probably is the last status update in a while.

    If you already have games/apps which are published with older versions of DBB integrated, I highly recommend you to update to latest DBB version and redeploy your game executable ASAP so that all these important fixes and improvements are included (especially to remove the disk paths which were included in the game executable).

    The changelog is the following:
    • Implemented an incremental build system for the game asset bundles. This should significantly reduce build times by (re)building only asset bundles whose content has changed since last build session.
    • Modified the DBB main inspector to expose sprite assignment controls for the splash screen and progress bars displayed during the patching and initial loading processes.
    • Fixed a critical issue which affected the Digital Signature mechanism: in certain conditions during asset bundles build process, the inputted password for the private key file would be set to null thus breaking the process of generating signatures.
    • Refactored and moved the DbbEditorAPI class in the Editor assembly.
    • Refactored the main DBB inspector rendering script to store some configuration data (configurable project paths such as: accessor class folder, built bundles folder etc.) in EditorPrefs instead of the DreamLoader prefab itself. This prevents the information about the project folder structure being included in the game build and reaching the public.
    • Refactored the logic which generates asset bundle access classes so that the property containing full project path of each bundled asset is no longer included in standalone builds (now is conditionally compiled just for the Editor).
    • Renamed various scripts and methods names. Also redistributed and reorganized various classes.
    • Various code, comments and logging fixes and improvements.

    Summarized:
    • The asset bundling logic received an incremental build feature which greatly reduces build times by rebuilding only bundles whose content has changed since last build session. This new feature is very light on resources: the bundle content hash value is computed with minimal overhead by using file names, sizes, modified date etc. as input data. So no expensive computation is done on the actual asset files themselves. However, at the moment this new feature is used only by the pipeline responsible for building game asset bundles. The Dream Plugin bundles do not support yet this feature (rebuilding those bundles each time should not be a problem as they are meant to be small and light).
    • I have modified the main DBB inspector to expose controls needed to easily add your own custom sprites for the patcher and initial loading screen.
    • I have refactored the way various project paths, which you configure from the main DBB inspector, are stored. Now those values are stored locally in the Editor and not serialized inside the MainScene (which is then included in standalone builds). This information is irrelevant at runtime and it should not be included in builds. I have also fixed a similar issue affecting the asset bundle access classes.
    One year of DBB

    It has been a bit over a year since I've released the first version of DBB and looking back at the time of release I can see happily that the project evolved tremendously. At first it was no more than an asset bundling framework with an in game patcher and a tool to upload bundles to a FTP server. In the course of this past year it received multiple and easily extensible file server integrations, incremental build, digital signed bundles, binary diff patching, object pooling and lots of other features that are sure to come in handy to lots of you. However, IMHO the greatest improvements were made on the source code side of things. As I've evolved and improved as a programmer so did DBB: the code became much more well written, documented and logged; better adherence to S.O.L.I.D. programming principles and vastly improved modularity.
    Last but not least, many small and some critical issues have been ironed out, some of them with the help of customers (whom i thank!) who made bug reports.
    It has been a fun journey developing it with immense personal satisfaction when people found it helpful, with some of them being really joyful about.

    So what should you expect in the future?

    As I have said earlier, the backlog has emptied so no more new features will be added to DBB. Furthermore, new features require lots of time and resources to develop, resources which I can't spare anymore due to various reasons.
    However, in the long run (months, years) you can expect the following:

    • Reported bugs and issues will be discussed and patched as usual.
    • Massive refactoring to further improve quality and functionality of all major features, especially the asset bundling pipelines and runtime patcher. After this refactoring the newly implemented incremental build should also be supported for Dream Plugin bundles.
    • Fixes required to support upcoming Unity versions while preserving backwards compatibility.
    Those being said, I really hope you enjoy and find DBB useful. As usual, any feedback is greatly appreciated. Take care and we will catch up later!
     
    Last edited: Jun 24, 2020
  46. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    As I've promised in earlier posts, I've began refactoring and improving DBB, given the fact that I've had a bit of spare time these last few weeks. I even added a small new feature: a download speed indicator in the patching screen.
    The newly released 1.9.5.2 version has the following change-log:
    • Modified the BundledAsset class to expose a new method to load a scene from asset bundle from anywhere in the code. This means that bundled scenes can be loaded from code at any time (as simple as instantiating bundled prefabs) and you are no longer constrained to use the LevelLoader plugin to have your custom scenes loaded.
    • Refactored all logic related to accessing asset bundles from local file system and moved it from DreamBundleAccessor plugin to a dedicated class. This allows to reuse the same logic from both the plugin and DBB Core. It also greatly improves code quality and compliance with SOLID principles.
    • Implemented a download speed indicator in the patching screen.
    • Modified the "Build Game Bundles Incrementally" flag so that when is enabled/disabled the "ForceRebuildAssetBundle" option is removed/added to the asset bundling pipeline. This ensures that the built-in asset bundle incremental build system is also used. In a future release, the incremental build system custom implemented in DBB will probably be dropped.
    • Additional code refactoring, improvements, methods and classes renaming etc

    That's it for now. Future releases will bring further refactoring, improvements and/or fixes. I can't give an exact date for new releases, probably in a few months from now or sooner if critical issues are reported.

    Stay safe and best wishes!
     
  47. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    I have managed to complete the first phase (1/3) of the ambitious refactoring plan which I have announced in previous posts. With the release of version 1.9.6, DBB received an entirely rewritten in-game patching pipeline, which should be more stable, easy to read, debug and modify if needed. The change log is the following:
    • Refactored the entire runtime in-game patching pipeline. Be aware that it may contain breaking changes for your implementation.
      • Broken down the monolithic CheckForUpdatesAsync (from the DbbRuntimeAPI class) method into 13 separate self contained modules (methods) which are properly logged, testable, debug-able and readable. The initial monolithic method now has only minimal code and acts as a backbone which connects logic from all other modules.
      • Implemented a new post patching cleanup mechanism. Regardless if the patching process goes well or not, no temporary or garbage files should be left behind.
      • Full re-implementation of the incremental delta patching sub-pipeline. The new logic has less but more efficient code and fully supports both in-memory and file based rolling patch process. It also uses the same temporary file based logic as the main pipeline, meaning that in case of digital signature, checksum or connection failures the existing asset bundle will not be impacted, just the temporary file (which will be eventually cleaned up). Only if all goes well, the temporary file will replace the old bundle.
    • Various smaller fixes and improvements.
    Being a fairly massive rewriting, I highly recommend you running your own set of tests, after adopting this version, to ensure your game integration is working as it should.

    Future releases will bring massive refactoring to the other 2 important pipelines in DBB, namely the asset bundling and bundles server deployment ones. That's it for now.

    Stay safe and best wishes!
     
    Last edited: Nov 22, 2020
  48. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39
    Hello friends,

    I just wanted to let you know that DBB is currently part of the New Year Sale with a hefty discount of 50%.

    Meanwhile, I am currently working, as time allows it, on the second phase (the server deployment pipeline for asset bundles) of the refactoring plan which I have announced in previous posts. I am hoping I will manage to finish, test and release it in the next 3 weeks or so.

    Stay safe and best wishes!
     
  49. digitalzombie

    digitalzombie

    Joined:
    Dec 10, 2007
    Posts:
    86
    Hello,

    Thank, you for including this in the sale. Much appreciated. :)

    Upon importing into a project on Unity 2019.4.14f1, I get 32 errors related to Awaiter. Such as these:

    Assets\DreamBitBundles\Core\Caching\MemoryObjectCacheWithEviction.cs(242,23): error CS0103: The name 'Awaiters' does not exist in the current context
    Assets\DreamBitBundles\Core\DreamPlugins\LevelsLoadables\Scripts\LevelDataLoader.cs(102,17): error CS1061: 'AsyncOperation' does not contain a definition for 'GetAwaiter' and no accessible extension method 'GetAwaiter' accepting a first argument of type 'AsyncOperation' could be found (are you missing a using directive or an assembly reference?)

    Do you know how to fix?

    Thanks.
     
  50. dream19

    dream19

    Joined:
    Feb 13, 2014
    Posts:
    39