Просто о сложном: Как создаются игры для мобильных телефонов J2ME? Часть 1. Программист

MForum.ru

Просто о сложном: Как создаются игры для мобильных телефонов J2ME? Часть 1. Программист

14.12.2005, MForum.ru

С вопросом, вынесенным в заголовок публикации, редакция MForum.ru обратилась к специалистам компании Media Mobile. Читайте увлекательный рассказ о том, "как это делается" и что нужно знать тому, кто собирается заняться разработкой игр для мобильников.


Хотя простенькую игрушку для своего мобильного может написать едва ли не любой программист, для создания и продвижения полноценной игры для мобильного устройства, телефона, смартфона или КПК требуется целая команда:

  • Сценарист
  • Программист
  • Художник
  • 3D-художник, аниматор
  • Тестер
  • Менеджеры

В этой команде все незаменимы! Сценарист придумывает сюжет игры, разрабатывает гейм-плей, при этом он учитывает особенности, возможности и недостатки мобильных устройств. Программист пишет код игры, ориентируясь на сценарий и гейм-плей. Художники - тут все ясно из названия, это они создают облик персонажей, реализуют в деталях задуманные миры и сцены, делают игру по-настоящему красивой и привлекательной. Тестер - это не прибор, а человек, задача которого проверить, как игра работает непосредственно на мобильном устройстве, телефоне или КПК, да не на одном, а на нескольких десятках, а то и сотнях. Менеджеры "раскручивают" и продают все то, что сделали остальные члены команды, без них даже о самой лучшей игре скорее всего так никто и не узнал бы.

В двух статьях, которые MForum предлагает вашему вниманию, мы остановимся на работе программиста и художников.

Программист

Что же нужно знать и уметь, чтобы начать писать приложения для мобильных устройств? Прежде всего, отметим, что в мире для программирования мобильных устройств чаще всего используется так называемая платформа Java, точнее ее версия специально для мобильных устройств Java 2 Micro Edition (сокращенно J2ME). Особенность этой платформы в том, что она обеспечивает, до определенной степени, так наываемую "переносимость приложений" между мобильными устройствами, отличающимися аппаратной и программной начинкой. Разработала эту платформу компания Sun. Почему Java называют платформой, а не языком программирования? Потому, что выполняя Java-программу, мобильное устройство сначала компилирует исходный текст программы в промежуточный код, его еще называют байт-кодом. Этот код, по задумке разработчиков, является платформо-независимым, т.е. его должно быть способно исполнить любое устройство, поддерживающее Java, выполняя закодированные команды с помощью интерпретатора Java. J2ME позволяет использовать концепцию платформы Java для портативных устройств, т.е. написанная для одного устройства программа, в теории должна годиться и для множества других устройств, где также реализована поддержка J2ME.

Для работы в каких устройствах разработана J2ME? Как правило, это мобильные телефоны, смартфоны и КПК, т.е. устройства на базе 16-ти или 32-разрядных микропроцессоров, объем памяти которых составляет не менее 160 Кб. Устройства должны соответствовать конфигурации Connected Limited Device Configuration (CLDC), подразумевающей сохранение таких концепций Java, как переносимость кода в любое время и в любое место, гибкость размещения, безопасную работу в сети и устойчивость кода. Необходимой составляющей J2ME CDLC является облегченная Java Virtual Machine(JVM), называемая K Virtual Machine (KVM). KVM разработана для ограниченных по ресурсам сетевых устройств, имеющих небольшой объем памяти.

Но, "гладко было на бумаге...", в реальности все не так безоблачно, принцип “написано однажды, работает везде” характерный для Java, не совсем верен для J2ME. Проблема заключается в том, что производители устройств, в попытке предоставить программистам более широкий доступ к своим устройствам, позволяют использовать специфические библиотеки, имеющие мало общего со стандартом. Использование уникальных для данной конкретной модели особенностей, а также учет быстродействия, размера экрана и объема доступной памяти конкретного устройства приводит к том, что для каждой серии мобильных телефонов нужна своя версия приложения (игрушки или полезной программы), оптимизированная под данное устройство. На профессиональном жаргоне эти версии программ называют "портами", а сам процесс адаптации одной программы к разным устройствам - "портированием".

Программировать можно вручную, например, в обычном блокноте или в отладчике, но для удобства программистов созданы и успешно применяются так называемые IDE (интегрированная среда разработки), специальные инструменты,  в которых писать исходный код гораздо удобнее. На данный момент таких продуктов достаточно много, но самые известные NetBeans, IDEA, Eclipse. Каждая имеет свои достоинства и недостатки, о которых узнаешь в процессе работы.

Программисту под J2ME следует помнить, что в его распоряжении весьма ограниченные "аппаратные" ресурсы, так что остро стоит проблема оптимизации программного кода, в основном, приходится оптимизировать расход памяти под загружаемые ресурсы (особенно картинки). Но и исполняемый код может занимать слишком много места. Для "тяжелых случаев", когда требуется "ужать" чересчур большой jar-файл с кодом программы, используются (еще одно жаргонное слово, не пугайтесь!) "обфускаторы" (ProGuard – самый известный), они позволяют значительно уменьшить размер jar-файла. В некоторых случаях помогает более сильное архивирование содержимого jar-файла с исправлением jad-файла.

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

Вот список ресурсов, которые можно сравнить с "настольной книгой" для разработчика программ на J2ME.

Nokia – http://forum.nokia.com  – пожалуй лучший сайт для разработчиков. SonyEricsson – http://developer.sonyericsson.com/  
Samsung - http://developer.samsungmobile.com  
Motorola - http://motocoder.com/motorola/pcsHome.jsp  
Siemens - http://www.siemens-mobile.com/developer  
Alcatel - http://www.my-onetouch.com/onetouch/ahead/index.jsp  
LG - http://java.ez-i.co.kr/wire/index.asp  
LGemulators - http://www.mobilelab.co.kr/  

Для российских разработчиков ресурсов крайне мало. Отметим тематические форумы:

Juga http://forum.juga.ru  ,
MGDS http://www.mgdc.ru/ ,

а также некоторые сайты, посвященные программированию под мобильные устройства, скажем, http://mobilab.ru . Начинающим будет полезно прочитать книгу "Платформа программирования j2me для портативных устройств" Вартана Пирумяна.

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

Справка MForum: Компания MediaMobile была образована в 2004 году, расставляя приоритеты в своей работе следующим образом:
- производство игр для мобильных телефонов на платформе J2Me, Brew, i-Mode;
- разработка Flash-игр для крупнейших игровых порталов;
- создание трёхмерных моделей предметов и персонажей для компьютерных игр.
Среди "немобильных" работ компании можно отметить создание трёхмерных моделей окружения (дома, деревья, предметы и т.д.) и персонажей для компьютерных игр "Сфера" и "Дальнобойщики Tycoon" (рабочее название) компании Nikita. Осенью 2004 года при содействии компании "Руссобит-М" на рынок вышел сборник логических и развивающих игр для детей - "Фабрика Игр".

У вас есть вопросы к авторам материала по теме "программирование на J2ME"? Спрашивайте в форуме под статьей, а мы попробуем получить ответы у специалистов компании MediaMobile.

© "Мобильный форум"

Обсуждение (открыть в отдельном окне)

14.12.2005 17:01 От: анонимно

ЖЖОТЕ! ржунимогу

Марс

14.12.2005 17:05 От: анонимно

Исправлением jad'a менять размер jar'a, телефоны, компилирующие Java в байт-код, абзац про то, что Java это не язык программирования - это просто шедевры, а горжусь вами ребята, аффтар аццкий сотона

Мы ржали уже с названия "просто о сложном" применимо к J2ME =)

Марс

14.12.2005 17:09 От: анонимно

АФИГЕННО ХАЧУ работать в MediaMobile, которые могут так программировать. Где достать методику правки jad"а???

гарольд

14.12.2005 17:10 От: анонимно

Ребят.. не гоните. Там было сказано что обфускатор заодно редактирует jad. А так в общем реально бесполезная статья.

Кадр

14.12.2005 17:14 От: анонимно

запутанно как-то сказано. невпопад как-то сказано...

гарольд

14.12.2005 17:20 От: анонимно

Следим за развитием событий... Пока ломаем голову, над тем как обфускатор редактирует jad

Марс

14.12.2005 17:22 От: анонимно

что в аймоде?

А че интересного в i-mode, на какие сайты тыкаться, чтоб узнать?

гарольд

14.12.2005 17:26 От: анонимно

Вот вопросы про i-mode к специалистам соответствующей компании: делаете ли вы игры на DoJa, сколько их реально уже вами было сделано, у каких операторов они были запущены, для каких девайсов были адаптированы? =)

(и ко всем)

Сколько компаний в РФ, этим занимающимся (разработка/портирование на DoJa) вы знаете?

Марс

14.12.2005 17:34 От: анонимно

а что такое http://mgds.ru/board - не открываицца

гарольд

14.12.2005 17:39 От: анонимно

Парочку я точно знаю... Но вообще у нас это пока не приняло широкого масштаба.

Кадр

14.12.2005 17:40 От: анонимно

Это называется кривая сЦылка. Прально так: http://www.mgdc.ru/

Кадр

14.12.2005 17:41 От: анонимно

для лыж тока LG - http://java.ez-i.co.kr/...asp... LGemulators - http://www.mobilelab.co.kr/

но оба на краказямбе, а норамльные есть?

гарольд

14.12.2005 17:48 От: анонимно

Так тем более и интересно :) Я знаю одну такую компанию [Эс Пи Эл Си =) ], узнать про ее конкурента уже было бы весьма ценным для меня знанием

Марс

14.12.2005 17:55 От: анонимно

Спасибо

работает! интересна. читаю

гарольд

14.12.2005 22:48 От: анонимно

ахтунг

аффтар випий йад! с такими "глубокими" познаниями в J2ME не то что нельзя писать что-нибудь, а даже планировать опасно! неужели аффтар думает, что человек, не знакомый даже с основными понятиями сможет создать хорошую команду разработчиков J2ME??

и дайте ссылку хоть на одну свою игру!

ждемс...

кандедат б.. наук

14.12.2005 22:52 От: аноним

Re: что в аймоде?

Ничего в I-mode.. Разве что I-mode телефоны поддерживают не J2ME с ее MIDP, a DOJA.. Если о самой технологии - зайди на сайт МТС - не уверен, но там в разделе, посвященном этой ботве есть что-то похожее на i-mode - браузер

15.12.2005 14:43 От: анонимно

Официальное

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

Екатерина Троепольская GFI Mobile

16.12.2005 07:56 От: анонимно

непонятно

Непонятно вообще, для кого эта статья написана, Ссылки - это не главное, а остальное - очень слабо... Толку от неё - только профессионалы взять смогут, но читать они не будут, потому что лажа, а остальных только в заблуждение введет... имхо.

alex_ez

16.12.2005 09:04 От: анонимно

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

Я не специалист и не представлял, кае это делается, а теперь примерно понял.

Камбио

16.12.2005 13:30 От: анонимно

CLDC 1.0

Пишу проект, нужно будет исопльзовать числа типа double/float. Выход проекта намечается на сентябрь 2006 года. В связи с этим вопрос... Имеет ли смысл писать на CLDC 1.0 (тем самым будет увеличен объем проекта, или я не прав)? Т.е. просто создать свой пакет (класс) чисел с ФИКСИРОВАННОЙ запятой, или же сразу писать с использованием CLDC 1.1?

Просто с одной стороны мобильные телефоны с поддержкой CLDC 1.0 не вымирут к тому времени, но и, наверняка, все производители будут выпускать м/телеофны с CLDC 1.1... Что происходит уже сейчас...

Спасибо!

Wild Child

16.12.2005 15:59 От: анонимно

Re: CLDC 1.0

На данный момент, практически для всех приложений можно обойтись целыми числами. Если этого никак сделать нельзя , то можно написать свои функции (синус, косинус, корень).. тем самым расширив линейку телефонов.. А все производитель сейчас врят ли бросятся выпускать телеофны с CLDC 1.1.

Екатерина Троепольская GFI Mobile (katarina@gfi.su)

22.01.2007 13:47 От: DmitryBabak

LG + SMS

Кто-нибудь работал с SMS на аппаратах LG. Не подкинете информацию? Спасибо


Новое сообщение:
Complete in 36 ms, lookup=0 ms, find=36 ms

Последние сообщения в форумах

Все форумы »



Поиск по сайту:

Подписка:

Подписаться
Отписаться


Новости

23.12. [Новинки] Анонсы: Представлен Ulefone Armor X31 Pro с экраном 120 Гц, камерой ночного видения и аккумулятором емкостью 6050 мА•ч / MForum.ru

23.12. [Новинки] Анонсы: Представлен Honor GT со Snapdragon 8 Gen 3, IMX906 и зарядкой мощностью 100 Вт / MForum.ru

23.12. [Новинки] Анонсы: Honor Pad V9 с 11,5 дюймовым дисплеем представлен официально / MForum.ru

20.12. [Новинки] Слухи: HMD Global работает над смартфоном под кодовым названием «Orka» / MForum.ru

20.12. [Новинки] Слухи: Раскрыты ключевые характеристики Vivo Pad 4 Pro / MForum.ru

19.12. [Новинки] Анонсы: Poco C75 5G доступный 5G-смартфон на Snapdragon 4s Gen 2 / MForum.ru

19.12. [Новинки] Анонсы: Poco M7 Pro 5G — 5G-смартфон за 15 000 рупий / MForum.ru

18.12. [Новинки] Анонсы: Moto G05 с чипсетом Helio G81 представлен официально / MForum.ru

18.12. [Новинки] Анонсы: Motorola представила смартфоны с емкими АКБ – Moto G15 и G15 Power / MForum.ru

18.12. [Новинки] Анонсы: Представлен Motorola Moto E15 с Android 14 Go / MForum.ru

17.12. [Новинки] Анонсы: Классические телефоны Nokia получают обновление 2025 года / MForum.ru

16.12. [Новинки] Слухи: Poco X7 и X7 Pro замечены на рендерах / MForum.ru

16.12. [Новинки] Анонсы: Lava O3 Pro появился на Amazon India / MForum.ru

13.12. [Новинки] Анонсы: Huawei FreeBuds Pro 4 стали первым устройством бренда Huawei Sound / MForum.ru

13.12. [Новинки] Анонсы: Серия Huawei Nova 13 выходит на мировой рынок / MForum.ru

13.12. [Новинки] Слухи: Раскрыты подробности о китайской версии Vivo Y300 5G / MForum.ru

12.12. [Новинки] Слухи: Раскрыты полные спецификации Google Pixel 9a / MForum.ru

12.12. [Новинки] Это интересно: Vivo создаст новый суббренд в следующем году / MForum.ru

11.12. [Новинки] Анонсы: Представлен Realme Neo7 с Dimensity 9300+, АКБ 7000 мАч и защитой от воды и пыли IP69 / MForum.ru

11.12. [Новинки] Слухи: Раскрыты спецификации OnePlus Ace 5 и его отличия от OnePlus 13R / MForum.ru