Addressables for Live
Content Management
Bill Ramsour – Unity Live Content Team
Agenda
2
— Addressables Overview
— Sprite Loading
— Sub Objects
— Texture Quality Variation
— Customizing Build
— Synchronous Addressables
— Customizing Runtime
— What’s Next
Addressables - Why
3
— Building and deploying large games
— Simplified asset building
— Separation of concerns: referencing vs. packing assets
— Managing assets at runtime
— Loading dependency resolution
— Runtime asset memory management
— Iterating during development
— Flexibility in Play Mode
— Local editor hosting
4
“The Addressables system dramatically
reduced the complexity of our asset
pipeline and allowed us to focus more
on adding the functionality that is
unique to our game”
Addressables - What
5
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Addressables - Asynchronous
6
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Addressables - Unite Berlin 2018: Setting Up
7
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Addressables - Unite LA 2018: Content Update
8
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Addressables - Unite 2019: Customization
9
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
10
“Unity's Addressables were an easy choice for the Where Cards Fall
team as it provided us with the straightforward tools needed to manage
our asset bundles. Since we didn't need to build these tools from
scratch, we were able to spend more time improving our game.”
Addressables Groups
11
— Build time containers
— Hold Assets with Addresses
— Settings utilize Profile Variables
Addressables Groups
12
— Build time containers
— Hold Assets with Addresses
— Settings utilize Profile Variables
Addressables Groups
13
— Build time containers
— Hold Assets with Addresses
— Settings utilize Profile Variables
Addressables Groups
14
— Build time containers
— Hold Assets with Addresses
— Settings utilize Profile Variables
Addressables Groups
15
— Build time containers
— Hold Assets with Addresses
— Settings utilize Profile Variables
Addressables Groups
16
— Build time containers
— Hold Assets with Addresses
— Settings utilize Profile Variables
Production
17
Local Content In Player
Local Bundle
Hosted on myinternet.com
Local BundleLocal
Bundles
Local Bundle
Local BundleRemote
Bundles
Player Data
DLLS
Resources
Scenes
Production
18
Local Content In Player
Local Bundle
Hosted on myinternet.com
Local BundleLocal
Bundles
Local Bundle
Local BundleRemote
Bundles
Player Data
DLLS
Resources
Scenes
Local
Local Content In Player
Local Bundle
- -
Local BundleLocal
Bundles
Player Data
DLLS
Resources
Scenes Local Bundle
Local BundleRemote
Bundles
Editor Hosted
20
Local Content In Player
Local Bundle
Hosted on my computer
Local BundleLocal
Bundles
Local Bundle
Local BundleRemote
Bundles
Player Data
DLLS
Resources
Scenes
All Hosted
21
Local Content In Player
Local Bundle
Hosted on my computer
Local BundleLocal
Bundles
Local Bundle
Local BundleRemote
Bundles
Player Data
DLLS
Resources
Scenes
22
“Using Addressables on Empire of Sin has proven to be a great
decision. It has given us much better control over asset loading and
unloading, and provided greatly-improved tools for asset bundle
management and dependency tracking.”
Sprite Demo
23
Building
Build Player Content
Enter Play Mode
Customizing Build
24
Editing
Device
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Building
Build Player Content
Enter Play Mode
Customizing Build
25
Editing
Device
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Quality Variation Demo
26
Synchronous Demo
27
Synchronous Logic
28
Call Sync API
Catalog
Ready?
No
Yes
Execute Sync
Call
Success?
😭
🙂Yes
No
😭
Synchronous Logic
29
Call Sync API
Catalog
Ready?
No
Yes
Execute Async
Call
Is Done?
😭
🙂Yes
No
😭
Customizing Runtime
30
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Customizing Runtime
31
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
Provider Designation
32
— Providers are set in group schema
— Basic groups have two providers
— AssetBundle provider
— Asset from Bundle provider
Sync Asset Bundle Provider
1
2
3
4
5
6
7
8
9
10
11
12
13
internal void Start( ProvideHandle provideHandle)
{
// Load bundle. Only supports local
var fileName = provideHandle.Location.InternalId;
m_AssetBundle = AssetBundle.LoadFromFile(fileName);
// Error check
if(m_AssetBundle == null)
Debug.LogError("the bundle load failed " + fileName);
// Tell the AsyncOperationHandle we are done
provideHandle.Complete(this, m_AssetBundle != null, null);
}
33
Data Encryption
34
Editing
Device
Building
Content
Asset
isAddressable
ProviderCatalog
Build
Process
Request Asset
Receive Asset
Addressables System
Artifacts
35
“Disruptor Beam has been abusing asset bundles since 2016 and
have been working closely with Unity ever since on improving them.
We are eager to adopt the addressable technology and take content
deployment to the next level in our games and our Disruptor Engine
technology.”
What’s Next
36
— Stability & bug fixes
– UI Refresh in the fall
– Exploring synchronous interfaces
— Addressables + DOTS in 2020
— Content Delivery Service
Thank you
37
— Out of Preview
– Available today in package manager back to 2018LTS
— Samples:
– github.com/Unity-Technologies/Addressables-Sample
— Forum:
– forum.unity.com/forums/addressables.156/
— Ask me questions @ Live Content booth
— Tomorrow from 9:00-11:00
— Basics webinar coming to youtube soon.
38

Addressables for live content management – Unite Copenhagen 2019