Optimizing Looney
Tunes WoM for
mobile devices
1
Baldi, Capeletti, Cicanci
Aquiris Game Studio
● Who we are?
● The problems
● Your best friend: Profiler!
● Memory optimization
● CPU optimization
● Best practices for mobile games
Agenda
2
3
AQUIRIS, 12 YEARS
Founded in 2007, the studio has a team of around
80 people, and its mission, since the very beginning, has been on delivering the
best artistic, technical and gameplay quality to the players, developing its own IPs,
or co-developing games with top notch global publishers.
+
Two business units
+
Co-development Proprietary IPs
AQUIRIS has two studios located in Porto Alegre, south of Brazil, inside
a tech park called TecnoPUC, alongside of an University with great
access to talents.
Horizon Chase Turbo is exactly the kind of arcade-inspired racing game the industry
has needed.
HARDCORE GAMER
“
ACCOLADES TRAILER WEBSITE
VIDEO REEL
4
2007
Foundation: the dream
takes off
2008
Pioneers: 1º first brazilian
studio to launch a
Unity game
2009
Crunch Time: +10 projects
in 2 years | Our first Online
Multiplayer
2010
Unity 3.0 Official
Demo | Cartoon Network
Partnership begins
2012
Release of “Dragons: Wild Skies”, the most
played game in CN’s portal of 2012
2013
Ballistic is “Unity Award - Technical
Achievement” Finalist
2011
First Ballistic Prototype,
named Critical Mass, in
partnership with Aeria Games
2014
Cheers! Series A Investment Round | Copa
Toon 2014 one of the best selling game in
Latam
2015
Horizon Chase: World Tour
Multi Awarded Game
+10 MM organic downloads
2016
Cartoon Network Superstar
Soccer: GOAL!, the sequel
of Copa Toon 2014
2017
Ballistic Overkill on Steam
+150k units sold
2018
Looney Tunes:
World of Mayhem
Publishing by Scopely
2018
Horizon Chase Turbo
Steam & PS4 - May
Switch & XBOX - Nov
The problems
5
Problem
Crash due to low memory.
6
Problem
FPS dropped to ZERO on screen
transitions and animations.
7
Problem
Player account with all characters
unlocked is impossible to play.
8
Your best friend:
Profiler!
9
Unity Profiler (Editor)
10
Unity Deep Profiler (Editor)
11
Unity Profiler (iPhone)
12
Xcode Debug
13
Instruments (Allocation tool)
14
Unity Memory Profiler
15
Memory optimization
16
● Not unloading assets
● Duplicated assets loaded
● Texture size and compression
● Quality Settings
Common problems
17
24MB of textures not unloaded
18
Duplicated textures
19
Uncompressed textures
20
Playing with Quality Settings
21
First Time User Experience
22
PvP Battles
23
● Focus on early game features (product KPIs)
● Find the best compression for the platform
○ Android:
■ RGB: ETC Crunched (50% Quality)
■ RGBA: ETC2 Compressed e ASTC 6x6
○ iOS:
■ RGB e RGBA: ASTC 6x6
● Budget for assets (memory, file size, draw calls)
● Cache pool (even for Lists, Dictionaries, and so on)
More optimizations
24
CPU optimization
25
● Frameworks and APIs
● Loading too many objects in one frame
● Not caching variables and data
● Large scenes with many objects
Common problems
26
● Do not use
○ Find()
○ FindWithTag()
○ FindGameObjectsWithTag()
Frameworks and APIs
● Avoid using
○ LINQ
○ Awake()
○ GetComponent()
○ SetActive()
27
Character collection load is distributed between 22 frames.
Loading too many objects in one frame
28
Not caching variables and data
29
Loading characters data from data provider
Not caching variables and data
30
Caching its data
Large scenes with many objects
31
● Keep draw calls at a lower rate
● Use threads for parallel operations (Coroutines run in the main thread)
● Keep the class constructor simple
● Review the third party plugins performance as well
32
More optimizations
Best practices for
mobile games
33
● Always use the profiler to validate you hypothesis
● Profiling on Unity Editor is different than profiling on mobile devices
● Collect metrics to analyse and compare with previous data
● Prioritize the test on low end devices
● Avoid early optimizations
Takeouts
34
We are hiring!
● Senior Game Programmer (Unity)
● Backend Programmer
● Producer
● Senior Game Designer (Free2Play)
https://www.aquiris.com.br/work-with-us
35
Thank you.
36

Optimizing Unity games for mobile devices

  • 1.
    Optimizing Looney Tunes WoMfor mobile devices 1 Baldi, Capeletti, Cicanci Aquiris Game Studio
  • 2.
    ● Who weare? ● The problems ● Your best friend: Profiler! ● Memory optimization ● CPU optimization ● Best practices for mobile games Agenda 2
  • 3.
    3 AQUIRIS, 12 YEARS Foundedin 2007, the studio has a team of around 80 people, and its mission, since the very beginning, has been on delivering the best artistic, technical and gameplay quality to the players, developing its own IPs, or co-developing games with top notch global publishers. + Two business units + Co-development Proprietary IPs AQUIRIS has two studios located in Porto Alegre, south of Brazil, inside a tech park called TecnoPUC, alongside of an University with great access to talents. Horizon Chase Turbo is exactly the kind of arcade-inspired racing game the industry has needed. HARDCORE GAMER “ ACCOLADES TRAILER WEBSITE VIDEO REEL
  • 4.
    4 2007 Foundation: the dream takesoff 2008 Pioneers: 1º first brazilian studio to launch a Unity game 2009 Crunch Time: +10 projects in 2 years | Our first Online Multiplayer 2010 Unity 3.0 Official Demo | Cartoon Network Partnership begins 2012 Release of “Dragons: Wild Skies”, the most played game in CN’s portal of 2012 2013 Ballistic is “Unity Award - Technical Achievement” Finalist 2011 First Ballistic Prototype, named Critical Mass, in partnership with Aeria Games 2014 Cheers! Series A Investment Round | Copa Toon 2014 one of the best selling game in Latam 2015 Horizon Chase: World Tour Multi Awarded Game +10 MM organic downloads 2016 Cartoon Network Superstar Soccer: GOAL!, the sequel of Copa Toon 2014 2017 Ballistic Overkill on Steam +150k units sold 2018 Looney Tunes: World of Mayhem Publishing by Scopely 2018 Horizon Chase Turbo Steam & PS4 - May Switch & XBOX - Nov
  • 5.
  • 6.
    Problem Crash due tolow memory. 6
  • 7.
    Problem FPS dropped toZERO on screen transitions and animations. 7
  • 8.
    Problem Player account withall characters unlocked is impossible to play. 8
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
    ● Not unloadingassets ● Duplicated assets loaded ● Texture size and compression ● Quality Settings Common problems 17
  • 18.
    24MB of texturesnot unloaded 18
  • 19.
  • 20.
  • 21.
  • 22.
    First Time UserExperience 22
  • 23.
  • 24.
    ● Focus onearly game features (product KPIs) ● Find the best compression for the platform ○ Android: ■ RGB: ETC Crunched (50% Quality) ■ RGBA: ETC2 Compressed e ASTC 6x6 ○ iOS: ■ RGB e RGBA: ASTC 6x6 ● Budget for assets (memory, file size, draw calls) ● Cache pool (even for Lists, Dictionaries, and so on) More optimizations 24
  • 25.
  • 26.
    ● Frameworks andAPIs ● Loading too many objects in one frame ● Not caching variables and data ● Large scenes with many objects Common problems 26
  • 27.
    ● Do notuse ○ Find() ○ FindWithTag() ○ FindGameObjectsWithTag() Frameworks and APIs ● Avoid using ○ LINQ ○ Awake() ○ GetComponent() ○ SetActive() 27
  • 28.
    Character collection loadis distributed between 22 frames. Loading too many objects in one frame 28
  • 29.
    Not caching variablesand data 29 Loading characters data from data provider
  • 30.
    Not caching variablesand data 30 Caching its data
  • 31.
    Large scenes withmany objects 31
  • 32.
    ● Keep drawcalls at a lower rate ● Use threads for parallel operations (Coroutines run in the main thread) ● Keep the class constructor simple ● Review the third party plugins performance as well 32 More optimizations
  • 33.
  • 34.
    ● Always usethe profiler to validate you hypothesis ● Profiling on Unity Editor is different than profiling on mobile devices ● Collect metrics to analyse and compare with previous data ● Prioritize the test on low end devices ● Avoid early optimizations Takeouts 34
  • 35.
    We are hiring! ●Senior Game Programmer (Unity) ● Backend Programmer ● Producer ● Senior Game Designer (Free2Play) https://www.aquiris.com.br/work-with-us 35
  • 36.