CodeFest 2011. Коротецкий М. — Особенности разработки игр...

Preview:

Citation preview

Особенности разработки игр для iOS, Android, PSP

Коротецкий Михаил,Ведущий разработчик Alawar Friday’s Games

О чем пойдет речь?

• Отличия разработки игр от разработки прикладного ПО

• Краткое сравнение iOS, Android и PSP• Подготовка графики под разные

разрешения/платформы• Особенности оптимизации игр для каждой

платформы

2

Игры vs прикладное ПО

• Ограниченные ресурсы• Память• Процессор (CPU)• Графический процессор (GPU)

• Рисованный интерфейс• Много разных разрешений экрана

• Набор графики под каждое разрешение

3

Примеры казуальных игр

4

5

Игры vs прикладное ПО

5

DeEn Es

Шрифты

Игры vs прикладное ПО

− API платформы для вывода графики и меню− Не удовлетворяет с точки зрения дизайна− Слишком медленно− Не кроссплатформенно

+ Использование низкоуровневых интерфейсов+ OpenGL ES (iOS, Android) для работы с графикой+ OpenAL (iOS), Java (Android) для работы со звуком

6

iOS, Android, PSP

7

Сравнительные характеристики устройств

iOS Android PSP

Разрешения экранов:

3 варианта множество(4 основных)

1 вариант

Аппаратных конфигураций:

несколько множество 1 вариант

Программных прошивок:

2 основных Огромное множество

Не имеет значения

8

Сравнительные характеристики устройств

iOS (iPod 2, iPhone 2G)

Android (Google G1)

PSP

CPU 400MHz ARM 528MHz ARM 222 Mhz

GPU tris/sec 572K 470K 33000K

GPU fillrate 26M 33M 664M

Memory 128mb 192mb 32mb

9

Аппаратные характеристики

Подготовка графики

• Исходная графика в «большом» формате• Разрешение экрана• Формат текстур• Формат звука• Специфика платформы (наличие тач-скрина

или джойстика)

10

Разрешения экранов iOS устройств

• 3 набора графики• 480x320 – iPhone: 1–3GS;

iPod touch: 1, 2, 3• 960x640 – iPhone 4, iPod touch 4• 1024x768 – iPad

• 2 дистрибутива (1 в случае Universal версии)• 480x320, 960x640 – iPhone, iPod touch• 1024x768 – iPad

11

Разрешения экранов Android устройств

• 4 набора графики• 480x320• 800x480• 854x480• 1024x600

• 1 дистрибутив• Подходящий набор графики загружается при

старте приложения• Для некоторых store’ов нужен отдельный

дистрибутив под каждое разрешение

12

Разрешения экрана PSP

• 1 набор графики• 480x272

• 1 дистрибутив

• Big-endian архитектура

13

Почему оптимизация важна?

Оптимизация

14

«Тормозит» «Вылетает»

Общие принципы оптимизации

• Экономить память (ее постоянно не хватает, сильно не хватает)

• По возможности использовать сжатые форматы текстур

• Ничего не загружать во время геймплея• Ничего не создавать во время геймплея

(кэшировать на этапе загрузки)• Минимизировать обращение к flash памяти

• Загружать короткие звуки в оперативную память

15

Общие принципы оптимизации

• Простые способы ускорить приложение• Отключить RTTI• Отключить C++ Exceptions

• Самая главная ошибка• Принудительная синхронизация CPU и GPU ведет

к потере производительности до 50 %

Оптимизация игр для iOS и Android

• Минимизация количества полигонов на сцене• Минимизация количества объектов на сцене• Использование сжатых форматов текстур

• ETC1 (Android)• стандарт на OpenGL ES 2.0• нет поддержки альфа-канала -> использование двух

текстур с последующей распаковкой в шейдере

• PVRTC (iPhone, Android)• ATITC (Android)• S3TC (DXT) (Android)

17

Оптимизация игр для iOS и Android

• Минимизация OpenGL ES вызовов• Упаковка текстур в одну – две большие• Упаковка геометрии в один вертексный буфер

и отрисовка за один DIP (iOS prooved)• Минимизация использования альфа-блендинга

и альфа-теста (на gpu PowerVR MBX, SGX)

18

19

Особенности PSP

• Один экран, одно железо• Слишком мало памяти – 32 mb, реально 19mb• Слабый CPU• Мощный, но устаревший GPU

• Нет поддержки шейдеров, только FFP• Нет поддержки мультитекстуринга

20

Оптимизация игр для PSP

• Использование сжатых форматов текстур (S3TC) - обязательно

• Минимизация использования ОП• Оптимизация в целом(слабый процессор)

21

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

Коротецкий Михаил korotetsky@fridays.alawar.com

Ирина Подчернина: podchernina@alawar.com

Ольга Плехова: plehova@alawar.com

22