Download - Cоветs по оптимизации игр, Александр Дежурко
![Page 1: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/1.jpg)
Умный учится на чужих ошибках или несколько советов по оптимизации игр
Александр ДежуркоCTO
![Page 2: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/2.jpg)
Разработка мобильных игр — процесс непростой…
• Ограниченность ресурсов• Зоопарк технологий• Сложность тестирования• Зоопарк целевых устройств• Интеграция со сторонними сервисами
![Page 3: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/3.jpg)
План• Общие правила оптимизации• Особенности визуализации на
мобильных устройствах• Узкие места и способы оптимизации• Pocket Troops: оптимизация на
примерах
![Page 4: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/4.jpg)
![Page 5: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/5.jpg)
№ 1. Планируйте заранее
• Определить целевые устройства• Правило предпоследнего поколения• Определить бюджет• Делать прототипы
![Page 6: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/6.jpg)
№ 2. Оптимизируйте вовремя
The First Rule of Program Optimization:
Don't do it The Second Rule of Program Optimization (for experts only!):
Don't do it yet*
*British computer scientist Michael A. Jackson
![Page 7: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/7.jpg)
№ 3. Регулярно измеряйте
![Page 8: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/8.jpg)
№ 4. Оптимизируйте вместе с художниками
![Page 9: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/9.jpg)
Мобильные устройства отличаются
• Более слабые CPU и GPU• Небольшой объем оперативной памяти• Разделяемая память между CPU и GPU• Небольшая пропускная способность памяти• TBR
![Page 10: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/10.jpg)
IMR vs TBDR
IMR (Immediate Mode Rendering)
TBDR (Tile Based Deferred Rendering)
![Page 11: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/11.jpg)
Узкие места визуализации(rendering bottleneck)
• CPU• Vertex • Fragment• Bandwidth
![Page 12: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/12.jpg)
CPUВстроенная оптимизация Unity3d:
• Static batching• Dynamic batching• Occlusion culling
Что можем сделать мы:• Уменьшить количество материалов• Собрать текстуры в атласы• Настроить Occlusion culling
![Page 13: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/13.jpg)
Vertex• Удалить ненужную геометрию• Уменьшить количество Hard Edges и UV seams • Использовать LOD• Occlusion culling• Использовать специальные мобильные шейдеры
![Page 14: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/14.jpg)
Fragment
Перерисовка (Overdraw)• Уменьшить количество полупрозрачности• Заменить полупрозрачность геометрией• Снизить количество частить• Использовать мобильные шейдеры
Слишком много вычислений• Запекать как можно больше (lightmaps, light probes, etc.) • Уменьшить количество пиксельных источников освещения • Не использовать тени в реальном времени• Ограничить использование specular map и bump map• Использовать мобильные шейдеры
![Page 15: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/15.jpg)
Пропускная способность
• Использовать компрессию• Использовать Mipmaps • Использовать 16bits текстуры• Умеренно использовать трилинейную и анизотропическую фильтрацию
![Page 16: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/16.jpg)
Pocket Troops: Lightmaps & Light probes
![Page 17: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/17.jpg)
Pocket Troops: Fake Reflection
![Page 18: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/18.jpg)
Pocket Troops: Atlasing & Gradient Mapping
![Page 19: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/19.jpg)
Pocket Troops: Fake Glow & Shafts
![Page 20: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/20.jpg)
Pocket Troops: Fake Shadows & Flashs
![Page 21: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/21.jpg)
Выводы
• Определитесь с целевыми устройствами и регулярно измеряйте производительность в процессе разработки
• Как можно больше запекайте и как можно меньше рассчитывайте в реальном времени
• Держите в разумных пределах количество материалов, полигонаж, размер текстур
• Используйте сжатие текстур• Избегайте использования alpha cutout шейдеров• Уменьшайте количество прозрачной геометрии• Используйте LODs• Используйте мобильные шейдеры• Подходите к процессу оптимизации творчески
![Page 22: Cоветs по оптимизации игр, Александр Дежурко](https://reader034.vdocuments.pub/reader034/viewer/2022051816/54620759af79597b0b8b5d7d/html5/thumbnails/22.jpg)
fb.me/adezhurko
Спасибо за внимание
www.heyworks.com
Александр ДежуркоCTO