Process

Addressables or Asset Bundles: A Straight Answer for Mobile Devs

Addressables is the right default for most new mobile projects, but not all of them. Here is what each system actually does, what migration really costs, and how to choose.

Vectra Play 6 min read
Code on a developer's monitor

Addressables is the right default for new mobile projects. It manages loading, dependencies, and remote content for you, which is most of what teams build by hand on top of Asset Bundles. Bundles still make sense when you already have working tooling or need control the higher-level system does not expose.

Why this matters

This decision looks like a build setting and behaves like an architecture choice. It determines how content is loaded, how updates are shipped, and how hard it is to reduce install size later.

Choosing late is expensive. Retrofitting either system into a project that loads everything directly touches nearly every scene and script.

Choosing early is cheap, which is why it is worth an hour now.

What each system actually is

Asset Bundles are the lower-level mechanism. You group assets into archives, build them, ship or host them, then load them by name and manage their lifetime yourself. Unity gives you the archive format and the loading calls. Everything else is yours to write.

Addressables is a system built on top of that mechanism. You mark an asset as addressable, give it a key, and load it by key. The system decides which bundle it belongs to, resolves dependencies, tracks references, and handles whether it comes from the device or a server.

The choice is not really between two loading systems. It is between using content management somebody else wrote and writing your own.

The case for Addressables

For most teams, this is the shorter conversation.

The practical consequence is that a small team gets content delivery without dedicating an engineer to owning it.

When Asset Bundles still make sense

There are real cases, and dismissing them is how teams end up fighting a system.

  1. You already have working bundle tooling. A pipeline that ships reliably is worth more than a cleaner abstraction.
  2. You need unusual control over exactly which assets land in which archive, for patch size reasons on a large title.
  3. You have an existing content pipeline outside Unity that produces bundles as part of a larger system.
  4. Your update mechanism is bespoke, for example driven by a backend that reasons about content at a level Addressables does not model.

None of these apply to a typical first mobile title. Most teams reaching for bundles are choosing familiarity, which is a reasonable but expensive preference.

Migration cost, honestly

Moving an existing project is real work, and it is usually underestimated by about half.

TaskWhat it involves
Marking assetsStraightforward, but touches a lot of files
Replacing direct referencesThe bulk of the work, and the risky part
Rewriting load pointsLoading becomes asynchronous, which changes call sites
Handling load failuresNew code paths that did not exist before
Testing memory behaviourReference counting bugs surface late and look random

The asynchronous point is the one that surprises people. Direct references resolve instantly; addressable loads do not. Every place that assumed an object was available immediately now needs a wait, and that ripples through initialisation code.

Budget a sprint for a small project and considerably more for a large one. Do it between milestones, not during a push.

Remote content and patching

This is where the system earns its cost, and it is worth understanding before you commit.

Remote content lets you ship a smaller initial download and fetch the rest on demand, which connects directly to the size work in Cut Your Unity Build Size in Half.

Three things to get right from the start.

Content updates without a store review are the headline benefit. Be careful with it. Both platforms have rules about changing an app's behaviour after review, and remote content that alters gameplay significantly is worth checking against them.

What we would do

Start new mobile projects on Addressables, configured simply. One or two groups, everything local, no remote content. That costs almost nothing and leaves the door open.

Move content remote only when you have a reason: install size crossing a threshold, or content volume that genuinely grows after launch. Adding remote delivery before you need it buys complexity and no benefit.

For an existing project loading everything directly, migrate when size or memory becomes a real problem, not before. And migrate in one deliberate pass rather than gradually, because a half-migrated project has the drawbacks of both systems.

The short version

Set up Addressables on your next project before you write the first load call. If you are weighing a migration on a live game, tell us about the project.

Related reading: Cut Your Unity Build Size in Half, Unity Mobile Performance, and Owning Your Backend.

#Unity#Mobile#Process#Development
Your turn

Got a game idea? We build it.

You bring the concept. We design, build, test and launch it, and you own 100% of the finished game.

Share Your Game Idea  →