Чи можу я розробити ігри для мобільних платформ на C ++?


16

Я добре розумію C ++ і C, а також досвід розробки гри AAA за допомогою C ++. Тепер я безсоромно замислююся занурюватися в розробку мобільних ігор або в iOS, або Android. На жаль, я не знаю об'єктивного C і java і не маю сміливості навчитися цьому. Отже, як було зазначено вище, чи є можливість зробити мобільний розвиток на C ++, не використовуючи жодної заяви JAVA та Objective-C?

Відповіді:


13

Для додатків iPhone потрібно написати певну ціль C. Якщо говорити, ви можете написати досить тонкий шар obj-c, а потім виконати всі свої ігрові коди на C або C ++.

На андроїд шукайте NDK. Я не маю жодного досвіду роботи з цим, але він обіцяє бути рідним sdk, тому ви повинні мати можливість писати більшість речей на C або C ++.

Коли це говориться, ви штучно обмежуєте себе мовним бар'єром. Якщо ви хочете зробити що-небудь із шаром ОС (наприклад, GameCenter, їх соціальною платформою) або використовувати будь-яке проміжне програмне забезпечення, ви, мабуть, зіткнетеся з об'єктивним API API.

Я можу якось зрозуміти настрої. Зокрема, 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 ++ (переважно для ігор).
5:00

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

7

Я вже давно пишу гру в c ++ для Android. Я повинен торкатися коду Java раз на кілька тижнів, але здебільшого я змінив одне з прикладних програм, що постачаються з NDK, і написав c ++ в іншому випадку. Мені довелося також трохи виконати роботу з JNI, що ніколи не буває веселим. Однак я маю багаторічний досвід Java, тому необхідність писати Java або JNI не особливо сповільнює мене.

Моя гра працює так само добре, як і на моїх тестових пристроях. Версія Linux - це чистий C ++, і проблема, через яку я працював, окупився щоразу, коли я вносив ітеративні зміни в свою гру.

У моєму проекті 836 рядків коду Java, 331 рядок огидного коду jni C та близько 40 к рядків коду С ++.


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

Я бачив, як інші проекти NDK використовують CMake.
нотлеш

4

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


2

Я деякий час використовую cocos2d-x , це ігровий движок на основі c ++. (це фактично порт + ++ cocos2d-iphone). За допомогою цього двигуна ви можете легко запустити і протестувати свої коди на Windows, а потім скласти той самий код для експорту iphone / android.


також тепер включає бада, і деякі люди використовували його поверх мармеладу
Енді Дент

1

Якщо ви дійсно хочете просто С ++, Мармелад може бути для вас корисним

Але для повних можливостей вам потрібно використовувати хоча б якийсь об'єктивний C (або java, але я говорю про "повні можливості") . Але з тонким шаром target-C ви можете зробити так багато, тому рекомендую вам заглянути в розробку iOS за допомогою Xcode.


Якщо у вас mac дивиться на Xcode , якщо ні, спробуйте корону замість lua .

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

Це називається заголовок препроцесора Obje-C ++

Це дозволяє ще більше робити з C ++, а не з Objective-C.

Програмування iOS :


-3

Так, ви можете використовувати мову програмування на C ++ для розробки мобільних ігор. Ігрові програми C ++ завжди відчувають себе трохи спритніше, ніж Java на одному і тому ж апаратному забезпеченні. Отже, якщо ви досвідчені в C ++ і зацікавлені в розробці гри для Android, то програмування на Java тепер просто і з нульовою вартістю.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.