Unity Addressables: The Final Quiz Analysis

Oct. 8, 2019
protect

This post on Unity Addressables Quiz was originally published with its original formatting in The Gamedev Guru's Blog

Heya, Unity Addressables fan.

Last week, I posted a short but powerful article detailing three Unity Addressables benefits for your game. The article was very well received, thanks for your active participation.

Just at the end of that post, you were given the chance to test your knowledge in Unity Addressables through a short quiz.

Addressables-Quiz-Thumbnail

The goal I had in mind when creating the quiz was to help you become aware of the areas you might be less familiar with, so you can get to develop your skills where you need the most.

I'll confess that, initially, I didn't expect many people to go through the quiz. After all, quizzes can be daunting and, as usual, there's this extra babbling coming from me.

But to my surprise, the quiz results well outperformed my expectations. I'm really happy to see that so many people accepted the challenge. You all rock!

I got some interesting statistics out of the quiz. Here are some figures I wanted to share with you:

  • The greatest part of the people who started it, about 80%, actually were determined enough to finish it

  • The average score was about 12, which is pretty damn good for an API that was only introduced recently

  • Less than 5% of the quiz participants fell in the Troll Guru rank

  • About 50% are part of the Apprentice Guru group

  • Over 40% of the participants scored enough to be Enlightened Gurus

  • But only 5% made it to be considered The Final Boss Guru

So, congratulations if you were part of the quiz experience!

And independently from the score you got, I am sure it will not take you much effort to reach the production-level required score of 20+. I'll be helping you along the path.

In this post, I will explain the most interesting challenges posed in the quiz. Some answers might differ depending on your particular context, so make sure to comment at the end of the post if you had a complementary experience.

If you didn't complete the quiz before, do it now before reading further.

Do not cheat. I'll know.

What were your results? Are you a Troll Guru, an Apprentice Guru, an Enlightened Guru or The Final Boss Guru? Share your results in the comments section.

Trusting that you finished it, let's have a look at the questions and some of the answers. The format should be self-explanatory, but I admit I could have chosen less cheesy graphics for it— yes, that's me.

funny-review

Question 1: Intense Memory Pressure

An angry player leaves a 1-star review because your game uses too much memory. You...

crying-smiley-transparent

 Answer in public, telling the player to upgrade their device and then come back

This is a popular answer somehow. As much as we might feel like answering this, chances are, we have been too busy (or lazy) to implement a proper architecture. Blaming players for playing with a brick-phone won't get us more sales, so a better strategy is to fix our mess.

Smiley - Neutral

smiley_neutral

 Switch to a more advanced texture compression method, e.g. ETC2 to ASTC

This is helpful and you should indeed switch to more advanced compression methods, where possible. But this solution will only take you so far. You'll get moderate gains in memory usage and texture quality, but they'll not be enough to cover your memory pressure issues.
 

Smiley - Furious

smiley_angry

 Split your scenes into sub-scenes, so less content is loaded in memory

In general, sub-scenes used to be a good solution. I've used them in the past with great success. However, if you are having bad reviews already, chances are it is too late to introduce such a massive change in the architecture of your game. Better to look somewhere else.

smiley_happy

Implement an asset lazy-loading mechanism through AssetReferences

Over 75% of people agreed on this, that's great.

AssetReferences are likely to give you the biggest gain for the buck. The migration to this workflow is usually straight-forward and much easier than the other alternatives.

However, be aware that, in some cases, it might be hard to work around the asynchronous requirements of the Unity Addressables API.

 

laptop-coffee

Question 2: Endless Loading Times

You press the play button. By the time your in-game scene is loaded, your coffee is cold. You...

crying-smiley-transparent

 Blame the artists and ask them to put every texture into atlases. Also, you buy a faster PC
10% of the subscribers chose this one. I love you guys.

Smiley - Furious

smiley_angry

Reduce the texture size globally, so asset loading is much faster. You don't submit these meta file changes in your versioning system

I've done this a few times recently. It works.

However, the pay to price is high. Your versioning system might go nuts and your changelists will be full of garbage. This is indeed hard to manage, as if you ignore these temporal texture import settings modifications, the real changes will mostly go unnoticed and won't be submitted.

Smiley - Neutral

smiley_neutral

Create custom scenes that contain just the functionality you are working on

Creating sub-scenes for faster iterations might be a possibility for your game, but in my experience, they tend to be left unmaintained. With time, they break and one might spend more time fixing them than the gain you eventually had back then.

Consider implementing sub-scenes only if you don't see these problems in your project.

smiley_happy

 Remove direct references and add indirect references instead, so only the required assets are loaded

Indirect references for the winner.

Direct references will implicitly ask Unity to load all their content as soon as the script holding them is instantiated. Indirect references, however, gives you full control over the when/how/what. That means, you can delay loading until you need it, if at all, saving you from unnecessary loading times and wasted memory.

 

Unity-Addressables-Play-Script-Mode

Question 3: What Play Mode Script?

You are currently implementing materials for your new characters. You want to try Addressables, so in the Play Mode script section of Addressables, you select...

Smiley - Neutral

smiley_neutral

 Fast Mode: we want it always fast, after all

This is a valid option, but fast mode does no validation at all of important aspects of development, such as asset dependencies and cross-references.

If there are no substantial changes in the content you're working on, fast mode will be fine. Otherwise, we can do better.

Smiley - Furious

smiley_angry

 

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>>