О переносе мобильных игр - PullRequest
       10

О переносе мобильных игр

1 голос
/ 16 января 2009

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

Допустим, если у меня есть простой движок 2D C ++ и у меня есть компьютерная игра, основанная на этом движке, и я хочу портировать его на разные мобильные платформы BREW, J2ME, iPhone, Android, Symbian и т. Д.

Нужно ли перекодировать движок и игру для каждой платформы? или есть более простой и эффективный способ? Я уверен, что процесс сложный, так как разные телефоны имеют разную графику / процессор / память / и т.д. Мне просто интересно узнать о процессе переноса мобильных игр. :)

Спасибо!

Ответы [ 7 ]

5 голосов
/ 21 января 2009

Существует несколько способов атаковать перенос мобильных игр. Прежде всего, до недавнего времени это были в основном BREW и J2ME. IPhone, Android и BlackBerry меняют этот ландшафт и делают невозможной задачу переноса мобильных игр. До недавнего времени я много лет работал над разработкой сторонних мобильных игр. Я наблюдал, как BREW исчезает, и видел, как издатели полностью сосредоточились на J2ME, поскольку стоимость переноса удушает индустрию. Есть оценки его стоимости, как времени, так и денег, и кажется, что примерно 50-60% от общей стоимости разработки для каждой игры только переносится.

В нашей компании мы осуществляли портирование, имея два движка, параллельных друг другу, один в BREW, один в J2ME. Мы никогда не поддерживали Symbian, так как разработка Symbian не приносит денег. Это в основном для высокотехнологичных демонстраций технологий, которые могут быть на одном или двух устройствах, ничего, что могло бы достичь массового рынка. Кроме того, большинство телефонов Symbian поддерживают J2ME.

От издателей будет требоваться предоставить от 7 до 23 эталонных сборок игры, ориентированных на множество различных устройств, как в BREW, так и в J2ME. Непосредственно перед тем, как двигаться дальше, издатели также начали требовать эталонную версию J2ME с сенсорным экраном, а SKU для iPhone оставалось «определяться» на основе конечного продукта и того, насколько экономически выгодной будет версия для iPhone в то время. Затем эталонные версии будут переданы в портовый дом для перевода различных ссылок на тысячи других необходимых SKU.

Такие компании, как Gameloft, по-прежнему грубо пробираются через портирование. Вот почему игры Gameloft постоянно имеют более высокое качество, чем остальная индустрия. Тем не менее, для небольших компаний просто невозможно решить проблему таким образом из-за затрат. Не каждый может позволить себе офис в Пекине с 5000 разработчиков.

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

Наконец, многие разработчики просто отказываются от идеи поддержки всех мобильных платформ. На iPhone очень много игр, потому что 1) для него требуется только ориентация на одну платформу и 2) 70% прибыли через AppStore для разработчиков. Через выпуски носителей, процент даже не сопоставим.

2 голосов
/ 05 марта 2009

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

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

Вы можете найти его по адресу: http://www.edgelib.com

На сайте вы можете увидеть демонстрацию игр и других проектов на основе этой платформы.

К сожалению, BREW не поддерживается. И поскольку это не настоящая открытая платформа, она представляет собой довольно сложную задачу по сравнению с другими платформами мобильных ОС, поскольку ее сообщество разработчиков в основном профессиональное и не очень "разговорчивое" в онлайн-терминах ... Возможно, это изменится, поскольку соревнования становятся более открытыми с каждой минутой.

Я не связан с Edgelib ... это только мое личное мнение. :)

2 голосов
/ 16 января 2009

Это, конечно, зависит от того, на каком языке написан ваш «простой движок». Предполагается, что Java легче перемещать между платформами, поскольку в действительности она является собственной платформой. Если ваш движок написан на более низкоуровневом уровне, таком как C ++, он, вероятно, будет зависеть от платформенно-зависимых библиотек для графики и ввода, поскольку C ++ не предоставляет вам этого.

1 голос
/ 16 января 2009

То, что я использовал для многоплатформенной разработки, - это реализация уровня аппаратной абстракции. Движок написан на C ++, но использует простой интерфейс C для реализации системных вызовов. Это позволяет вам использовать полноценный C ++ для вашей игры и движка и связываться с системной абстракцией, написанной на любом языке, который нужен вашей платформе. Symbian не поддерживает 100% функций C ++ и все еще имеет несколько ошибок, и IPhone API использует Objective C. C совместим с большинством платформ, которые вы упоминаете (ну, не Java), и связывание C проще, чем C ++ , поскольку есть меньше проблем (ABIs и все такое).

Реализация дополнительного интерфейса в C немного медленнее, но очень поможет при переносе его на другие платформы. Кроме того, он позволяет вам иметь сборку Win32 / Linux / Mac помимо Symbian, BREW и т. Д. Я работал, главным образом, с Symbian и N-Gage, и возможности отладки этих платформ значительно отстают от Visual Studio или GDB. Iphone, с другой стороны, имеет много интересных инструментов для отладки и профилирования вашего приложения.

1 голос
/ 16 января 2009

Нет бесплатного обеда. Платформы, которые вы рассматриваете, несовместимы, большинство из них позволяют вам запускать код C / C ++, поэтому теоретически вы можете перенести движок на некоторый стандарт, такой как ANSI или C99, и он будет компилироваться на большинстве платформ PC, BREW. однако это не учитывает библиотеки, которые могут понадобиться вашему движку. Например, если ваш движок использует OpenGL, он будет работать на ПК и некоторых консолях, но на устройствах Symbiam вам нужен OpenGL-ES, который не совсем совпадает, поэтому вам нужна абстракция для всех библиотек, которые вы используете.

О J2ME и Android они являются платформами Java, поэтому ни один C / C ++ не может быть запущен там, по крайней мере, без какой-либо специальной виртуальной библиотеки. В этом случае вам нужно перенести код C / C ++ на Java, который может быть избыточным.

Итак, мой ответ на этот вопрос: пока вы можете абстрагироваться от своих библиотек и кода, используя стандарты, вы можете использовать один и тот же движок на нескольких платформах, если вы можете использовать для них один и тот же компилятор.

Посмотрите, например, на этот движок CubicVR , он позволяет вам скомпилировать тот же движок для ПК / Linux / MAC / iPhone (возможно) / Sony PlayStation Portable

0 голосов
/ 16 января 2009

Как уже отмечали другие, если ваш движок построен на основе какой-то «независимой от платформы» инфраструктуры, такой как Java, то, возможно, это проще, чем если бы он был написан на языке более низкого уровня. Однако, ни Java, ни Flash, например, не поддерживаются на iPhone / iPod touch, и, вероятно, это займет некоторое время, пока они не будут. С другой стороны, если я правильно помню, единственным SDK, доступным для этих платформ, является Objective-C, который, как ни странно, вы не использовали для реализации своего движка.

Как правило, это зависит от написанного вами приложения / движка игры. Скорее всего, вам придется что-то менять, так как очень редко все функции доступны на всех платформах. Графика J2ME - это классический сценарий зависимости от платформы, как я слышал. То, сколько вам придется изменить, зависит только от того, насколько переносим ваш код, т. Е. Насколько хорошо вы отделили части, которые потенциально нуждаются в изменении.

К сожалению, это лучший ответ, который я могу вам дать.

0 голосов
/ 16 января 2009
  1. Если ваш движок не написан на JAVA или FLASH, я не вижу способа использовать ваш движок из коробки без перекодировки на языке, который может работать на мобильном телефоне.
  2. Если он закодирован в JAVA или FLASH, я думаю, что ваша главная проблема (помимо разницы в производительности между телефоном и ПК) - это основная память. Как я уже слышал, основная память - самая большая проблема в разработке игр для мобильных телефонов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...