Posso desenvolver jogos para plataformas móveis em C ++?

16

Eu tenho uma boa compreensão em C ++ e C e também tenho experiência no desenvolvimento de jogos AAA usando C ++. Agora, estou descaradamente pensando em mergulhar no desenvolvimento de jogos para dispositivos móveis, tanto no iOS quanto no Android. Infelizmente, eu não sei objetivo-C e java e nem tenho coragem de aprender. Então, como acima mencionado, existe alguma possibilidade de desenvolver desenvolvimento móvel em C ++ sem usar nenhuma instrução única de JAVA e Objective-C?

James Bern
fonte

Respostas:

13

Algum objetivo C deve ser escrito para aplicativos do iPhone. Dito isto, você pode escrever uma camada bastante fina de obj-c e, em seguida, fazer todo o código do jogo em C ou C ++.

No Android, procure o NDK. Eu não tenho nenhuma experiência com ele, mas promete ser um sdk nativo para que você possa escrever a maioria das coisas em C ou C ++.

Dito isto, você se limita artificialmente com a barreira do idioma. No iOS, se você deseja fazer algo com a camada do sistema operacional (como o GameCenter, sua plataforma social) ou usar qualquer tipo de middleware, provavelmente encontrará uma API C objetiva.

Eu posso entender o sentimento. C ++ em particular é uma linguagem enorme. Mas obj-c não é grande. É um parafuso para C (então os fundamentos devem estar familiarizados) com algumas coisas extras adicionadas por cima. Não é tão complexo ou profundo quanto o C ++.

Tetrad
fonte
2
Lembre-se de que o uso do Android NDK significa deixar as vantagens de "gravar uma vez implantado em qualquer lugar", pois é necessário compilar seu código para várias plataformas, que podem resultar em vários problemas de compilação. O NDK deve ser usado para chamar a função C do código java, não para escrever o aplicativo inteiro (enquanto ainda é possível).
FXIII
1
Também acho que o Google declarou explicitamente que o NDK não deve ser usado para uma implementação completa do jogo. Além disso, a sintaxe do java é quase idêntica ao C ++ e deve levar alguns dias para ser entendida. Se você quiser ganhar dinheiro, provavelmente deve se concentrar nos jogos para iOS.
Nailer
O que você diz sobre Unity3D, se eu aprender C #
James Bern
1
A partir do Android 2.3, o Google adicionou atividade nativa, que permite escrever um aplicativo completo em 100% c ++ (principalmente para jogos).
5ound
Eu recomendaria o Unity3D, especialmente se você deseja implantar em várias plataformas. O C # não é tão difícil de aprender se você já conhece C ++, e o conteúdo do fórum é de primeira qualidade com toneladas de código de amostra (embora a maioria do código esteja em JavaScript).
precisa saber é o seguinte
7

Estou escrevendo um jogo há um bom tempo em c ++ para Android. Preciso tocar no código java uma vez a cada poucas semanas, mas, na maior parte do tempo, modifiquei um dos aplicativos de exemplo que acompanham o NDK e escrevi c ++ de outra forma. Eu tive que fazer um pouco de trabalho JNI também, o que nunca é divertido. No entanto, tenho muitos anos de experiência em java, portanto, ter que escrever java ou JNI não me deixa particularmente lento.

Meu jogo corre tão bem na minha caixa do linux quanto nos meus dispositivos de teste. A versão linux é pura C ++ e o problema que passei para fazer esse trabalho se paga toda vez que faço uma alteração iterativa no meu jogo.

Meu projeto tem 836 linhas de código java, 331 linhas de código C horrível de jni e cerca de 40k linhas de código C ++.

entalhe
fonte
Você usa um sistema de construção que pode construir para cada destino de maneira automatizada? Eu tenho usado o CMake para permitir compilações entre plataformas e queria saber se poderia integrá-lo ao ndk-build.
Martin Foot
Já vi outros projetos NDK usarem o CMake.
notlesh 29/09/12
4

Há também o Marmalade, que permite usar o c ++ para criar aplicativos móveis para uma ampla gama de dispositivos, como iPhone, Android, Win Mobile, Bada e muito mais.

impmja
fonte
2

Estou usando o cocos2d-x por um tempo, é um mecanismo de jogo baseado em c ++. (na verdade, é uma porta c ++ do cocos2d-iphone). Usando esse mecanismo, você pode executar e testar seus códigos facilmente no Windows e compilar o mesmo código para exportação para iphone / android.

Ali1S232
fonte
Também inclui agora bada e algumas pessoas tê-lo usado em cima de Marmalade
Andy Dent
1

Se você realmente quer apenas C ++, Marmalade pode ser bom para você

Mas, para recursos completos, você precisa usar pelo menos algum objetivo-C (ou java, mas estou falando de "recursos completos") . Mas com uma fina camada de objetivo-C, você pode fazer muito, então eu recomendo que você analise o desenvolvimento do iOS com o Xcode.


Se você tem um Mac, veja o Xcode , caso contrário, tente corona com lua .

Existem várias maneiras de maximizar o seu código C ++ para ser executado no iPhone. Um programa gratuito na Mac App Store pode ajudar a aumentar o uso de C ++ em produtos baseados em Objective-C:

Chama -se Cabeçalhos de Pré-processador C ++ objetivo

Isso permite que você faça ainda mais com C ++ em vez de Objective-C.

programação iOS :

Comradsky
fonte
-3

Sim, você pode usar a linguagem de programação C ++ para desenvolver jogos para celular. O aplicativo de jogos C ++ sempre parece um pouco mais rápido que o Java no mesmo hardware. Portanto, se você é especialista em C ++ e está interessado em desenvolver jogos para Android, agora é fácil e de custo zero como programar em Java.

Jacob Selvestar
fonte