Search Unity

AssetBundle migration: Addressables across projects

Discussion in 'Addressables' started by drew55, Dec 14, 2019.

  1. drew55

    drew55

    Joined:
    Dec 13, 2017
    Posts:
    22
    Hi y'all!

    We want to migrate from AssetBundles to Addressables and are trying to get the same behavior.

    We basically have a scene plugin system that historically has used AssetBundles to do "blind" loading of items based on one of our other processes placing items in a dir on the system. In other words, MainProject is what we ship, and ExportTemplateProject is used to export a scene, distribute it in the community, and other users can dynamically load it, etc. So the scenario is a little similar to the remote sever, except that this is just a local dir that bundles are being placed into.

    I've been researching and experimenting for days now wrapping my head around figuring out the Addressables equivalent. So far every example I've seen so far is where MainProject has some sort of reference or knowledge of the external scene. My feedback for the Addressables dev team is: way to go on making a badass and capable systems! But perhaps can y'all pretty please add to Addressables-Sample? Basically, enhance the "Scene Loading" example that's already there -- except that, say, the "balls" and "boxes" scene would be moved and would reside in a totally separate Unity sister project. It would this have all the settings and code that demonstrates loading an addressable from a file system pathname, etc. Hopefully this makes sense, and y'all get what a huge value add this would be to the pile of people like us who are in this situation!

    Or perhaps there a link or a sample project somewhere that contains two separate projects and where the exported addressable bundle is moved to an arbitrary local dir at runtime, and MainProject loads it? I appreciate that Unity offers downloading services from a http URL, but we want the use case where it's all local files, etc.

    Thanks!
     
    Last edited: Dec 14, 2019
    AskCarol likes this.
  2. drew55

    drew55

    Joined:
    Dec 13, 2017
    Posts:
    22
  3. drew55

    drew55

    Joined:
    Dec 13, 2017
    Posts:
    22
    Addressables dev team,

    Perhaps this issue can be rephrased as requesting a demo/example project of implementing a custom IResourceProvider??
     
    Last edited: Dec 17, 2019
    chanon81 and pahe4retro like this.
  4. chanon81

    chanon81

    Joined:
    Oct 6, 2015
    Posts:
    146
    I'd like to see an example of this too.
     
    drew55 likes this.
  5. AskCarol

    AskCarol

    Unity Technologies

    Joined:
    Nov 12, 2019
    Posts:
    125
    Hey there @drew55! The team has had many discussions about providing better content to help the onboarding process. This is valuable feedback and will inform what they will create for the community.
     
  6. drew55

    drew55

    Joined:
    Dec 13, 2017
    Posts:
    22
    Awesome!

    My gut says many devs here would benefit from such a demo project (or extension to the existing Addressables GitHub demo repo). Consider how strongly popular all the dynamic AssetBundle loading questions and tutorial content has been over the years -- namely in the context of an open level/content title where enthusiast users author mods etc.

    Ideally, it would:

    1) demo an example schema of implementing a IResourceProvider et al, where a list of local URLs are added at runtime and assets within them are dynamically loaded and queried and instanced (e.g. a game level that a user adds as a mod).

    2) focus on demoing support for dynamic loading (not remote server fetching or network scenarios). The given is that the Addressables bundle already resides locally. Otherwise, the demo would also presumably have to manage fetching the asset and then loading it dynamically. The focus and learning needed is for the local bundle URL case.

    3) come up with conventions for said AddressableBundles. Is that the proper term we should use? It would be constructive if Unity Technologies led on terminology and conventions for distributing and loading in these new era of AddressableBundles.

    4) contain two totally independent Unity projects: one containing a couple scenes and assets that are exported as AddressableBundles, and the other which will allow any of the URLs it's been fed at runtime to be loaded, instanced, and interacted with. The former is the project a userbase would receive as the template for mods, and the latter of course represents the title being shipped.

    Basically, this is Unity Technologies modelling "blind" dynamic asset loading conventions ("blind", as in, a title never sees some assets it will load later long after it ships). I see this as a demo project as the go-to for every dev here who needs to migrate from an AssetBundle-based mod system to an Addressables one.

    I believe that a little bit of Unity Technologies resources and attention to craft this demo project would pay huge dividends over the long run. We couldn't be more thrilled at how Unity is so badass it in SO many areas -- and only getting better! Way to go to everyone working so hard on getting Addressables polished!

    Thanks,
    Drew
    PLAN Systems CTO
    http://plan-systems.org
     
    Last edited: Jan 13, 2020
    chanon81 and AskCarol like this.
  7. drew55

    drew55

    Joined:
    Dec 13, 2017
    Posts:
    22
    Hi @AskCarol , how are things coming? I'm continually impressed at the level of challenge and difficulty I see in UT engineering and undertaking! Please pass on that I think folks leading there are leading a next generation of the industry that actually isn't about games -- it's about multi-platform 3D content delivery that sidesteps the nightmare that has become fragmented web tech. In the 90s and 2000s when the company I was leading was shipping music visualization software (still licensed by Apple and in iTunes btw), the pain was limited to shipping and testing on Mac OS and Win32 as most here are familiar with. With the "open standards" of the web, here were are with 5+ major browsers, each different on mobile, all in the pocket of large corporations more interested in advancing their domination over standards than actual interoperability and compatibility.

    I checked the Unity roadmap and Addressables and dynamic loading seem to be on the radar of UT?

    Related thread which is essentially inquiring the same as here (except on the topic of scripts within asset bundles that are dynamically loaded by an already-shipped product): https://forum.unity.com/threads/exporting-resolving-script-references-in-assetbundles.331110
     
    Last edited: Mar 24, 2020
unityunity