SlideShare a Scribd company logo
1 of 29
Оптимизация мобильных
игр на Unity3d и ESC
Шерстобитов Юрий
Наши игры
Sharks vs Dolphins: Checkers
Наши игры
Taxi Empire
Наши игры
Rise and Craft
Тестирование производительности
Проверьте игру на:
- среднем гаджете ( 3-4 GB Ram )
- дорогом гаджете
Графические технологии. Часть 1.
Occlusion culling vs Mesh Combiner
oc - технология которая позволяет
сэкономить время обработки графики,
за счет отключения объектов на сцене,
которые не попадают в камеру.
Графические технологии. Часть 1.
Occlusion culling vs Mesh Combiner
- нам было необходимо
найти баланс
со второй технологией
Mesh Combiner
Графические технологии. Часть 1.
Occlusion culling vs Mesh Combiner
Mesh Combiner позволяет объединять группу моделей в один меш:
- Один меш
- Одна текстура
- Один материал
Графические технологии. Часть 2.
Mesh animator vs Skinned mesh renderer
Мы заменили Skinned mesh renderer для клонов
на кэшированный Mesh animator
- это улучшило производительность.
Графические технологии. Часть 2.
Mesh animator vs Skinned mesh renderer
Mesh animator поддерживает:
- animator controller
- чистые анимации
- имеет api к созданию своего animator controller на логике c#
Графические технологии. Советы и факты
Следите за количеством
drawcalls и полигонов
на сцене в объективе камеры.
Графические технологии. Советы и факты
Откажитесь от:
- больших скайбоксов,
- дорогих / сложных спецэффектов,
- динамического освещения
и реалтайм теней
Графические технологии. Советы и факты
Сделайте ретопологию для моделей
чтобы они весили мало
и быстро грузились ( для клонов )
Как заставить код летать ? Программирование и физика
Откажитесь от стандартной физики, считайте все через математику
Как заставить код летать ? Программирование и физика
Кэшируйте все ссылки и данные
Как заставить код летать ? Программирование и физика
Избегайте макаронного кода - практикуйте грамотное ООП.
Как заставить код летать ? Программирование и физика
Используйте магию:
- entity component system
- jobs system
- burst compiler
Как заставить код летать ? Новые технологии ECS
Магия ecs + jobs + burst compiler
Entity component system - это плагин который позволяет разделять код
на сущности и компоненты, где код компонента
для всех одинаковых объектов и выполняться
один раз за update. ( pure / hybrid )
Как заставить код летать ? Новые технологии ECS
Магия ecs + jobs + burst compiler
Jobs system - это плагин который позволяет выполнять параллельно
простые задачи для группы объектов связанных с:
- позиционированием
- математикой
- логикой
Как заставить код летать ? Новые технологии ECS
Магия ecs + jobs + burst compiler
Burst compiler - ускоритель обработки кода
Публикация и релиз. Вес приложения
Оптимизируйте текстуры и музыку,
переведите в статус моно
и сделайте компрессию,
при необходимости.
Публикация и релиз. Вес приложения
Выкиньте весь хлам из проекта,
грамотно пользуйтесь папками
resources и plugins
Публикация и релиз. Вес приложения
Используйте ассет бандлы:
- игровой контент грузите
по мере необходимости
по игровому прогрессу
( развитию сюжета )
Какой мы получили результат? Rise and Craft
60 юнитов на боевую систему.
при том что 59 - это боты.
60 -80 fps на компе
30 fps на среднем android
Что мы используем в разработке Rise and Craft ?
Ассеты:
1. Mesh Animator
2. Eliot Ai Framework
3. Easy Decal
4. Mobile Color Grading
Технологии:
1. Mesh Combiner
2. Occlusion Culling
3. NavMeshAgent
4. ECS / Jobs / Burst compiler
Заключение №1
Оптимизацию важно проводить на этапе краш тестов,
а потом наполнить продукт контентом.
И опять проверить производительность.
Заключение №2
Купленные ассеты - часто нужно исправить и заточить под ваш продукт.
Перед покупкой обязательно свяжитесь с автором,
попросите демо исходники и проведите краш тест на совместимость.
Заключение №3
Нужна команда и нужны менторы как тренеры в спортзале.
Попробуйте сначала поработать в офисе - потом уйдите в инди =).
Желаю успехов!
Благодарю за внимание!
Шерстобитов Юрий
Chief Technology Officer
Imperial Games LLC
+38 (099) 267 25 38
white.lion.sh@gmail.com

More Related Content

Similar to Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"

06 vasenin roganov siis_2013
06 vasenin roganov siis_201306 vasenin roganov siis_2013
06 vasenin roganov siis_2013
Marina_creautor
 
Tanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browserTanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browser
Anton Volkov
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Ontico
 
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерБыстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
MSU GML VideoGroup
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
it-people
 
Разработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на ScaleformРазработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на Scaleform
Dmitry Dichkovsky
 

Similar to Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC" (20)

Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияАрхитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
 
Игрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботовИгрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботов
 
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
 
Внедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движокВнедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движок
 
06 vasenin roganov siis_2013
06 vasenin roganov siis_201306 vasenin roganov siis_2013
06 vasenin roganov siis_2013
 
Сервисы Azure для научных исследований
Сервисы Azure для научных исследованийСервисы Azure для научных исследований
Сервисы Azure для научных исследований
 
Rendering and synchronization of 4000 units in Mushroom Wars 2
Rendering and synchronization of  4000 units in Mushroom Wars 2Rendering and synchronization of  4000 units in Mushroom Wars 2
Rendering and synchronization of 4000 units in Mushroom Wars 2
 
Обзор OpenCL
Обзор OpenCLОбзор OpenCL
Обзор OpenCL
 
Tanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browserTanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browser
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерБыстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
 
Разработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на ScaleformРазработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на Scaleform
 
Unreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesUnreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent Showcases
 
Zillion Whales: как отрисовать 12 000 спрайтов в Unity
Zillion Whales: как отрисовать 12 000 спрайтов в UnityZillion Whales: как отрисовать 12 000 спрайтов в Unity
Zillion Whales: как отрисовать 12 000 спрайтов в Unity
 
Много данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'еМного данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'е
 
Microsoft: Создание игр на DirectX для Windows 8 и Windows Phone 8
 Microsoft: Создание игр на DirectX для Windows 8 и Windows Phone 8 Microsoft: Создание игр на DirectX для Windows 8 и Windows Phone 8
Microsoft: Создание игр на DirectX для Windows 8 и Windows Phone 8
 
Многопроцессорным компьютерам - параллельные программы!
Многопроцессорным компьютерам -  параллельные программы!Многопроцессорным компьютерам -  параллельные программы!
Многопроцессорным компьютерам - параллельные программы!
 
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
 

More from Lviv Startup Club

More from Lviv Startup Club (20)

Artem Bykovets: 4 Вершники апокаліпсису робочих стосунків (+антидоти до них) ...
Artem Bykovets: 4 Вершники апокаліпсису робочих стосунків (+антидоти до них) ...Artem Bykovets: 4 Вершники апокаліпсису робочих стосунків (+антидоти до них) ...
Artem Bykovets: 4 Вершники апокаліпсису робочих стосунків (+антидоти до них) ...
 
Dmytro Khudenko: Challenges of implementing task managers in the corporate an...
Dmytro Khudenko: Challenges of implementing task managers in the corporate an...Dmytro Khudenko: Challenges of implementing task managers in the corporate an...
Dmytro Khudenko: Challenges of implementing task managers in the corporate an...
 
Sergii Melnichenko: Лідерство в Agile командах: ТОП-5 основних психологічних ...
Sergii Melnichenko: Лідерство в Agile командах: ТОП-5 основних психологічних ...Sergii Melnichenko: Лідерство в Agile командах: ТОП-5 основних психологічних ...
Sergii Melnichenko: Лідерство в Agile командах: ТОП-5 основних психологічних ...
 
Mariia Rashkevych: Підвищення ефективності розроблення та реалізації освітніх...
Mariia Rashkevych: Підвищення ефективності розроблення та реалізації освітніх...Mariia Rashkevych: Підвищення ефективності розроблення та реалізації освітніх...
Mariia Rashkevych: Підвищення ефективності розроблення та реалізації освітніх...
 
Mykhailo Hryhorash: What can be good in a "bad" project? (UA)
Mykhailo Hryhorash: What can be good in a "bad" project? (UA)Mykhailo Hryhorash: What can be good in a "bad" project? (UA)
Mykhailo Hryhorash: What can be good in a "bad" project? (UA)
 
Oleksii Kyselov: Що заважає ПМу зростати? Розбір практичних кейсів (UA)
Oleksii Kyselov: Що заважає ПМу зростати? Розбір практичних кейсів (UA)Oleksii Kyselov: Що заважає ПМу зростати? Розбір практичних кейсів (UA)
Oleksii Kyselov: Що заважає ПМу зростати? Розбір практичних кейсів (UA)
 
Yaroslav Osolikhin: «Неідеальний» проєктний менеджер: People Management під ч...
Yaroslav Osolikhin: «Неідеальний» проєктний менеджер: People Management під ч...Yaroslav Osolikhin: «Неідеальний» проєктний менеджер: People Management під ч...
Yaroslav Osolikhin: «Неідеальний» проєктний менеджер: People Management під ч...
 
Mariya Yeremenko: Вплив Генеративного ШІ на сучасний світ та на особисту ефек...
Mariya Yeremenko: Вплив Генеративного ШІ на сучасний світ та на особисту ефек...Mariya Yeremenko: Вплив Генеративного ШІ на сучасний світ та на особисту ефек...
Mariya Yeremenko: Вплив Генеративного ШІ на сучасний світ та на особисту ефек...
 
Petro Nikolaiev & Dmytro Kisov: ТОП-5 методів дослідження клієнтів для успіху...
Petro Nikolaiev & Dmytro Kisov: ТОП-5 методів дослідження клієнтів для успіху...Petro Nikolaiev & Dmytro Kisov: ТОП-5 методів дослідження клієнтів для успіху...
Petro Nikolaiev & Dmytro Kisov: ТОП-5 методів дослідження клієнтів для успіху...
 
Maksym Stelmakh : Державні електронні послуги та сервіси: чому бізнесу варто ...
Maksym Stelmakh : Державні електронні послуги та сервіси: чому бізнесу варто ...Maksym Stelmakh : Державні електронні послуги та сервіси: чому бізнесу варто ...
Maksym Stelmakh : Державні електронні послуги та сервіси: чому бізнесу варто ...
 
Alexander Marchenko: Проблеми росту продуктової екосистеми (UA)
Alexander Marchenko: Проблеми росту продуктової екосистеми (UA)Alexander Marchenko: Проблеми росту продуктової екосистеми (UA)
Alexander Marchenko: Проблеми росту продуктової екосистеми (UA)
 
Oleksandr Grytsenko: Save your Job або прокачай скіли до Engineering Manageme...
Oleksandr Grytsenko: Save your Job або прокачай скіли до Engineering Manageme...Oleksandr Grytsenko: Save your Job або прокачай скіли до Engineering Manageme...
Oleksandr Grytsenko: Save your Job або прокачай скіли до Engineering Manageme...
 
Yuliia Pieskova: Фідбек: не лише "як", але й "коли" і "навіщо" (UA)
Yuliia Pieskova: Фідбек: не лише "як", але й "коли" і "навіщо" (UA)Yuliia Pieskova: Фідбек: не лише "як", але й "коли" і "навіщо" (UA)
Yuliia Pieskova: Фідбек: не лише "як", але й "коли" і "навіщо" (UA)
 
Nataliya Kryvonis: Essential soft skills to lead your team (UA)
Nataliya Kryvonis: Essential soft skills to lead your team (UA)Nataliya Kryvonis: Essential soft skills to lead your team (UA)
Nataliya Kryvonis: Essential soft skills to lead your team (UA)
 
Volodymyr Salyha: Stakeholder Alchemy: Transforming Analysis into Meaningful ...
Volodymyr Salyha: Stakeholder Alchemy: Transforming Analysis into Meaningful ...Volodymyr Salyha: Stakeholder Alchemy: Transforming Analysis into Meaningful ...
Volodymyr Salyha: Stakeholder Alchemy: Transforming Analysis into Meaningful ...
 
Anna Chalyuk: 7 інструментів та принципів, які допоможуть зробити вашу команд...
Anna Chalyuk: 7 інструментів та принципів, які допоможуть зробити вашу команд...Anna Chalyuk: 7 інструментів та принципів, які допоможуть зробити вашу команд...
Anna Chalyuk: 7 інструментів та принципів, які допоможуть зробити вашу команд...
 
Oksana Smilka: Цінності, цілі та (де) мотивація (UA)
Oksana Smilka: Цінності, цілі та (де) мотивація (UA)Oksana Smilka: Цінності, цілі та (де) мотивація (UA)
Oksana Smilka: Цінності, цілі та (де) мотивація (UA)
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
 
Andrii Skoromnyi: Чому не працює методика "5 Чому?" – і яка є альтернатива? (UA)
Andrii Skoromnyi: Чому не працює методика "5 Чому?" – і яка є альтернатива? (UA)Andrii Skoromnyi: Чому не працює методика "5 Чому?" – і яка є альтернатива? (UA)
Andrii Skoromnyi: Чому не працює методика "5 Чому?" – і яка є альтернатива? (UA)
 
Maryna Sokyrko & Oleksandr Chugui: Building Product Passion: Developing AI ch...
Maryna Sokyrko & Oleksandr Chugui: Building Product Passion: Developing AI ch...Maryna Sokyrko & Oleksandr Chugui: Building Product Passion: Developing AI ch...
Maryna Sokyrko & Oleksandr Chugui: Building Product Passion: Developing AI ch...
 

Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"

  • 1. Оптимизация мобильных игр на Unity3d и ESC Шерстобитов Юрий
  • 2. Наши игры Sharks vs Dolphins: Checkers
  • 5. Тестирование производительности Проверьте игру на: - среднем гаджете ( 3-4 GB Ram ) - дорогом гаджете
  • 6. Графические технологии. Часть 1. Occlusion culling vs Mesh Combiner oc - технология которая позволяет сэкономить время обработки графики, за счет отключения объектов на сцене, которые не попадают в камеру.
  • 7. Графические технологии. Часть 1. Occlusion culling vs Mesh Combiner - нам было необходимо найти баланс со второй технологией Mesh Combiner
  • 8. Графические технологии. Часть 1. Occlusion culling vs Mesh Combiner Mesh Combiner позволяет объединять группу моделей в один меш: - Один меш - Одна текстура - Один материал
  • 9. Графические технологии. Часть 2. Mesh animator vs Skinned mesh renderer Мы заменили Skinned mesh renderer для клонов на кэшированный Mesh animator - это улучшило производительность.
  • 10. Графические технологии. Часть 2. Mesh animator vs Skinned mesh renderer Mesh animator поддерживает: - animator controller - чистые анимации - имеет api к созданию своего animator controller на логике c#
  • 11. Графические технологии. Советы и факты Следите за количеством drawcalls и полигонов на сцене в объективе камеры.
  • 12. Графические технологии. Советы и факты Откажитесь от: - больших скайбоксов, - дорогих / сложных спецэффектов, - динамического освещения и реалтайм теней
  • 13. Графические технологии. Советы и факты Сделайте ретопологию для моделей чтобы они весили мало и быстро грузились ( для клонов )
  • 14. Как заставить код летать ? Программирование и физика Откажитесь от стандартной физики, считайте все через математику
  • 15. Как заставить код летать ? Программирование и физика Кэшируйте все ссылки и данные
  • 16. Как заставить код летать ? Программирование и физика Избегайте макаронного кода - практикуйте грамотное ООП.
  • 17. Как заставить код летать ? Программирование и физика Используйте магию: - entity component system - jobs system - burst compiler
  • 18. Как заставить код летать ? Новые технологии ECS Магия ecs + jobs + burst compiler Entity component system - это плагин который позволяет разделять код на сущности и компоненты, где код компонента для всех одинаковых объектов и выполняться один раз за update. ( pure / hybrid )
  • 19. Как заставить код летать ? Новые технологии ECS Магия ecs + jobs + burst compiler Jobs system - это плагин который позволяет выполнять параллельно простые задачи для группы объектов связанных с: - позиционированием - математикой - логикой
  • 20. Как заставить код летать ? Новые технологии ECS Магия ecs + jobs + burst compiler Burst compiler - ускоритель обработки кода
  • 21. Публикация и релиз. Вес приложения Оптимизируйте текстуры и музыку, переведите в статус моно и сделайте компрессию, при необходимости.
  • 22. Публикация и релиз. Вес приложения Выкиньте весь хлам из проекта, грамотно пользуйтесь папками resources и plugins
  • 23. Публикация и релиз. Вес приложения Используйте ассет бандлы: - игровой контент грузите по мере необходимости по игровому прогрессу ( развитию сюжета )
  • 24. Какой мы получили результат? Rise and Craft 60 юнитов на боевую систему. при том что 59 - это боты. 60 -80 fps на компе 30 fps на среднем android
  • 25. Что мы используем в разработке Rise and Craft ? Ассеты: 1. Mesh Animator 2. Eliot Ai Framework 3. Easy Decal 4. Mobile Color Grading Технологии: 1. Mesh Combiner 2. Occlusion Culling 3. NavMeshAgent 4. ECS / Jobs / Burst compiler
  • 26. Заключение №1 Оптимизацию важно проводить на этапе краш тестов, а потом наполнить продукт контентом. И опять проверить производительность.
  • 27. Заключение №2 Купленные ассеты - часто нужно исправить и заточить под ваш продукт. Перед покупкой обязательно свяжитесь с автором, попросите демо исходники и проведите краш тест на совместимость.
  • 28. Заключение №3 Нужна команда и нужны менторы как тренеры в спортзале. Попробуйте сначала поработать в офисе - потом уйдите в инди =). Желаю успехов!
  • 29. Благодарю за внимание! Шерстобитов Юрий Chief Technology Officer Imperial Games LLC +38 (099) 267 25 38 white.lion.sh@gmail.com