Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cоветs по оптимизации игр, Александр Дежурко

2,050 views

Published on

особенностях процесса разработки, тестирования и оптимизации мобильных приложений в компании Heyworks.

- Общие правила оптимизации
- Особенности визуализации на мобильных устройствах
- Узкие места и способы оптимизации
- Pocket Troops: оптимизация на примерах

Published in: Technology
  • Be the first to comment

Cоветs по оптимизации игр, Александр Дежурко

  1. 1. Умный учится на чужих ошибках или несколько советов по оптимизации игр Александр Дежурко CTO
  2. 2. Разработка мобильных игр — процесс непростой… • Ограниченность ресурсов • Зоопарк технологий • Сложность тестирования • Зоопарк целевых устройств • Интеграция со сторонними сервисами
  3. 3. План • Общие правила оптимизации • Особенности визуализации на мобильных устройствах • Узкие места и способы оптимизации • Pocket Troops: оптимизация на примерах
  4. 4. № 1. Планируйте заранее • Определить целевые устройства • Правило предпоследнего поколения • Определить бюджет • Делать прототипы
  5. 5. № 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
  6. 6. № 3. Регулярно измеряйте
  7. 7. № 4. Оптимизируйте вместе с художниками
  8. 8. Мобильные устройства отличаются • Более слабые CPU и GPU • Небольшой объем оперативной памяти • Разделяемая память между CPU и GPU • Небольшая пропускная способность памяти • TBR
  9. 9. IMR vs TBDR IMR (Immediate Mode Rendering) TBDR (Tile Based Deferred Rendering)
  10. 10. Узкие места визуализации (rendering bottleneck) • CPU • Vertex • Fragment • Bandwidth
  11. 11. CPU Встроенная оптимизация Unity3d: • Static batching • Dynamic batching • Occlusion culling Что можем сделать мы: • Уменьшить количество материалов • Собрать текстуры в атласы • Настроить Occlusion culling
  12. 12. Vertex • Удалить ненужную геометрию • Уменьшить количество Hard Edges и UV seams • Использовать LOD • Occlusion culling • Использовать специальные мобильные шейдеры
  13. 13. Fragment Слишком много вычислений • Запекать как можно больше (lightmaps, light probes, etc.) • Уменьшить количество пиксельных источников освещения • Не использовать тени в реальном времени • Ограничить использование specular map и bump map • Использовать мобильные шейдеры Перерисовка (Overdraw) • Уменьшить количество полупрозрачности • Заменить полупрозрачность геометрией • Снизить количество частить • Использовать мобильные шейдеры
  14. 14. Пропускная способность • Использовать компрессию • Использовать Mipmaps • Использовать 16bits текстуры • Умеренно использовать трилинейную и анизотропическую фильтрацию
  15. 15. Pocket Troops: Lightmaps & Light probes
  16. 16. Pocket Troops: Fake Reflection
  17. 17. Pocket Troops: Atlasing & Gradient Mapping
  18. 18. Pocket Troops: Fake Glow & Shafts
  19. 19. Pocket Troops: Fake Shadows & Flashs
  20. 20. Выводы • Определитесь с целевыми устройствами и регулярно измеряйте производительность в процессе разработки • Как можно больше запекайте и как можно меньше рассчитывайте в реальном времени • Держите в разумных пределах количество материалов, полигонаж, размер текстур • Используйте сжатие текстур • Избегайте использования alpha cutout шейдеров • Уменьшайте количество прозрачной геометрии • Используйте LODs • Используйте мобильные шейдеры • Подходите к процессу оптимизации творчески
  21. 21. Спасибо за внимание Александр Дежурко CTO fb.me/adezhurko www.heyworks.com

×