Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

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

2.090 visualizaciones

Publicado el

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

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

Publicado en: Tecnología
  • Sé el primero en comentar

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

×