Игры для мобильных устройств

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Vg icon.svg
Часть серии:
Компьютерные игры
п·о·р

Моби́льная игра́ — игровая программа для мобильных устройств, например сотовых телефонов, смартфонов, коммуникаторов, КПК и прочих (за исключением ноутбуков).

На данный момент особенно распространены мобильные игры для платформы Java Micro Edition. Эту платформу поддерживают большинство современных мобильных устройств, в том числе большинство сотовых телефонов стандарта GSM, используемого в России.

Технологии[править | править вики-текст]

Установка игр в мобильный телефон осложняется такими техническими ограничениями:

  • Во время игры телефон должен выполнять свою основную функцию — поддерживать связь с базовой станцией.
  • Деструктивная программа, если ей дать возможность выполнять любые действия, может похитить и конфиденциальные данные, и хранящиеся на счету деньги.
  • Слабый процессор телефона и маленький объём оперативной памяти.

Поэтому существует несколько технологий мобильных игр.

На машинном коде[править | править вики-текст]

Решения на машинном коде изначально ориентированы на определённую платформу. Поэтому такие игры показывают самый высокий уровень производительности и используют все мультимедийные возможности аппарата, но недоступны для других платформ.

Игра в составе прошивки[править | править вики-текст]

Исторически первая, простейшая технология написания мобильных игр — на машинном коде в составе прошивки устройства. Такие игры существуют даже для дешёвых телефонов; однако такие игры невозможно заменить или удалить без исходных кодов прошивки.

Игры для смартфонов и КПК[править | править вики-текст]

В смартфонах и карманных компьютерах применяются устанавливаемые игры на машинном коде (как на обычных компьютерах), например, игры для N-Gage. Как и любая другая программа, такая игра может содержать деструктивный код. С этим борются с помощью сертификации игр, однако не все производители или издатели могут позволить себе это, а иногда расходы на сертификацию могут стать причиной более высокой цены на игру.

На промежуточных кодах[править | править вики-текст]

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

J2ME[править | править вики-текст]

Sun J2ME (Java 2 Micro Edition, в просторечии Java) — одно из самых распространённых средств для разработки игр для мобильных телефонов. Лёгкость портирования позволяет выпускать одну и ту же игру на большое число различных устройств. Использование виртуальной машины для выполнения промежуточных кодов позволяет ограничить доступ приложения к данным телефона для повышения безопасности, однако это же зачастую приводит к снижению функциональности.

Несмотря на то, что промежуточный код предназначен для выполнения на большом количестве устройств, на разных телефонах реализации виртуальной машины и аппаратные спецификации могут отличаться. Это может привести к проблемам с совместимостью игры с различными устройствами, особенно при использовании разработчиками дополнительных библиотек. Например, различные устройства могут справляться по-разному с воспроизведением MMAPI при высоких нагрузках на мультимедийную подсистему, а некоторые могут не работать и вовсе. Другими распространёнными проблемами являются различное количество доступной распределённой памяти устройства и разные размеры дисплеев (на некоторых телефонах можно производить поворот экрана или осуществлять динамическое изменение разрешения дисплея), что также только добавляет проблем разработчикам.

iOS[править | править вики-текст]

Платформа от Apple, существует в виде телефонов и плееров от самого Apple. Мобильные игры пишутся на Objective C.

Android[править | править вики-текст]

Платформа от Google, существует в виде бесплатной ОС, используемой производителями телефонов. Мобильные игры пишутся на Java, позже в Android SDK появилась возможность делать это и на C++.

DoJa[править | править вики-текст]

DoCoMo DoJa — альтернативный набор Java-библиотек (Java-профиль), несовместимый с J2ME. Распространён в Японии.

BREW[править | править вики-текст]

Qualcomm BREW (Binary Runtime Environment for Wireless) представляет собой специальную виртуальную машину, оптимизированную под скорость и небольшой размер. Распространён в США. Под BREW можно программировать на Си или на Java. Появившись позже J2ME, BREW избежал большинства проблем, присущих Java-платформе. BREW имеет большую скорость выполнения промежуточного хода, встроенную защиту от копирования и более жесткую стандартизацию. SDK бесплатен, но в свою очередь для конечного продукта необходима дорогостоящая сертификация в Qualcomm, а для отладки — специальное устройство.

Mophun[править | править вики-текст]

Synergenix Mophun (искажённое More fun).

С технической точки зрения, Mophun превосходит J2ME. Тесты, которые провели независимые компании, показали, что в устройстве, где Mophun выдает 60 MIPS, J2ME показывает 400 KIPS (это означает в 150 раз медленнее). Synergenix также добавляет, что в некоторых устройствах некоторые подсистемы используют не код виртуальной машины, а нативный код процессора телефона, а это значит, что скорость может достигать 90 % максимальной способности ЦП телефона (например, 90 MIPS для модели с производительностью 100 MIPS при работе с нативными программами). Полноценная Mophun-машина была в мобильных телефонах Sony Ericsson T230, Sony Ericsson T300 и Sony Ericsson T310. Полноценная Mophun-машина и лишь номинальная поддержка J2ME были в мобильном телефоне Sony Ericsson T610. Впрочем, через некоторое время сама компания Sony Ericsson отказалась от поддержки Mophun.

Жанры[править | править вики-текст]

Подавляющее большинство игр написано в жанре «аркада» и «головоломка». Изредка встречаются представители других жанров. Основным ограничением для «разнообразия жанров» является устройство ввода. Например, для удобной игры в 3D-шутер желательна возможность одновременного наведения на цель и стрельбы — использование двух клавиш одновременно, что затруднено на маленьких клавиатурах мобильного телефона, а стратегии в реальном времени изначально ориентировались на управление джойстиком или компьютерной мышью.

В конце 2000-х годов распространились сенсорные телефоны «а-ля iPhone», на них основным жанром стала физическая головоломка (Angry Birds, Cut the Rope).[источник не указан 595 дней]

Чтобы привлечь потенциального покупателя, зачастую выпускаются мобильные игры с использованием известного бренда (например, Doom RPG), по мотивам недавно появившегося фильма или полноценной видеоигры, или с использованием обнажённой натуры[источник не указан 1321 день].

Портирование игр[править | править вики-текст]

Для того, чтобы игра могла приносить прибыль, важно, чтобы её поддерживало большое количество телефонов. При этом технические особенности разных аппаратов сильно различаются: например, максимально возможный размер приложения или объём ОЗУ. Обычно пишут игру для некоторого «среднего» телефона, а затем модифицируют под остальные.

  • Для переноса между платформами изменяется размер экрана и коды клавиш, подключаются те библиотеки, которые поддерживает телефон.
  • Для переноса на менее функциональное устройство из целевого продукта может быть удалено мультимедийное содержимое (например, уменьшено число игровых уровней или уменьшено качество графики).
  • Для переноса на более функциональное могут добавляться какие-либо видеоэффекты (как правило, не влияющие на геймплей).

Для отладки конечного продукта может использоваться эмулятор (наиболее дешёвый вариант) или настоящие устройства (более дорогостоящий, но надёжный вариант). Почти у всех компаний-разработчиков есть инструментарий, упрощающий портирование. Как правило, он является коммерческой тайной, хотя существуют коммерческие решения (напрмер Celsius) и доступные бесплатно для некоммерческого использования (например J2ME Polish).

Защита от копирования[править | править вики-текст]

В большинстве телефонов можно, легально скачав игру, скопировать JAR-файл с телефона на компьютер и затем распространять. Поэтому некоторые игры защищаются от копирования.

Помимо закрытия пиратских сайтов, встречаются такие технологии защиты:

  • Генерация уникального JAR’а: каждый раз, когда пользователь закачивает игру, для него генерируется уникальный JAR- или JAD-файл. Используется крайне редко.
  • Различные технологии активации игры (через GPRS, SMS или по телефону). Недостаток этой технологии в том, что у производителя или распространителя должна работать круглосуточная служба активации. Кроме того, защита отнимает несколько килобайт памяти телефона. Однако эта технология наиболее прочна для взлома.
  • Привязка к модели телефона: JAR работает на одной модели телефона, а на других (даже совместимых) отказывает. Получается, что скопированная игра будет работать только на той модели телефона, что и у распространившего. Этот метод особенно эффективен, если на одной платформе создано большое число совместимых телефонов (как, например, Nokia, Motorola, Siemens).

Своеобразной защитой от копирования является большое количество портов на плохо совместимые между собой платформы. Часто владелец мобильного телефона после долгих поисков находит игру, конвертированную с другого телефона без наличия исходных текстов: с пиктограммой, не соответствующей телефону, с размером экрана, бо́льшим или меньшим, чем надо, с недостаточным количеством графики и без звука.

На стадии внедрения находится стандарт OMA DRM. Кроме того, во многих телефонах запрещена перекачка любых Java-файлов на компьютер.

Известные производители мобильных игр[1][править | править вики-текст]

Крупные международные игроки:

Из России:

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Нургалиев, Есбол Мобильные игры - основные участники и перспективы отрасли (рус.). 3DNews (17 марта 2009). Проверено 6 февраля 2010.

Ссылки[править | править вики-текст]