Могу ли я разрабатывать игры для мобильных платформ на C ++?


16

Я хорошо разбираюсь в C ++ и C, а также имею опыт разработки игр AAA с использованием C ++. Теперь я беззастенчиво думаю о том, чтобы погрузиться в разработку мобильных игр под iOS или Android. К сожалению, я не знаю цель C и Java, и у меня нет смелости изучать это. Итак, как указывалось выше, есть ли возможность заниматься мобильной разработкой на C ++, не используя ни одного оператора JAVA и Objective-C?

Ответы:


13

Некоторая цель C должна быть написана для приложений iPhone. При этом вы можете написать довольно тонкий слой obj-c, а затем выполнить весь свой игровой код на C или C ++.

На андроиде смотришь вверх NDK. У меня нет никакого опыта с этим, но он обещает быть родным SDK, так что вы должны быть в состоянии написать большинство вещей на C или C ++.

При этом вы искусственно ограничиваете себя языковым барьером. В iOS, если вы хотите что-то сделать со слоем ОС (например, GameCenter, их социальной платформой) или использовать какое-либо промежуточное программное обеспечение, вы, вероятно, столкнетесь с целевым API C.

Я могу отчасти понять чувства. C ++ в частности это огромный язык. Но obj-c не большой. Это болт с C (так что основы должны быть знакомы) с несколькими дополнительными вещами, добавленными сверху. Он не такой сложный или глубокий, как C ++.


2
Имейте в виду, что использование Android NDK означает, что вы не должны использовать преимущества «однажды разверните развертывание везде», поскольку вам приходится компилировать код для нескольких платформ, что может привести к множественным проблемам сборки. NDK предназначен для вызова функции C из кода Java, а не для написания всего приложения (хотя это все еще возможно).
FxIII

1
Я также думаю, что Google явно заявил, что NDK не должен использоваться для полной реализации игры. Кроме того, синтаксис java почти идентичен C ++ и должен освоить несколько дней. Если вы хотите зарабатывать деньги, вы должны сосредоточиться на играх для iOS.
Nailer

Что вы скажете о Unity3D, если я изучу C #
Джеймс Берн

1
Начиная с Android 2.3, Google добавил нативную активность, которая позволяет вам написать полноценное приложение на 100% c ++ (в основном для игр).
5ound

Я бы порекомендовал Unity3D, особенно если вы хотите развернуть на нескольких платформах. C # не так сложно освоить, если вы уже знаете C ++, а их форумное содержание на высшем уровне с тоннами примера кода (хотя большая часть кода написана на JavaScript).
Doug.McFarlane

7

Я давно пишу игру на с ++ для Android. Я должен касаться java-кода раз в несколько недель, но по большей части я изменил одно из примеров приложений, поставляемых с NDK, и написал c ++ иначе. Мне тоже пришлось немного поработать с JNI, что никогда не было весело. Тем не менее, у меня есть многолетний опыт работы с Java, поэтому необходимость писать java или JNI не особенно меня тормозит.

Моя игра работает на моей Linux-машине так же хорошо, как и на моих тестовых устройствах. Версия для Linux - чистый C ++, и трудности, с которыми я столкнулся, чтобы заставить эту работу окупаться, каждый раз, когда я делаю итеративное изменение в своей игре.

Мой проект содержит 836 строк кода Java, 331 строку кода ужасного jni C и около 40 тысяч строк кода C ++.


Используете ли вы систему сборки, которая может строить для каждой цели в автоматическом режиме? Я использовал CMake для разрешения кросс-платформенных сборок, и мне было интересно, смогу ли я интегрировать его с ndk-build.
Мартин Фут,

Я видел другие проекты NDK, использующие CMake.
Нотлеш

4

А также есть Marmalade, который позволяет использовать c ++ для создания мобильных приложений для широкого спектра устройств, таких как iPhone, Android, Win Mobile, Bada и некоторых других.


2

Некоторое время я использую cocos2d-x , это игровой движок на основе c ++. (это на самом деле c ++ порт cocos2d-iphone). Используя этот движок, вы можете легко запустить и протестировать свои коды в Windows, а затем скомпилировать тот же код для экспорта в iphone / android.


также теперь включает bada, и некоторые люди использовали это сверху Мармелада
Энди Дент

1

Если вы действительно хотите просто C ++, вам может пригодиться мармелад

Но для полных возможностей вы должны использовать хотя бы какую-то цель-C (или Java, но я говорю о «полных возможностях») . Но с тонким слоем target-C вы могли бы сделать так много, поэтому я рекомендую вам взглянуть на разработку iOS с Xcode.


Если у вас есть Mac, посмотрите на Xcode , если нет, попробуйте вместо этого использовать corona с lua. .

Есть много способов максимизировать ваш код C ++ для запуска на iPhone. Бесплатная программа на Mac App Store может помочь C ++ использовать увеличение в продуктах на основе Objective-C:

Это называется target-C ++ Заголовки препроцессора

Это позволяет вам делать еще больше с C ++, а не с Objective-C.

программирование iOS :


-3

Да, вы можете использовать язык программирования C ++ для разработки мобильных игр. Игровые приложения на C ++ всегда чувствуют себя немного быстрее, чем Java на одном и том же оборудовании. Итак, если вы разбираетесь в C ++ и заинтересованы в разработке игр для Android, то теперь это легко и без затрат, как программирование на Java.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.