Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

проблемы переносимости

КРИС КАСПЕРСКИ АКА МЫЩЪХ

Спецвыпуск: Хакер, номер #064, стр. 064-046-1


НА МОБИЛЬНЫЕ УСТРОЙСТВА

РЫНОК МОБИЛЬНЫХ ИГР РАСТЕТ ВЗРЫВООБРАЗНО, А ВМЕСТЕ С НИМ РАСТЕТ И ИНТЕРЕС ПРОГРАММИСТОВ. ЛАКОМЫЙ КУСОК РЫНКА! ПРАКТИЧЕСКИ ВСЯКИЙ, КТО ХОТЯ БЫ ОДИН РАЗ СОЗДАВАЛ ИГРУ ДЛЯ ПК, НАЧИНАЕТ ПОГЛЯДЫВАТЬ В СТОРОНУ СОТОВЫХ ТЕЛЕФОНОВ. РАЗРАБОТКА ИГР ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ — ЗАНЯТИЕ ДЕЙСТВИТЕЛЬНО НЕСЛОЖНОЕ, НО В НЕМ ЕСТЬ НЮАНСЫ

Многообразие «железа» под IBM PC доставляет множество неприятностей и буквально сводит разработчиков с ума, но это ничто по сравнению с миром мобильных устройств. Меняется не только архитектура процессора, объем памяти, глубина цветности, но даже геометрия дисплея и расположение кнопок, что ужесточает требования к дизайну — чертовски трудно создать игру, которая сохраняла бы свою привлекательность на устройствах всего спектра. Никакой стандартизацией здесь и не пахнет.

Карманные компьютеры, позиция которых еще вчера казалась несокрушимой, сегодня сходят со сцены, уступая места «смартфонам» — сотовым телефонам с функциями КПК. Мощность процессоров и объемы памяти растут не по дням, а по часам. Цветной дисплей и графический акселератор — уже не редкость, а насущная необходимость. Прошли времена, когда пользователь был доволен тем, что установил на сотовый телефон «Пасьянс» или «Дурак», и теперь народ требует трехмерных игр с активной динамикой.

Основная проблема в том, что жизненный цикл мобильных устройств очень невелик, а их популяция крайне разнообразна. Так что разработка игры для одной конкретно взятой модели, скорее всего, не окупится, и придется заняться ее портированием на другие платформы. Так что ставим себе задачу провернуть достаточно хитрую и коварную операцию, причем планируем ее заранее.

Платформы для разработчиков

j2me

Подавляющее большинство мобильных приложений (по некоторым оценкам, аж до 70%) пишутся на Java (а точнее J2ME — расшифровывается как Java 2 Micro Edition) — урезанной версии языка, ориентированной на маломощные системы и поддерживающей рекордное количество мобильных устройств. Вместо «живого» машинного кода сотовому телефону подсовывают так называемый «байт-код», который исполняется на виртуальной машине (Virtual Machine, сокращенно VM). Разработкой VM занимается компания Sun (создатель языка Java) и сторонние поставщики, так как спецификации байт-кода открыты, а SDK (пакет программ и библиотек для разработчиков) бесплатен.

Теоретически, игра, написанная для одного сотового телефона, пойдет на любом устройстве, для которого есть соответствующая реализация VM. Даже на пылесосе и домофоне! На практике же выходит иначе. Прежде всего, производительность J2ME приложений крайне невелика, и вычислительной мощности даже самых быстрых телефонов может попросту не хватить для разработки динамичной игры. Чтобы преодолеть это ограничение, производители телефонов выпускают специальные высокопроизводительные библиотеки (попутно реализующие дополнительные возможности по работе с дисплеем и музыкой), несовместимые, однако, со стандартной виртуальной машиной, и поэтому непереносимые. Естественно, Sun не стоит на месте и продолжает наращивать потенциал мобильной Java. Достаточно сказать, что в MIDP 1.0 не было поддержи работы со спрайтами, и вплоть до появления MIDP 2.0 разработчикам приходилось делать это самим. Однако время уже упущено — на мобильную сцену ринулись конкуренты.

Содержание  Вперед на стр. 064-046-2