Posso sviluppare giochi per piattaforme mobili in C ++?


16

Ho una buona conoscenza di C ++ e C e ho anche esperienza nello sviluppo di giochi AAA usando C ++. Ora, sto spudoratamente pensando di tuffarmi nello sviluppo di giochi per dispositivi mobili su iOS o Android. Sfortunatamente, non conosco l'obiettivo C e Java e non ho nemmeno il coraggio di impararlo. Quindi, come detto sopra, c'è qualche possibilità di fare sviluppo mobile in C ++ senza usare una singola istruzione di JAVA e Objective-C?

Risposte:


13

Alcuni obiettivi C devono essere scritti per le app per iPhone. Detto questo, puoi scrivere uno strato piuttosto sottile di obj-c e quindi eseguire tutto il codice di gioco in C o C ++.

Su Android cerca l'NDK. Non ho alcuna esperienza con esso, ma promette di essere un SDK nativo, quindi dovresti essere in grado di scrivere la maggior parte delle cose in C o C ++.

Detto questo, ti stai limitando artificialmente alla barriera linguistica. Su iOS, se vuoi fare qualcosa con il livello del sistema operativo (come GameCenter, la loro piattaforma social) o utilizzare qualsiasi tipo di middleware, probabilmente ti troverai di fronte a un'API C obiettiva.

Riesco a capire il sentimento. Il C ++ in particolare è un linguaggio enorme. Ma obj-c non è un grande. È un fulmine a C (quindi i fondamenti dovrebbero avere familiarità) con alcune cose extra aggiunte in cima. Non è così complesso o profondo come C ++.


2
Tieni presente che l'utilizzo di Android NDK significa lasciare i vantaggi di "scrivere una volta distribuito ovunque" poiché devi compilare il tuo codice per più piattaforme, magari incorrendo in più problemi di build. NDK è pensato per essere usato per chiamare la funzione C dal codice java, non per scrivere l'intera applicazione (mentre è ancora possibile).
FxIII,

1
Penso anche che Google abbia esplicitamente dichiarato che NDK non deve essere utilizzato per un'implementazione di gioco completa. Inoltre, la sintassi java è quasi identica a C ++ e dovrebbe richiedere alcuni giorni per capire. Se vuoi fare soldi, probabilmente dovresti concentrarti sui giochi iOS.
Nailer

Che ne dici di Unity3D, se imparo C #
James Bern,

1
A partire da Android 2.3, Google ha aggiunto attività nativa che ti consente di scrivere un'app completa in 100% c ++ (principalmente per i giochi).
5

Consiglierei Unity3D, soprattutto se si desidera distribuire su più piattaforme. C # non è così difficile da imparare se conosci già C ++ e il loro contenuto nel forum è di prim'ordine con tonnellate di codice di esempio (anche se la maggior parte del codice è in JavaScript).
Doug.McFarlane,

7

Ho scritto un gioco per un bel po 'in c ++ per Android. Devo toccare il codice Java una volta ogni poche settimane, ma per la maggior parte ho modificato una delle app di esempio fornite con NDK e ho scritto C ++ in caso contrario. Ho anche dovuto lavorare un po 'su JNI, il che non è mai divertente. Tuttavia, ho molti anni di esperienza java, quindi dover scrivere java o JNI non mi rallenta particolarmente.

Il mio gioco funziona altrettanto bene sulla mia scatola di Linux come sui miei dispositivi di test. La versione di Linux è puro C ++ e il problema che ho dovuto affrontare per far funzionare questo lavoro si ripaga da solo ogni volta che faccio una modifica iterativa al mio gioco.

Il mio progetto ha 836 righe di codice java, 331 righe di codice jni C orribile e circa 40k righe di codice C ++.


Usi un sistema di build in grado di costruire per ogni target in modo automatizzato? Ho usato CMake per consentire build multipiattaforma e mi chiedevo se potevo integrarlo con ndk-build.
Martin Foot,

Ho visto altri progetti NDK utilizzare CMake.
notlesh,

4

C'è anche Marmalade che ti consente di utilizzare c ++ per creare applicazioni mobili per una vasta gamma di dispositivi come iPhone, Android, Win Mobile, Bada e alcuni altri.


2

Sto usando cocos2d-x per un po ', è un motore di gioco basato su c ++. (in realtà è una porta c ++ di cocos2d-iphone). usando questo motore puoi facilmente eseguire e testare i tuoi codici su Windows e quindi compilare lo stesso codice per l'esportazione di iPhone / Android.


ora include anche bada e alcune persone l'hanno usato in cima alla marmellata d'arance
Andy Dent

1

Se vuoi davvero solo C ++, Marmalade potrebbe essere adatto a te

Ma per la piena capacità devi usare almeno un po 'di obiettivo-C (o java, ma sto parlando di "piena capacità") . Ma con un sottile strato di obiettivo-C potresti fare così tanto, quindi ti consiglio di guardare allo sviluppo di iOS con Xcode.


Se hai un Mac guarda Xcode , in caso contrario, prova invece corona con lua .

Esistono molti modi per massimizzare l'esecuzione del codice C ++ su iPhone. UN programma gratuito sul Mac App Store potrebbe aiutare ad aumentare l'uso del C ++ nei prodotti basati su Objective-C:

È chiamato Headers preprocessore obiettivo C ++

Ciò ti consente di fare ancora di più con C ++ anziché con Objective-C.

iOSprogrammazione :


-3

Sì, puoi usare il linguaggio di programmazione C ++ per sviluppare giochi per dispositivi mobili. L'applicazione di gioco C ++ si sente sempre un po 'più scattante di Java sullo stesso hardware. Quindi, se sei esperto di C ++ e sei interessato a sviluppare giochi per Android, ora è facile ed economico come programmare in Java.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.