LINUX.ORG.RU

Как программируют игры для мобильных телефонов?


0

1

Добрый день, интересует, как происходит программирование различных приложений (в данном случаи именно игр)
Понятно, что придется писать на java , порекомендуйте please приемлемую литературу по этому делу?
«Моррисон Создание игр для мобильных телефонов» не предлагать, только вчера начал её читать.Но не уверен , что это то что мне нужно.
И другой вопрос, но по этойже теме, как программировать 2d графику (конечно я не совсем правильно выразился, но суть ясна) для мобильных устройств? Да и 3d ....

Deleted

Документация по Java2ME с оффсайта не подходит?

TheKnight ★★★
()

> Понятно, что придется писать на java

совсем недавно было именно так, но сейчас же есть iOS, Android, Bada, т.е. можно писать как минимум еще на С, Obj-C, С++

aho
()

Ява для обычных мобильных телефонов уже умерла. Зачем на ней писать?

Можно писать под ios и андроид.

note173 ★★★★★
()
Ответ на: комментарий от note173

>Можно писать под ios и андроид.

а как же Windows Phone? можно же потерять кучу пользоваетлей Nokia.

anonymous
()
Ответ на: комментарий от aho

То что писать на СИ можно это зашибенно, но какие проблемы потом возникнут?
Если не ошибаюсь, то если писать на java то тогда приложение должно работать на всех мобильных устройствах, (хоть и тормозно).
А при написании прог на си? надо будет для каждого устройства производить отдельную компиляцию? также как и для различных версий одной и тойже ОС?
И что там у нас с 2d и 3d графикой для мобил? )

Deleted
()

>Понятно, что придется писать на java

можно и на паскале :D

wxw ★★★★★
()
Ответ на: комментарий от Deleted

> А при написании прог на си? надо будет для каждого устройства производить отдельную компиляцию? также как и для различных версий одной и тойже ОС?

И что там у нас с 2d и 3d графикой для мобил? )

вообще-то лучшие 3D игры как раз и написаны на С и С++ - Dungeon Hunter, NFS и пр., и работают на всех этих платформах, а «графика» пишется банально на OpenGL

aho
()

>Понятно, что придется писать на java
вовсе необязательно. Огласите список target плаформ?

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

«Огласите список target плаформ? »[br] Все)

Deleted
()
Ответ на: комментарий от iZEN

iZEN спасибо за ссылки, почитаю.

aho а проблем с запуском игр на различных мобилках не будет? в том плане, не придётся ли код переписывать под каждое устройство?

Кстати планируемые платформы...эээ.... Все, как можно больше.

Deleted
()
Ответ на: комментарий от Deleted

Есть какой-то коммерческий сдк, генерирующий код для нескольких целевых систем. По-моему, единственно правильный подход.

JackyTreehorn
()
Ответ на: комментарий от Deleted

> а проблем с запуском игр на различных мобилках не будет? в том плане, не придётся ли код переписывать под каждое устройство?

платформозависимый код будет 100%, но это будет не переписывание, такой код выносится в отдельные функции/классы и реализуется под платформу не затрагивая основной код программы

aho
()
Ответ на: комментарий от aho

Тоесть я смогу написать скажем «ядро программы» на чистом СИ, ну там структуры создать, некоторые функции счёта, логику...а вот платформозависимый код это вообще что? стандартные функции си?

Deleted
()
Ответ на: комментарий от Deleted

> а вот платформозависимый код это вообще что?

работа с железом

aho
()
Ответ на: комментарий от Deleted

>aho а проблем с запуском игр на различных мобилках не будет?

Не слушай aho. Для мобилок пишут только на Java (платформа J2ME). Всякие смартфоны (в своём исчезающем меньшинстве) тоже в массе своей поддерживают исполнение J2ME мидлетов.

Разработка и распространение мидлетов не завязаны на сертификацию, но мидлеты могут быть подписаны разработчиком с использованием доверяемого сертификата и обеспечить, таким образом, детальный доступ к низкоуровневым функциям телефона (например, отправлять SMS/MMS без обязательного запроса разрешения у пользователя).

«Огороженные» платформы, такие как BREW и Symbian, используют собственные закрытые SDK для разработки приложений под смартфоны. А для установки приложений на устройствах пользователей нуждаются в лицензионных отчислениях компании-поставщику средств разработки, разработчики должны купить лицензию/сертификат на выпуск/запуск игр на устройствах пользователей.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

>> aho а проблем с запуском игр на различных мобилках не будет?

Не слушай aho. Для мобилок пишут только на Java (платформа J2ME)


ты все проспал :) в частности iPhone, Android, WP7, Bada, на которых приложения на J2ME смотрятся более чем убого, конечно можно писать под старые телефоны/смартфоны - но учитывая скорость прогресса, так можно быстро оказаться на обочине

aho
()
Ответ на: комментарий от Deleted

>Кстати планируемые платформы...эээ.... Все, как можно больше.

Платформа Java ME помимо профиля (MIDP) и конфигурации (CLDC, CDC) на конкретном устройстве может предоставлять различные дополнительные функции, описываемые JSR-спецификациями.
Вот их полный список: http://www.jcp.org/en/jsr/all
Из этого списка только некоторые JSR привязаны к мобильной платформе Java ME.

На современных кнопочных девайсах реализованы следующие JSR:
• JSR-75 PDA Optional Packages for J2ME™
• JSR-82 Bluetooth Wireless Technology API
• JSR 118 MIDP 2.0
• JSR-120 Wireless Messaging API
• JSR-135 Mobile Media API 1.1
• JSR 139 CLDC 1.1
• JSR-172 J2ME™ Web Services Specification
• JSR-177 Security and Trust Services API for J2ME™
• JSR-180 SIP API for J2ME™
• JSR-184 Mobile 3D Graphics API for J2ME™
• JSR 185 Java™ Technology for the Wireless Industry
• JSR-205 Wireless Messaging API 2.0
• JSR-211 Content Handler API
• JSR-226 Scalable 2D Vector Graphics API for J2ME™
• JSR-229 Payment API
• JSR-234 Advanced Multimedia Supplements
• JSR-238 Mobile Internationalization API
• JSR-239 OpenGL ES
• JSR-248 Mobile Services Architecture
• JSR-256 Mobile Sensor API

Sony-Ericsson:
• Mascot Capsule Micro3D Version 3

• Проприетарный Nokia UI Extension API

Разработку и эмуляцию соответствующих API обеспечивают соответствующие комплекты разработчика на основе Sun J2ME WTK Sony-Ericsson (архив semc_java_me_cldc_sdk_2_5_0_3.zip для Windows скачивается с сайта developer.sonyericsson.com). Nokia и Motorola тоже имеют похожие комплекты разработчика.

Samsung и LG сейчас практически не предоставляют соответствующую поддержку сторонним разработчикам, так как увлечены новыми мобильными платформами.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> Samsung и LG сейчас практически не предоставляют соответствующую поддержку

добавь Sony-Ericsson, Motorola, HTC - перешли на Android + WP7, Nokia - WP7, и кто там останется?

aho
()
Ответ на: комментарий от aho

>конечно можно писать под старые телефоны/смартфоны - но учитывая скорость прогресса, так можно быстро оказаться на обочине

Ты невнимательно читаешь вопрос темы и реплику автора «Кстати планируемые платформы...эээ.... Все, как можно больше.».
Вопроса «как не оказаться на обочине» не стояло!

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> Ты невнимательно читаешь вопрос темы и реплику автора «Кстати планируемые платформы...эээ.... Все, как можно больше.».

тоже верно

aho
()
Ответ на: комментарий от aho

и кто там останется?

Остались миллиарды пользователей с кнопочными девайсами без гламурных тачскринов.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> Остались миллиарды пользователей с кнопочными девайсами без гламурных тачскринов.

с огромным набором существующих игр/программ, а под тот же WP7 можно успеть отхватить хороший кусок, до и iPhone, Android тоже еще достаточно свободный рынок

aho
()
Ответ на: комментарий от iZEN

Блин, так что мне делать то? )
Хочу сделать игру для мобилок, но знаю тока СИ, выучить java проблем естественно нет, но мне нужно знать, смогу ли я легко делать скажем 2d игры? (Хочу делать именно их. )
При программинге на java подобное вроде не сложно делать? так? А кстати? есть какиенить открытые игры для мобилок? ...мне просто посмотреть код интересно.
Ну и добавлю... хочется игру сделать для «новомодных тачскринов»

Deleted
()
Ответ на: комментарий от aho

а под тот же WP7 можно успеть отхватить хороший кусок,

Тут да поле широкое

до и iPhone,

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

Android тоже еще достаточно свободный рынок

да но политика гугла что приложения должны быть бесплатными ставит палки в колёса иногда, да и писать под андроед не так просто как под остальные моб. платформы, ИМХО.

Boy_from_Jungle ★★★★
()
Ответ на: комментарий от aho

Программирование нативных игр и приложений под WP7, iPhone, Symbian^* сопряжено с нишевыми заморочками конкретных платформ и их производителей.

Программирование игр и приложений под Java ME сопряжено только с целевым сегментом и набором задействованных в приложениях API (не все телефоны поддерживают весь набор мобильных JSR-спецификаций). У Sony-Ericsson на сайте разработчиков можно скачать «White Papers» — документ с техническими спецификациями на ту или иную модель телефона. В этом документе перечислены все JSR, которые поддерживаются данной моделью.

iZEN ★★★★★
()
Ответ на: комментарий от Deleted

Портировать на j2me игру не так просто. Платформа очень ограниченная, реализаций дофига, у каждой свои баги. Производительность телефонов очень низкая. Практически никаких стандартных средств для создания интерфейса - все нужно писать с нуля. В чем-то похоже на программирование под DOS.

note173 ★★★★★
()
Ответ на: комментарий от aho

Писать всёже на java (хоть я и сторонник СИ)
А писать под тачскрины. Если надо точнее то давайте определимся на iphone ..вобщем на подобную фигню.

Deleted
()
Ответ на: комментарий от iZEN

Вылезай уже из бомбоубежища. Symbian SDK давно уже Opensource

Gorthauer ★★★★★
()
Ответ на: комментарий от Deleted

Под айфон - на си.
1. Купить айфон
2. Купить мак
3. Посмотреть примеры из сдк, разобраться
4. Написать игру

note173 ★★★★★
()
Ответ на: комментарий от Deleted

>Блин, так что мне делать то? )

Например, начни отсюда: http://www.garret.ru/Game_rus.htm

Хочу сделать игру для мобилок, но знаю тока СИ, выучить java проблем естественно нет, но мне нужно знать, смогу ли я легко делать скажем 2d игры?


Читай: http://www.mobilab.ru/articles/index2.php?cat=3

При программинге на java подобное вроде не сложно делать?


На Java практически все игры, кроме совсем простых, используют многопоточное исполнение. То есть кроме системного потока выполнения, в котором обрабатываются события от клавиатуры и сенсоров и направляются в написанные обработчики мидлета, разработчик вправе создать собственные нити (наследники класса Thread или реализующие интерфейс Runnable).

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

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

iZEN огромное спасибо!!!
Буду разбираться

note173, aho и Boy_from_Jungle Вам тоже огромное спасибо за ответы, все рекомендации учту, и начну чтонить уже программить на днях.

Deleted
()

Насколько я понимаю, наиболее распространённая штука всё-таки Java2ME.

kiverattes ★☆
()

На odesk по J2ME примерно 4 проекта и ни одного адекватного. Для сравнения по Android 56 страниц по 10 проектов. Сколько живых и адекватных назвать затрудняюсь, но порядок думаю примерно понятен.

J2ME если не мертва, то используются только на low-cost телефонах, нет совершенно никакого смысла под нее что-то писать сейчас вообще, и уж тем более вкладывать свое время в обучение. Это можно сравнить разве что с изучением Cobol'а.

С кроссплатформенностью сейчас в мобильных платформах очень туго. Языки везде разные, API разные, платформы разные, UI на платформах разный. Я бы рекомендовал начать с одной, например, Android и вкладывать опыт в нее.

mholub
()
Ответ на: комментарий от JackyTreehorn

Есть какой-то коммерческий сдк, генерирующий код для нескольких целевых систем. По-моему, единственно правильный подход.

Из чего во что он генерит?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Deleted

Наверняка на C++ и SDL. Для порта под iOS не обошлось без некоторой «обвязки» на Objective-C.

Кстати, что касается iOS: для неё есть хороший фреймворк cocos2d. Главный минус - для разработки нужен Mac или хакинтош.

ufw
()
Ответ на: комментарий от Deleted

Я бы для расширения кругозора почитал код старых Quake и Doom. Там C, но используются «свои» движки. Ещё можно попробовать написать что-то на С под OpenGL, необязательно в 3D. Ещё очень много открытых двумерных игр написны на С++ и SDL, для дальнейшего обучения можешь скачать исходники, скажем, XMoto.

Если тебе интересен Android (Java и C++), я бы посоветовал почитать соответствующие книги издательства Apress. А если дойдёт до серьёзной разработки, тогда нужно выбирать коммерческий кросплатформенный движок (Unity или Airplay SDK, в последнем точно используется C++).

Если когда-нибудь установишь Хакинтош, посмотри в сторону бесплатного cocos2d - очень много двумерных игр для iPhone написано на нём. Имея хорошее знание С и основ ООП, можно сразу переходить к изучению Objective-C и этого фреймворка.

Что касается изначальной темы разговора (J2МЕ): с одной стороны - огромная пользовательская база, с другой стороны - интерес к платформе постепенно угасает. Те, кто хотят играть, смотрят в сторону современных Андроидов и яблофонов или уже имеют их.

ufw
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.