1 / 27

Особенности разработки мобильных J2ME игр

Особенности разработки мобильных J2ME игр. GameDev – что это такое?. Игры любят все! Не так ли? Gameplay - интерактивность, т.е. как игрок взаимодействует с игровым миром и как игровой мир реагирует на действия игрока

lynne
Download Presentation

Особенности разработки мобильных J2ME игр

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Особенности разработки мобильных J2ME игр Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  2. GameDev – что это такое? • Игры любят все! Не так ли? • Gameplay - интерактивность, т.е. как игрок взаимодействует с игровым миром и как игровой мир реагирует на действия игрока • Doom – геймплей в 3D мире, в котором игрок уничтожает монстров и собирает различные артефакты • StarCraft – геймплей состоит в маневрировании юнитов на карте, в добыче ресурсов, построении войск и последующих битвах • Civilization – геймплей в освоении мира, построении общества, открытии новых технологий и общении с другими обитателями мира • Очень перспективная область. По оценкам маркетинговых исследований рынок мобильных игр за последующие 5 лет вырастет в 15-20 раз. • Kenjitsu успешно работает на рынке мобильных игр уже более 2х лет Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  3. Компания Kenjitsu • Основана в 2002г. • Позиционирует себя как «Leader in Game Development Outsourcing» • Зарекомендовала себя как надежный аутсорсинг-партнер и опытный разработчик игр • Сотрудничает с крупными клиентами в Европе, США и Японии • Штат состоит из профессионалов с большим опытом работы в игровой индустрии • Увеличивает и развивает команду разработчиков • http://www.kenjitsu.net Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  4. Как создаются игры? • Какие бывают игры: • аркады (гонки) • RPG (MUD) • стратегии • шутеры • паззлы • спортивные игры Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  5. Различные платформы • J2ME • BREW • Symbian • Mophun • ExEn • WGE Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  6. J2ME • J2ME — почти рыночный стандарт и это та платформа, на которую ориентировано 70% игр для 90% устройств • Разработка для J2ME чрезвычайно проста. SDK бесплатен, нет никаких расходов, связанных с лицензированием • Большое число поддерживаемых устройств • Короткий цикл разработки • Для J2ME нет какой-то определенной бизнес-модели • Портирование игр с одного телефона на другой • В нашей фирме есть специальный Sales-отдел, занимающийся проблемами продвижения игр на рынке • Разработано порядка 70 игр под эту платформу Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  7. BREW • Binary Runtime Environment for Wireless — «двоичная среда исполнения для беспроводных устройств» • Программная платформа, позволяющая владельцам мобильных телефонов сравнительно быстро загружать приложения и работать с ними • Разработчиком платформы стала американская компания Qualcomm - "прародитель" CDMA • Оператору предоставляется возможность изъять или вернуть на доработку любое приложение, получившее негативную оценку клиентов • В качестве составной части платформы BREW компания Qualcomm предлагает BREW SDK - инструментарий для обеспечения переносимости приложений • Наша фирма зарегистрирована в Qualcomm • Разработано около 10 игрпод эту платформу Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  8. 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 Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  9. WGE • Wireless Graphics Engine сделан TTPCom • Несколько удобных API упрощают 2-3D программирование (включая управление фрагментами и функциональность отслеживания столкновений), предоставляют простой доступ к сетевым функциям и предоставляет звуковую поддержку • Предоставляется бесплатный SDK • Очень мало телефонов, поддерживающих этот движок • Игр порядка 40 Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  10. Mophun • Mophun описывается своими создателями (Synergenix) как "карманная консоль на базе ПО" • С технической точки зрения, у Mophun нет конкурентов. Тесты, которые провели независимые компании, показали, что в устройстве, где Mophun выдает 60 MIPS, J2ME показывает 400 KIPS (это означает в 150 раз медленнее) • Бизнес-модель напоминает In-Fusio: после того, как игра сделана, Synergenix занимается сертификацией, продажей и маркетингом Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  11. Danger • Hiptop device, Sidekick I и Sidekick II • Компания Danger • Используется своё Java Danger API, не имеющее ничего общего с J2ME • Экран 240х160, 32 Мб heap • Разработано около 20 игр под эти устройства Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  12. Этапы создания игр • Проектирование • Кодирование + создание графики • Компиляция и упаковка • Тестирование на телефоне Кажется, что игру сделать довольно просто... Однако это не так! • Многое зависит от профессионализма художника • Большую роль играет наличие опыта и креативности у программиста • Программирование под мобильные телефоны имеет очень много подводных камней! Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  13. Плюсы и минусы для команд Плюсы для команды: • Маленький коллектив (1+2+1) • Лёгкость освоения MIDP • Недолгосрочные проекты • Много документации • Массовость проектов Минусы для команды: • Сложность перехода с других платформ • Необходимость опыта и профессиональной компетенции Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  14. Средства разработки • Eclipse 3.0, IDEA 4.5, NetBeans 4.0, Sun Studio One for J2ME, JBuilder • J2ME Wireless Toolkit 2.2 • Ant • CVS • Photoshop Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  15. Технические детали для Racer Из чего состоит игра: • Инвариантность скорости игры по отношению к различным телефонам • Механизмы перемещения по карте и её отрисовка • Механизмы отображения спрайтов машинок • Механизмы коллизий • AI соперников • Продвинутая физика (ускорения, заносы) Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  16. Как сделать одинаковую скорость? • Вычисляется длительность предыдущего тика игры • Вычисляется, сколько надо ждать потоку (до величины TICK_DURATION) Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  17. Отрисовка карты • Абсолютные координаты объекта: (X, Y) • Абсолютные координаты камеры: (cameraX, cameraY) • Относительные координаты объекта: (X - cameraX, Y - cameraY) Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  18. Спрайты машинок • В памяти хранится цельная картинка • При отображении просто делается setClip() в нужную область экрана с шириной и высотой окна, соответствующему текущему спрайту Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  19. Коллизии в игре • Коллизии с машинками – пересечение полигонов • Узкое место – коллизии с тайлами • Решение - накладывается виртуальная сетка коллизий • Каждый проблемный тайл аппроксимируется простой геометрической фигурой Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  20. AI соперников • Добавляются waypoint-ы • AI машинки едут от waypoint-а к waypoint-у (по сути от поворота к повороту) • Сложность: надо для каждой новой карты вручную расставлять waypoint-ы (их бывает много – до 60 штук) Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  21. y V Vy Vx x Физика движения • Вектор скорости разбивается на составляющие - горизонтальные и вертикальные проекции: • При движении значения и меняются в зависимости от направления движения, ускорения и тайла, по которому едем. Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  22. Особенности разработки • Несоответствие эмулятора и реального телефона • Большой размер jar-a • Недостаток свободной памяти (heap) • Низкая производительность (меньше 3-4FPS) • Медленная матрица перерисовки экрана Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  23. Разработка на эмуляторах • Не все эмуляторы просто достать (кроме Nokia, Siemens, SonyEricsson – для всех этих телефонов с поддержкой Java эмуляторы достать просто) • Эмулятор всегда отражает НЕ реальную ситуацию с памятью, производительностью, звуком и др. • Нужно уметь загружать игры на телефоны и отлаживать на них • Загрузка: WAP OTA (Over the Air) delivery и без помощи Интернета: Bluetooth, IRDA, Cable • Отладка: вывод trace информации на экране телефона • У некоторых инженерных версий есть консоль Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  24. Оптимизация • Низкая производительность. Лучшее для оптимизации – функции отрисовки изображения. Например, если экран содержит 64 тайла, то: • буферизация карты для дальнейшего переиспользования • хранение копии части карты в памяти • Нехватка памяти. Самая большая проблема, особенно на слабых J2ME устройствах. Маленькие хитрости: • Использование функций поворота изображения • Перенос массивов из кода в ресурсы • Освобождение памяти после загрузки вступительных изображений • Уменьшение графики Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  25. Так иногда бывает... • Даже одно не так понятое слово заказчика к игре может коренным образом сказаться на архитектуре игры и возможно на её бюджете • Пример: проект Magic Arcada. Сначала предполагалось делать снежные уровни горизонтальными, но к середине проекта выяснилось, что нужны наклонные уровни. Как итог: пришлось менять графику, движок карты, физику персонажей • Учите английский! Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  26. Что нас ждёт? • Через пару лет появятся совершенно другие телефоны и консоли с полноценной аппаратной поддержкой 3D-графики, с большими экранами, отличной производительностью и достаточной памятью • Писать игры будет одно удовольствие! Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

  27. Заключение • Из моей презентации вы узнали: • что такое игровая индустрия • как писать игры • разработка игр на J2ME не так уж сложна, однако есть нюансы • существуют огромные перспективы роста производства мобильных игр • Kenjitsu – одна из крупнейших компаний в Питере, ориентированных на разработку мобильных игр и имеющая огромный опыт в игровой индустрии Michael Nikitin, Lead Programmer. Visit http://www.kenjitsu.net

More Related