особенностях процесса разработки, тестирования и оптимизации мобильных приложений в компании Heyworks.
- Общие правила оптимизации
- Особенности визуализации на мобильных устройствах
- Узкие места и способы оптимизации
- Pocket Troops: оптимизация на примерах
«От CMS к Highload: работа с backend» Алексей Сазанов, Александр Каскевич
Cоветs по оптимизации игр, Александр Дежурко
1. Умный учится на чужих ошибках
или несколько советов по оптимизации игр
Александр Дежурко
CTO
2. Разработка мобильных игр —
процесс непростой…
• Ограниченность ресурсов
• Зоопарк технологий
• Сложность тестирования
• Зоопарк целевых устройств
• Интеграция со сторонними сервисами
3. План
• Общие правила оптимизации
• Особенности визуализации на
мобильных устройствах
• Узкие места и способы оптимизации
• Pocket Troops: оптимизация на
примерах
4.
5. № 1. Планируйте заранее
• Определить целевые устройства
• Правило предпоследнего поколения
• Определить бюджет
• Делать прототипы
6. № 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
9. Мобильные устройства
отличаются
• Более слабые CPU и GPU
• Небольшой объем оперативной памяти
• Разделяемая память между CPU и GPU
• Небольшая пропускная способность памяти
• TBR
10. IMR vs TBDR
IMR (Immediate Mode Rendering)
TBDR (Tile Based Deferred Rendering)
12. CPU
Встроенная оптимизация Unity3d:
• Static batching
• Dynamic batching
• Occlusion culling
Что можем сделать мы:
• Уменьшить количество материалов
• Собрать текстуры в атласы
• Настроить Occlusion culling
13. Vertex
• Удалить ненужную геометрию
• Уменьшить количество Hard Edges и UV seams
• Использовать LOD
• Occlusion culling
• Использовать специальные мобильные шейдеры
14. Fragment
Слишком много вычислений
• Запекать как можно больше (lightmaps, light probes, etc.)
• Уменьшить количество пиксельных источников освещения
• Не использовать тени в реальном времени
• Ограничить использование specular map и bump map
• Использовать мобильные шейдеры
Перерисовка (Overdraw)
• Уменьшить количество
полупрозрачности
• Заменить полупрозрачность
геометрией
• Снизить количество частить
• Использовать мобильные шейдеры
15. Пропускная способность
• Использовать компрессию
• Использовать Mipmaps
• Использовать 16bits текстуры
• Умеренно использовать трилинейную и анизотропическую
фильтрацию
21. Выводы
• Определитесь с целевыми устройствами и регулярно
измеряйте производительность в процессе разработки
• Как можно больше запекайте и как можно меньше
рассчитывайте в реальном времени
• Держите в разумных пределах количество материалов,
полигонаж, размер текстур
• Используйте сжатие текстур
• Избегайте использования alpha cutout шейдеров
• Уменьшайте количество прозрачной геометрии
• Используйте LODs
• Используйте мобильные шейдеры
• Подходите к процессу оптимизации творчески