SlideShare a Scribd company logo
1 of 19
Squeezing a Big Game into a 
Small Device 
Chris Hoefgen, Founder and CTO 
Ben Hesketh, Senior Developer 
Tony Christney, Senior Developer
About TinyMob 
• Founded in 2013 
• A game studio focusing on mid-core strategy 
games 
• Our lead game is Tiny Realms 
• Tech Stack: Unity3d, C#, Java, Redis, DynamoDB 
& AWS 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
Game Dev on mobile is a Pain 
Draw Calls Memory CPU 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
2D Drawing in Unity 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
2D Drawing in Unity 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
2D Drawing in Unity 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
Problem: Not Scalable 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
“Solution” - 2D ToolKit 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
Problem - Memory Exploded 
The game has a lot of content: 560 MB of units / 400 MB of buildings / 100 
MB of VFX 
The iPhone 5 only has 300 MB of RAM to work with 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
“Solution” - Smash and Burn 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
Problem - Draw Calls…Again 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
“Solution” - Dynamic Sprite Atlas 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
The Game Works…Ship It! 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
Problem - The Game is Too Big 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
“Solution” - Asset Bundles 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
Problem - Older Devices Crash 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved. 
• Game users 
~200MB of RAM 
• iPhone 4s & iPad 
Mini only has 
170MB of usable 
memory 
• Ran out of ways to 
optimize the game
“Solution” - Reduce Quality 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved. 
Wisdoms 
• Acquiring technical debt is not a bad thing as long 
as it is managed 
• Optimization is an iterative process 
• Working in a startup means solving the problems 
in front of you right now 
• Game development is research on a production 
timeline
Questions? 
© Copyright TinyMob Games Inc, 2012-2014. All rights reserved.

More Related Content

Similar to UVic Startup Slam September 2014 (TinyMob Games)

Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2
Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2
Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2BeMyApp
 
One Million Players Isn't Cool (at Festival of Games 2011)
One Million Players Isn't Cool (at Festival of Games 2011)One Million Players Isn't Cool (at Festival of Games 2011)
One Million Players Isn't Cool (at Festival of Games 2011)Ex Machina
 
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법강 민우
 
It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...
It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...
It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...mochimedia
 
My Presentation.ppt
My Presentation.pptMy Presentation.ppt
My Presentation.pptFake474384
 
Pay To Growth Quick presentation
Pay To Growth Quick presentationPay To Growth Quick presentation
Pay To Growth Quick presentationSanti Alcaide
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...gamifi.cc
 
[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점
[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점
[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점강 민우
 
Cross Game Dev with Corona
Cross Game Dev with CoronaCross Game Dev with Corona
Cross Game Dev with CoronaShawn Grimes
 
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...Amazon Web Services
 
Neev Hackathon 2013 - Super Feet
Neev Hackathon 2013 - Super FeetNeev Hackathon 2013 - Super Feet
Neev Hackathon 2013 - Super FeetNeev Technologies
 
Designing a story-driven casual game for personalisation / Dave Cross (Wooga)
Designing a story-driven casual game for personalisation / Dave Cross (Wooga)Designing a story-driven casual game for personalisation / Dave Cross (Wooga)
Designing a story-driven casual game for personalisation / Dave Cross (Wooga)DevGAMM Conference
 
Go daddy.com Cloud Storage Solution (Adam Knapp)
Go daddy.com Cloud Storage Solution (Adam Knapp)Go daddy.com Cloud Storage Solution (Adam Knapp)
Go daddy.com Cloud Storage Solution (Adam Knapp)Ontico
 
Before starting android game development
Before starting android game developmentBefore starting android game development
Before starting android game developmentBeing Programmer
 
Heroes of Paragon: publishing Unity WebGL game on Facebook
Heroes of Paragon: publishing Unity WebGL game on FacebookHeroes of Paragon: publishing Unity WebGL game on Facebook
Heroes of Paragon: publishing Unity WebGL game on FacebookDevGAMM Conference
 
Cts125800 2015 final project adam chatham
Cts125800 2015 final project adam chathamCts125800 2015 final project adam chatham
Cts125800 2015 final project adam chathamboldpaste2
 
YetiZen Google AdMob Design Jam Kickoff Presentation
YetiZen Google AdMob Design Jam Kickoff PresentationYetiZen Google AdMob Design Jam Kickoff Presentation
YetiZen Google AdMob Design Jam Kickoff PresentationSana Choudary
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hdslantsixgames
 
OGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_Glooops
OGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_GlooopsOGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_Glooops
OGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_GlooopsBuff Nguyen
 
The importance of just-in-time operation of social games
The importance of just-in-time operation of social gamesThe importance of just-in-time operation of social games
The importance of just-in-time operation of social gamesaction.vn
 

Similar to UVic Startup Slam September 2014 (TinyMob Games) (20)

Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2
Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2
Android, AndEngine and Jibe Mobile - Ultracode Munich Meetup #2
 
One Million Players Isn't Cool (at Festival of Games 2011)
One Million Players Isn't Cool (at Festival of Games 2011)One Million Players Isn't Cool (at Festival of Games 2011)
One Million Players Isn't Cool (at Festival of Games 2011)
 
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
 
It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...
It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...
It's A Long Way To The Top...If You Want To Be An Indie Flash Dev by David Sc...
 
My Presentation.ppt
My Presentation.pptMy Presentation.ppt
My Presentation.ppt
 
Pay To Growth Quick presentation
Pay To Growth Quick presentationPay To Growth Quick presentation
Pay To Growth Quick presentation
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
 
[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점
[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점
[IGC 2017] SEWORKS 민인숙 - 앱 보안, 북미와 아시아 시장에서의 차이점
 
Cross Game Dev with Corona
Cross Game Dev with CoronaCross Game Dev with Corona
Cross Game Dev with Corona
 
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...
 
Neev Hackathon 2013 - Super Feet
Neev Hackathon 2013 - Super FeetNeev Hackathon 2013 - Super Feet
Neev Hackathon 2013 - Super Feet
 
Designing a story-driven casual game for personalisation / Dave Cross (Wooga)
Designing a story-driven casual game for personalisation / Dave Cross (Wooga)Designing a story-driven casual game for personalisation / Dave Cross (Wooga)
Designing a story-driven casual game for personalisation / Dave Cross (Wooga)
 
Go daddy.com Cloud Storage Solution (Adam Knapp)
Go daddy.com Cloud Storage Solution (Adam Knapp)Go daddy.com Cloud Storage Solution (Adam Knapp)
Go daddy.com Cloud Storage Solution (Adam Knapp)
 
Before starting android game development
Before starting android game developmentBefore starting android game development
Before starting android game development
 
Heroes of Paragon: publishing Unity WebGL game on Facebook
Heroes of Paragon: publishing Unity WebGL game on FacebookHeroes of Paragon: publishing Unity WebGL game on Facebook
Heroes of Paragon: publishing Unity WebGL game on Facebook
 
Cts125800 2015 final project adam chatham
Cts125800 2015 final project adam chathamCts125800 2015 final project adam chatham
Cts125800 2015 final project adam chatham
 
YetiZen Google AdMob Design Jam Kickoff Presentation
YetiZen Google AdMob Design Jam Kickoff PresentationYetiZen Google AdMob Design Jam Kickoff Presentation
YetiZen Google AdMob Design Jam Kickoff Presentation
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
OGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_Glooops
OGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_GlooopsOGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_Glooops
OGDC2012 Just-in-time Operation in Social Games_Mr.Eiji Okuda_Glooops
 
The importance of just-in-time operation of social games
The importance of just-in-time operation of social gamesThe importance of just-in-time operation of social games
The importance of just-in-time operation of social games
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

UVic Startup Slam September 2014 (TinyMob Games)

  • 1. Squeezing a Big Game into a Small Device Chris Hoefgen, Founder and CTO Ben Hesketh, Senior Developer Tony Christney, Senior Developer
  • 2. About TinyMob • Founded in 2013 • A game studio focusing on mid-core strategy games • Our lead game is Tiny Realms • Tech Stack: Unity3d, C#, Java, Redis, DynamoDB & AWS © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 3. Game Dev on mobile is a Pain Draw Calls Memory CPU © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 4. 2D Drawing in Unity © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 5. 2D Drawing in Unity © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 6. 2D Drawing in Unity © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 7. Problem: Not Scalable © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 8. “Solution” - 2D ToolKit © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 9. Problem - Memory Exploded The game has a lot of content: 560 MB of units / 400 MB of buildings / 100 MB of VFX The iPhone 5 only has 300 MB of RAM to work with © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 10. “Solution” - Smash and Burn © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 11. Problem - Draw Calls…Again © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 12. “Solution” - Dynamic Sprite Atlas © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 13. The Game Works…Ship It! © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 14. Problem - The Game is Too Big © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 15. “Solution” - Asset Bundles © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 16. Problem - Older Devices Crash © Copyright TinyMob Games Inc, 2012-2014. All rights reserved. • Game users ~200MB of RAM • iPhone 4s & iPad Mini only has 170MB of usable memory • Ran out of ways to optimize the game
  • 17. “Solution” - Reduce Quality © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.
  • 18. © Copyright TinyMob Games Inc, 2012-2014. All rights reserved. Wisdoms • Acquiring technical debt is not a bad thing as long as it is managed • Optimization is an iterative process • Working in a startup means solving the problems in front of you right now • Game development is research on a production timeline
  • 19. Questions? © Copyright TinyMob Games Inc, 2012-2014. All rights reserved.

Editor's Notes

  1. Chris Introduce the talk and Ben Talk about our ambition to put a lot of game onto a mobile device We wanted to bring a Starcraft-like RTS experience to mobile We quickly found out why there are not many RTS-like games on mobile We are going to go through our process of getting this big game on a device and all the problems we encountered and subsequent solutions we came up with
  2. Chris Talk about the founding of the company, how it grew and why it was founded: Alex, Jamie and Chris wanted to run our own company and make our own products Saw a market for mid core games on mobile and it was more inline with what we like to play Started with myself and 2 developers Grew in early 2014 when we hired 10 more employees to go for it
  3. Chris and Ben Making games is a challenging task to begin with and you are constantly battle 3 core bottlenecks. From the technical side system resource management is one of the top priorities Without managing these resources you get a crappy game performance with low FPS and poor responsiveness Unfortunately modern Mobile devices still have less power than a desktop computer, making the problem worse Draw Calls and Overdraw correlate directly to FPS, to much of either and your frame rate plummets making the game unplayable Memory, both CPU and GPU, is very finite in mobile devices. Once you go over your CPU memory limit your game just crashes…no warning or recovery CPU is the second factor in your FPS but also determines how much AI you can process. Games that try and do a lot of smart things burn through your CPU quickly creating lag an iPhone 5 has 1GB of RAM. iOS only lets you use 250-350 MB of that for your app an iPhone 4 or iPad Mini has half of those resources As you build your game you quickly realize you are playing Wack-a-Mole with these constraints because as you fix one problem area another pops up.
  4. Ben Describe: Quads Texture Material Mesh Drawing Process: Create game objects and attach texture & material Place the sprites in the world on a plane with a camera Objects move around the screen with code
  5. Wireframes
  6. Overdraw Image
  7. Ben Talk about the naive approach of one texture per sprite Need to manage thousands of separate texture files and objects Unity 2D animation support was unusable at the time, making animated sprites a challenge We only had 1/4 of the assets in the game and we were already struggling
  8. Ben Describe what it is: 3rd party plugin for Unity from the Unity Asset Store Creates custom sprite collections with tools for packing individual textures, scaling them, trimming them, rotating them, tinting them and rendering them Has an animation tool to easily create key frame sprite animations with code triggers Talk about the main problems solved: Draw Calls and Organization - Scalability Each combination of a mesh and a texture is a draw call Manages the limited number of texture units that a GPU has to work with Once you exceed the texture units you need to load textures from CPU memory which murders frame rate Provides a system managing, packing and drawing sprites Provided us with a tool and system for doing 2d animations Automatically batches draw calls for game objects using the same sprite collections Introduce “layers of abstraction” for drawing Sprite Batching Sprite batching is a way to combine multiple textures/objects into a single object that only requires one draw call: It is faster to combine many meshes into one (up to a point) and use texture offsets than to draw each mesh individually Only works for combining textures from the same sprite collection Still need to be careful with draw calls when multiple sandwiched objects overlap from different sprite collections
  9. Chris Tiny Realms has a lot of content. 4 factions each with 17 unique buildings and 8 different units Each building has 10 upgrade levels, some with custom animations and banners Each Unit has 8 directions of animation for walking, attacking, idle, dying 10-60 frames each Total Building sprite sheet size per faction: 100 MB Size of all unit textures per faction: 140 MB A significant battle between 2 different factions required over 400 MB of memory just to render the sprites… And we still need more memory for code, services, networking, particle effects A 1st generation iPad Mini only has 150 MB of memory to work with
  10. Chris and Ben We needed to massively cut back our assets Units Cut out frames from animation cycles - 60 frames became 12 Removed many animation cycles completely Used sprite mirroring to eliminate duplicates Buildings Replaced many animations with particle effects Remove all firing animations from cannons and mortars Faked it out with particle effects Compression Switched all textures to PVRTC Optimized for iOS and works best when the textures are square Introduced compression “fixers” into the texture files to aid with compression (I forgot to ask Tobyn how this works) Result: Memory requirements for textures dropped by nearly an order of magnitude The game now loads into memory on a device…Huzzah! asdfasdfa
  11. Ben TinyRealms is a 2D Isometric Projection game Sprites are layer on top of each other from back to front to create the illusion of depth All our sprites have alpha transparency We are using dozens of sprite sheets Explain how Draw calls and depth buffering work An now our 100s of draw calls were destroying our FPS
  12. Ben To fix this problem Tony developed a system to dynamically create a sprite sheets for buildings when you load a level (aka realm) The realm is evaluated and only the buildings needed are copied from their source sheets into one or two custom collections The system also keeps track of all animations and maintains links Combining this assets into one of two textures instead of dozen has a massive effect on the # of draw calls The con of this approach is that it adds 2-5 seconds to the load of each realm in the game
  13. Chris Summarize the Successes We put int an architecture to manage asset and use sprite sheets We trimmed down the content to fit the game into memory We optimized the CPU and Draw calls to allow the game to run at 60 FPS Everything works, time to ship it to the Apple App Store
  14. Chris With 3+ factions and plenty of high quality art our game is almost 300Mb On iOS you can only download apps over a cell network that are <100MB Apps that are >100MB have a significant drop off in player installs because they can’t or won’t download over WiFi How to reach our 100MB goal without sacrificing quality?
  15. Chris Asset bundles are just zip files that contain Unity assets like objects, art and sound The Unity engine can load these files at runtime from the Internet or local file system We packaged a bunch of our assets into these bundles to make them downloadable at runtime AssetBundles are loaded directly into memory at runtime so we need to use a lot of granularity (~100 files) to avoid wasting memory Pros Reduced the install size to < 95.6 MB Lets us deliver new content to a live game without pushing an update through Apple Cons The game has to download dozens of files when the game starts Slows down the game experience when switching between scenes
  16. Ben Even after all our performance improvements, low end devices still struggled to play the game well (or at all) The game uses an average of 200 MB of memory iPhone 4/4s & iPad Mini only provide 170 MB Ran out of ways to optimize the game The high res textures we use for Retina devices are just too big
  17. Ben Our next step was to reduce the texture quality of game assets for low end devices 2D Toolkit provides a way to automatically create full resolution textures and half resolution textures for different platforms CON game looked slightly worse on low end devices PRO game actually works on low end devices
  18. Chris & Ben