¿Puedo desarrollar juegos para plataformas móviles en C ++?

16

Tengo una buena comprensión de C ++ y C y también tengo experiencia en el desarrollo de juegos AAA con C ++. Ahora, descaradamente estoy pensando en sumergirme en el desarrollo de juegos móviles, ya sea en iOS o Android. Desafortunadamente, no conozco el objetivo C y Java y tampoco tengo el coraje de aprenderlo. Entonces, como se mencionó anteriormente, ¿hay alguna posibilidad de hacer desarrollo móvil en C ++ sin usar una sola declaración de JAVA y Objective-C?

James Bern
fuente

Respuestas:

13

Algún objetivo C tiene que ser escrito para aplicaciones de iPhone. Dicho esto, puede escribir una capa bastante delgada de obj-c y luego hacer todo el código del juego en C o C ++.

En Android, busque el NDK. No tengo ninguna experiencia con él, pero promete ser un SDK nativo, por lo que debería poder escribir la mayoría de las cosas en C o C ++.

Dicho esto, te estás limitando artificialmente con la barrera del idioma. En iOS, si desea hacer algo con la capa del sistema operativo (como GameCenter, su plataforma social), o usar cualquier tipo de middleware, probablemente se encuentre con una API C objetiva.

Puedo entender el sentimiento. C ++ en particular es un lenguaje enorme. Pero obj-c no es grande. Es un rayo a C (por lo que los fundamentos deberían estar familiarizados) con algunas cosas adicionales agregadas en la parte superior. No es tan complejo o profundo como C ++.

Tétrada
fuente
2
Tenga en cuenta que el uso de Android NDK significa dejar las ventajas de "escribir una vez que se implementa en todas partes", ya que tiene que compilar su código para múltiples plataformas que tal vez incurran en múltiples problemas de compilación. NDK está destinado a utilizarse para llamar a la función C desde el código de Java, no para escribir la aplicación completa (mientras todavía es posible).
FxIII
1
También creo que Google ha declarado explícitamente que NDK no debe usarse para una implementación completa del juego. Además, la sintaxis de Java es casi idéntica a C ++ y debería tomarse unos días para acostumbrarse. Sin embargo, si quieres ganar dinero, probablemente deberías concentrarte en los juegos de iOS.
Nailer
¿Qué dices sobre Unity3D si aprendo C #
James Bern
1
A partir de Android 2.3, Google agregó actividad nativa que le permite escribir una aplicación completa en 100% c ++ (principalmente para juegos).
Sonido el
Recomendaría Unity3D, especialmente si desea implementar en múltiples plataformas. C # no es tan difícil de aprender si ya conoce C ++, y el contenido de su foro es de primera categoría con toneladas de código de muestra (aunque la mayoría del código está en JavaScript).
Doug.McFarlane
7

Llevo bastante tiempo escribiendo un juego en c ++ para Android. Tengo que tocar el código de Java una vez cada pocas semanas, pero en su mayor parte modifiqué una de las aplicaciones de muestra que viene con el NDK y he escrito c ++ de lo contrario. También tuve que hacer un poco de trabajo de JNI, lo que nunca es divertido. Sin embargo, tengo muchos años de experiencia en Java, por lo que tener que escribir Java o JNI no me frena particularmente.

Mi juego funciona tan bien en mi Linux Box como en mis dispositivos de prueba. La versión de Linux es pura C ++ y el problema que tuve que hacer para que este trabajo se amortice cada vez que realizo un cambio iterativo en mi juego.

Mi proyecto tiene 836 líneas de código java, 331 líneas de código C jni horrible y aproximadamente 40k líneas de código C ++.

notlesh
fuente
¿Utiliza un sistema de compilación que puede construir para cada objetivo de forma automatizada? He estado usando CMake para permitir compilaciones multiplataforma, y ​​me preguntaba si podría integrarlo con ndk-build.
Martin Foot
He visto otros proyectos de NDK usar CMake.
notlesh
4

También está Marmalade, que le permite usar c ++ para crear aplicaciones móviles para una amplia gama de dispositivos como iPhone, Android, Win Mobile, Bada y algunos más.

impmja
fuente
2

Estoy usando cocos2d-x por un tiempo, es un motor de juego basado en c ++. (en realidad es un puerto c ++ de cocos2d-iphone). Con este motor puede ejecutar y probar fácilmente sus códigos en Windows y luego compilar el mismo código para la exportación de iPhone / Android.

Ali1S232
fuente
ahora también incluye bada y algunas personas lo han usado encima de Mermelada
Andy Dent el
1

Si realmente quieres solo C ++, Marmalade podría ser bueno para ti

Pero para las capacidades completas debe usar al menos algún objetivo-C (o java, pero estoy hablando de "capacidades completas") . Pero con una capa delgada de Objective-C podrías hacer mucho, así que te recomiendo que mires al desarrollo de iOS con Xcode.


Si tienes una mirada mac en Xcode , si no, prueba corona con lua .

Hay muchas formas de maximizar su código C ++ para que se ejecute en el iPhone. Un programa gratuito en la tienda de aplicaciones mac podría ayudar a aumentar el uso de C ++ en productos basados ​​en Objective-C:

Se llama encabezados de preprocesador C ++ de Objective-C ++

Esto le permite hacer aún más con C ++ en lugar de Objective-C.

Programación de iOS :

Comradsky
fuente
-3

Sí, puede usar el lenguaje de programación C ++ para desarrollar juegos móviles. La aplicación de juegos C ++ siempre se siente un poco más ágil que Java en el mismo hardware. Entonces, si eres experto en C ++ y estás interesado en desarrollar juegos para Android, ahora es fácil y sin costo como programar en Java.

Jacob Selvestar
fuente