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

Post on 11-Nov-2014

1.296 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

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

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

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

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

примерах

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

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

№ 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

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

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

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

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

IMR vs TBDR

IMR (Immediate Mode Rendering)

TBDR (Tile Based Deferred Rendering)

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

• CPU• Vertex • Fragment• Bandwidth

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

• Static batching• Dynamic batching• Occlusion culling

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

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

Fragment

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

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

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

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

Pocket Troops: Lightmaps & Light probes

Pocket Troops: Fake Reflection

Pocket Troops: Atlasing & Gradient Mapping

Pocket Troops: Fake Glow & Shafts

Pocket Troops: Fake Shadows & Flashs

Выводы

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

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

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

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

fb.me/adezhurko

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

www.heyworks.com

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

top related