22
Особенности разработки игр для iOS, Android, P SP Коротецкий Михаил, Ведущий разработчик Alawar Friday’s Games

CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

Embed Size (px)

Citation preview

Page 1: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

Page 2: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

платформы

2

Page 3: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

3

Page 4: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

4

Page 5: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

5

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

5

DeEn Es

Шрифты

Page 6: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

6

Page 7: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

iOS, Android, PSP

7

Page 8: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

iOS Android PSP

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

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

1 вариант

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

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

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

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

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

8

Page 9: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

Page 10: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

10

Page 11: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

Разрешения экранов 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

Page 12: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

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

12

Page 13: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

13

Page 14: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

Оптимизация

14

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

Page 15: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

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

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

15

Page 16: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

Page 17: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

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

17

Page 18: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

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

18

Page 19: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

19

Page 20: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

20

Page 21: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

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

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

21

Page 22: CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP

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

Коротецкий Михаил [email protected]

Ирина Подчернина: [email protected]

Ольга Плехова: [email protected]

22