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

22
Умный учится на чужих ошибках или несколько советов по оптимизации игр Александр Дежурко CTO

Upload: it-share

Post on 11-Nov-2014

1.301 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

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

Умный учится на чужих ошибках или несколько советов по оптимизации игр

Александр ДежуркоCTO

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

Разработка мобильных игр — процесс непростой…

• Ограниченность ресурсов• Зоопарк технологий• Сложность тестирования• Зоопарк целевых устройств• Интеграция со сторонними сервисами

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

План• Общие правила оптимизации• Особенности визуализации на

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

примерах

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

№ 1. Планируйте заранее

• Определить целевые устройства• Правило предпоследнего поколения• Определить бюджет• Делать прототипы

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

№ 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 по оптимизации игр, Александр Дежурко

№ 3. Регулярно измеряйте

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

№ 4. Оптимизируйте вместе с художниками

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

Мобильные устройства отличаются

• Более слабые CPU и GPU• Небольшой объем оперативной памяти• Разделяемая память между CPU и GPU• Небольшая пропускная способность памяти• TBR

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

IMR vs TBDR

IMR (Immediate Mode Rendering)

TBDR (Tile Based Deferred Rendering)

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

Узкие места визуализации(rendering bottleneck)

• CPU• Vertex • Fragment• Bandwidth

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

CPUВстроенная оптимизация Unity3d:

• Static batching• Dynamic batching• Occlusion culling

Что можем сделать мы:• Уменьшить количество материалов• Собрать текстуры в атласы• Настроить Occlusion culling

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

Vertex• Удалить ненужную геометрию• Уменьшить количество Hard Edges и UV seams • Использовать LOD• Occlusion culling• Использовать специальные мобильные шейдеры

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

Fragment

Перерисовка (Overdraw)• Уменьшить количество полупрозрачности• Заменить полупрозрачность геометрией• Снизить количество частить• Использовать мобильные шейдеры

Слишком много вычислений• Запекать как можно больше (lightmaps, light probes, etc.) • Уменьшить количество пиксельных источников освещения • Не использовать тени в реальном времени• Ограничить использование specular map и bump map• Использовать мобильные шейдеры

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

Пропускная способность

• Использовать компрессию• Использовать Mipmaps • Использовать 16bits текстуры• Умеренно использовать трилинейную и анизотропическую фильтрацию

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

Pocket Troops: Lightmaps & Light probes

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

Pocket Troops: Fake Reflection

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

Pocket Troops: Atlasing & Gradient Mapping

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

Pocket Troops: Fake Glow & Shafts

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

Pocket Troops: Fake Shadows & Flashs

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

Выводы

• Определитесь с целевыми устройствами и регулярно измеряйте производительность в процессе разработки

• Как можно больше запекайте и как можно меньше рассчитывайте в реальном времени

• Держите в разумных пределах количество материалов, полигонаж, размер текстур

• Используйте сжатие текстур• Избегайте использования alpha cutout шейдеров• Уменьшайте количество прозрачной геометрии• Используйте LODs• Используйте мобильные шейдеры• Подходите к процессу оптимизации творчески

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

fb.me/adezhurko

Спасибо за внимание

www.heyworks.com

Александр ДежуркоCTO