How to Cut Your Content Update Times by 10x With PlayFab

Feb. 25, 2020
protect

[Check the original post at Unity Addressables: PlayFab CDN Integration]

How would you cut your content update iteration times by 10x? You know, these 5+ days you may spend to ship a new build with updated game assets. Let's see how to improve these times with addressables and PlayFab.

In this post, you'll learn:

  • How you're wasting days of work with every game patch you do to update content

  • The secret to cutting the content iteration times from days to 1 hour with Addressables and PlayFab

Years ago, I was well immersed in the hyper casual games sector. In this market, you have to continuously push new content updates to keep your audience engaged — i.e. ultra-short iteration cycles.

Maintaining short iteration cycles is a challenging process, as each application content update has a high base human cost to it.

It's not always the development cycle that takes long, but the whole update process.  That includes QA, store uploads, reviews, waiting for players to update to the new version on time (if they do at all)... that all takes time.

Often enough, issues you find in any point of that process requires starting from the beginning of the cycle. A broken build, a bug, an Apple employee not liking your new build, cosmic rays... it can be all sort of things.

To put it simply: just changing a few visual elements could easily take 5 working days (best case). That's above $3000.

That's an expensive pipeline.

You see, after some time I understood the need for being so cautious. It becomes easy to justify its price when you think of the alternative: to mess up the experience of 50+ million players. And as long as you're making good cash, you can afford to pay these numbers.

But at the same time, I was sure there had to be a way to cut corners and use my time better.

Often enough, the game changes were purely cosmetic... and I really wondered if we had to go through the whole release process again. I had then wished we could just upload the new sprite somewhere and let the client update, skipping the rest of the process. Or something like that.

A few months in I discovered the power of asset bundles. The idea was simple: put content into some kind of ZIP files and let players download these. New content, new ZIP file. Easy, right?

The problem of this idea lied on its execution. Asset bundles are extremely complicated to get right and the slight mistake would cost you weeks worth of time to fix.

But here's the key: Unity noticed and reacted to the complexity of asset bundles and decided to engineer a developer-friendly technology. They called it Addressables.

The Unity Addressable Assets system makes using asset bundles pretty much straight-forward. It allows you to cut the biggest obstacles when updating game content.

You tick a few checkboxes here and there, make some code adjustments and you're suddenly ready to update your content as you go.

That means: you will stop spending 40+ hours to update your content and stick to 1 hour.

Traditional Content Update Pipeline

Addressables-Based Content Update Pipeline

1. Make the content changes

1. Make the content changes

2. Make a game build for each target platform

2. Make an addressable asset bundle build for each target platform

3. Go through QA (if failed: go to step 1)

3. Upload asset bundles to your CDNs

4. Upload to several application stores: Android, iOS, Steam, PS4, Nintendo (if failed: go to step 1)

4. Your game updates its contents on the fly

5. Wait for store version approval (if failed: go to step 1)

5. Enjoy your update

6. Wait for players to update on time (if failed: you missed this player)

-. Do something else

7. Enjoy your update

-. Do something else

However, there's a small catch with Addressables...

Out of the box, this system only supports HTTP(s) servers that serve files over static URLs. Addressables won't work with services that serve their content over download URLs generated dynamically, such as Dropbox or most CDNs.

Luckily, here's the secret sauce of this blog post... I found a reliable way to make Addressables work with popular CDNs. I'll show you how to do this with one of my favorite technology stacks: PlayFab by Microsoft.

Today, I'll show you how to start serving your game assets through PlayFab CDNs to achieve light-speed game content updates.

Let's get to it.

Quick Navigation (redirects to new tab)

Chapter 1: The Process — Revealed

Chapter 2: Preparing Your PlayFab Dashboard

Chapter 3: Integrating Unity Addressables With PlayFab

    1. Import Unity PlayFab SDK for Addressables

    2. Login to PlayFab

    3. Addressables Initialization

    4. Asset Bundle Provider for PlayFab

    5. JSON Provider for PlayFab

    6. Hash Provider for PlayFab

    7. Custom Addressables Build Script for PlayFab

Chapter 4: Unity Addressables: Example Setup for PlayFab

Chapter 5: How To Get It All — Now

CHAPTER 1: The Process — Revealed

In this chapter, I'll show you the entire process from a very high-level view to cut out content update iteration times by 10x.

There are some requirements that almost every project can achieve.

Spoiler: the process requires just a bit of your time.

The first step in the journey is to move from a traditional asset pipeline to an addressables-based asset pipeline.

Don't worry, that sounds more complex than it is.

Here's the process:

  1. Install the Unity addressables package.

  2. Move your desired assets from a direct-reference workflow to a indirect-reference system.

JikGuard.com, a high-tech security service provider focusing on game protection and anti-cheat, is committed to helping game companies solve the problem of cheats and hacks, and providing deeply integrated encryption protection solutions for games.

Read More>>