Wireless Mobile Device Programming © Kenjitsu Особенности разработки мобильных J2ME игр Michael Nikitin, Lead Programmer. Visit

Презентация:



Advertisements
Похожие презентации
Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.
Advertisements

Векторная графика. Пример, показывающий разницу между векторной и растровой графикой при увеличении.
Тема работы Архитектура игровых движков. Компьютерные игры Популярный вид развлечения среди широкой категории людей Появились в середине 40-х годов 20-го.
OpenGL и Direct3D сравнение стандартов Выполнил: Пенкин А. Группа И-204.
Java: современные технологии разработки ПО Вашенков О.Е. ООО «РСС», разработчик ПО.
ЧЕЛОВЕКО-МАШИННОЕ ВЗАИМОДЕСТВИЕ. ЧЕЛОВЕК - КОМПЬЮТЕР 2 Задача Человек Компьютер Решение задачи.
JavaScript JavaScript – объектно-ориентированный скриптовый язык программирования, разрабатываемый компанией Sun Microsystems. Является диалектом языка.
Использование языка Си для программирования ЦСП TMS320C67x.
ГРАФИКА ВЕКТОРНАЯ РАСТРОВАЯ ВЕКТОРНАЯ РАСТРОВАЯ При использовании растровой графики изображение описывается как совокупность точек различного цвета-
Подготовка компьютера к практической работе на языке Java Первый этап: установка платформы языка Второй этап: установка редактора.
Проблема переносимости приложений: сорок лет спустя SECR октября 2008 Алексей Хорошилов
Конференция «Платформа 2011» Онлайн-выставка решений партнеров.
Методология проектирования RAD МДК Раздел 1.
1 Платформа Java – обзор и перспективы развития Александр Зуев Sun Misrosystems 1.
Программное обеспечение компьютера. Компьютер без программного обеспечения и операционной системы – это бесполезный хлам, груда железа.
Создание Cut the Rope Семен Воинов, креативный директор - Zeptolab Ефим Воинов, технический директор - Zeptolab.
Орлов Никита. 5 Преимущества: Гарантированная доставка данных Устраняет дублирование при получении двух копий одного пакета Недостатки: Необходимость.
Тестирование игр: фан или тяжелый труд? Юля Нечаева, Innova Systems Aion.ru.
EXtreme Programming XP Тема 2. XP Заказчики определяют: объем работ; приоритеты; композиции версий; сроки выпуска версий. Разработчики определяют: оценку.
Работа с программами на языке JAVA. JAVA объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems. Приложения Java обычно.
Транксрипт:

Wireless Mobile Device Programming © Kenjitsu Особенности разработки мобильных J2ME игр Michael Nikitin, Lead Programmer. Visit Особенности разработки мобильных J2ME игр

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 2 Michael Nikitin, Lead Programmer. Visit GameDev – что это такое? Игры любят все! Не так ли? Gameplay - интерактивность, т.е. как игрок взаимодействует с игровым миром и как игровой мир реагирует на действия игрока Doom – геймплей в 3D мире, в котором игрок уничтожает монстров и собирает различные артефакты StarCraft – геймплей состоит в маневрировании юнитов на карте, в добыче ресурсов, построении войск и последующих битвах Civilization – геймплей в освоении мира, построении общества, открытии новых технологий и общении с другими обитателями мира Очень перспективная область. По оценкам маркетинговых исследований рынок мобильных игр за последующие 5 лет вырастет в раз. Kenjitsu успешно работает на рынке мобильных игр уже более 2х лет

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 3 Michael Nikitin, Lead Programmer. Visit Компания Kenjitsu Основана в 2002г. Позиционирует себя как «Leader in Game Development Outsourcing» Зарекомендовала себя как надежный аутсорсинг- партнер и опытный разработчик игр Сотрудничает с крупными клиентами в Европе, США и Японии Штат состоит из профессионалов с большим опытом работы в игровой индустрии Увеличивает и развивает команду разработчиков

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 4 Michael Nikitin, Lead Programmer. Visit Как создаются игры? Какие бывают игры: аркады (гонки) RPG (MUD) стратегии шутеры паззлы спортивные игры

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 5 Michael Nikitin, Lead Programmer. Visit Различные платформы J2ME BREW Symbian Mophun ExEn WGE

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 6 Michael Nikitin, Lead Programmer. Visit J2ME J2ME почти рыночный стандарт и это та платформа, на которую ориентировано 70% игр для 90% устройств Разработка для J2ME чрезвычайно проста. SDK бесплатен, нет никаких расходов, связанных с лицензированием Большое число поддерживаемых устройств Короткий цикл разработки Для J2ME нет какой-то определенной бизнес-модели Портирование игр с одного телефона на другой В нашей фирме есть специальный Sales-отдел, занимающийся проблемами продвижения игр на рынке Разработано порядка 70 игр под эту платформу

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 7 Michael Nikitin, Lead Programmer. Visit BREW Binary Runtime Environment for Wireless «двоичная среда исполнения для беспроводных устройств» Программная платформа, позволяющая владельцам мобильных телефонов сравнительно быстро загружать приложения и работать с ними Разработчиком платформы стала американская компания Qualcomm - "прародитель" CDMA Оператору предоставляется возможность изъять или вернуть на доработку любое приложение, получившее негативную оценку клиентов В качестве составной части платформы BREW компания Qualcomm предлагает BREW SDK - инструментарий для обеспечения переносимости приложений Наша фирма зарегистрирована в Qualcomm Разработано около 10 игр под эту платформу

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 8 Michael Nikitin, Lead Programmer. Visit ExEn Execution Engine. Разработан In-Fusio, чтобы обойти ограничения, которые накладывает на игру платформа J2ME. Обеспечивает важные функции (масштабирование, панорамная прокрутка, трассировка лучей, вращения) Виртуальная машина примерно в 30 раз быстрее чем стандартная VM (хотя обычно выигрыш в производительности составляет от 10 до 15 раз) Бизнес-модель In-Fusio разделена на два уровня: «стандартный» и «премиум» Поддерживаемые телефоны: Philips Fisio 530/825, Alcatel OT 735/535/531, Panasonic X70/G60, Sagem myX-5/myG-5/myX-6

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 9 Michael Nikitin, Lead Programmer. Visit WGE Wireless Graphics Engine сделан TTPCom Несколько удобных API упрощают 2-3D программирование (включая управление фрагментами и функциональность отслеживания столкновений), предоставляют простой доступ к сетевым функциям и предоставляет звуковую поддержку Предоставляется бесплатный SDK Очень мало телефонов, поддерживающих этот движок Игр порядка 40

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 10 Michael Nikitin, Lead Programmer. Visit Mophun Mophun описывается своими создателями (Synergenix) как "карманная консоль на базе ПО" С технической точки зрения, у Mophun нет конкурентов. Тесты, которые провели независимые компании, показали, что в устройстве, где Mophun выдает 60 MIPS, J2ME показывает 400 KIPS (это означает в 150 раз медленнее) Бизнес-модель напоминает In-Fusio: после того, как игра сделана, Synergenix занимается сертификацией, продажей и маркетингом

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 11 Michael Nikitin, Lead Programmer. Visit Danger Hiptop device, Sidekick I и Sidekick II Компания Danger Используется своё Java Danger API, не имеющее ничего общего с J2ME Экран 240х160, 32 Мб heap Разработано около 20 игр под эти устройства

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 12 Michael Nikitin, Lead Programmer. Visit Этапы создания игр Проектирование Кодирование + создание графики Компиляция и упаковка Тестирование на телефоне Кажется, что игру сделать довольно просто... Однако это не так! Многое зависит от профессионализма художника Большую роль играет наличие опыта и креативности у программиста Программирование под мобильные телефоны имеет очень много подводных камней!

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 13 Michael Nikitin, Lead Programmer. Visit Плюсы и минусы для команд Плюсы для команды: Маленький коллектив (1+2+1) Лёгкость освоения MIDP Недолгосрочные проекты Много документации Массовость проектов Минусы для команды: Сложность перехода с других платформ Необходимость опыта и профессиональной компетенции

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 14 Michael Nikitin, Lead Programmer. Visit Средства разработки Eclipse 3.0, IDEA 4.5, NetBeans 4.0, Sun Studio One for J2ME, JBuilder J2ME Wireless Toolkit 2.2 Ant CVS Photoshop

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 15 Michael Nikitin, Lead Programmer. Visit Технические детали для Racer Из чего состоит игра: Инвариантность скорости игры по отношению к различным телефонам Механизмы перемещения по карте и её отрисовка Механизмы отображения спрайтов машинок Механизмы коллизий AI соперников Продвинутая физика (ускорения, заносы)

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 16 Michael Nikitin, Lead Programmer. Visit Как сделать одинаковую скорость? Вычисляется длительность предыдущего тика игры Вычисляется, сколько надо ждать потоку (до величины TICK_DURATION)

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 17 Michael Nikitin, Lead Programmer. Visit Отрисовка карты Абсолютные координаты объекта: (X, Y) Абсолютные координаты камеры: (cameraX, cameraY) Относительные координаты объекта: (X - cameraX, Y - cameraY)

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 18 Michael Nikitin, Lead Programmer. Visit Спрайты машинок В памяти хранится цельная картинка При отображении просто делается setClip() в нужную область экрана с шириной и высотой окна, соответствующему текущему спрайту

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 19 Michael Nikitin, Lead Programmer. Visit Коллизии в игре Коллизии с машинками – пересечение полигонов Узкое место – коллизии с тайлами Решение - накладывается виртуальная сетка коллизий Каждый проблемный тайл аппроксимируется простой геометрической фигурой

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 20 Michael Nikitin, Lead Programmer. Visit AI соперников Добавляются waypoint-ы AI машинки едут от waypoint-а к waypoint-у (по сути от поворота к повороту) Сложность: надо для каждой новой карты вручную расставлять waypoint-ы (их бывает много – до 60 штук)

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 21 Michael Nikitin, Lead Programmer. Visit Физика движения x y V Vx Vy Вектор скорости разбивается на составляющие - горизонтальные и вертикальные проекции: При движении значения и меняются в зависимости от направления движения, ускорения и тайла, по которому едем.

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 22 Michael Nikitin, Lead Programmer. Visit Особенности разработки Несоответствие эмулятора и реального телефона Большой размер jar-a Недостаток свободной памяти (heap) Низкая производительность (меньше 3-4 FPS) Медленная матрица перерисовки экрана

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 23 Michael Nikitin, Lead Programmer. Visit Разработка на эмуляторах Не все эмуляторы просто достать (кроме Nokia, Siemens, SonyEricsson – для всех этих телефонов с поддержкой Java эмуляторы достать просто) Эмулятор всегда отражает НЕ реальную ситуацию с памятью, производительностью, звуком и др. Нужно уметь загружать игры на телефоны и отлаживать на них Загрузка: WAP OTA (Over the Air) delivery и без помощи Интернета: Bluetooth, IRDA, Cable Отладка: вывод trace информации на экране телефона У некоторых инженерных версий есть консоль

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 24 Michael Nikitin, Lead Programmer. Visit Оптимизация Низкая производительность. Лучшее для оптимизации – функции отрисовки изображения. Например, если экран содержит 64 тайла, то: буферизация карты для дальнейшего переиспользования хранение копии части карты в памяти Нехватка памяти. Самая большая проблема, особенно на слабых J2ME устройствах. Маленькие хитрости: Использование функций поворота изображения Перенос массивов из кода в ресурсы Освобождение памяти после загрузки вступительных изображений Уменьшение графики

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 25 Michael Nikitin, Lead Programmer. Visit Так иногда бывает... Даже одно не так понятое слово заказчика к игре может коренным образом сказаться на архитектуре игры и возможно на её бюджете Пример: проект Magic Arcada. Сначала предполагалось делать снежные уровни горизонтальными, но к середине проекта выяснилось, что нужны наклонные уровни. Как итог: пришлось менять графику, движок карты, физику персонажей Учите английский!

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 26 Michael Nikitin, Lead Programmer. Visit Что нас ждёт? Через пару лет появятся совершенно другие телефоны и консоли с полноценной аппаратной поддержкой 3D-графики, с большими экранами, отличной производительностью и достаточной памятью Писать игры будет одно удовольствие!

© СПбГТУ ФТК ИУС © Copyright 2005 Wireless Mobile Device Programming Особенности разработки мобильных J2ME игр 27 Michael Nikitin, Lead Programmer. Visit Заключение Из моей презентации вы узнали: что такое игровая индустрия как писать игры разработка игр на J2ME не так уж сложна, однако есть нюансы существуют огромные перспективы роста производства мобильных игр Kenjitsu – одна из крупнейших компаний в Питере, ориентированных на разработку мобильных игр и имеющая огромный опыт в игровой индустрии