Kann ich Spiele für mobile Plattformen in C ++ entwickeln?

16

Ich habe gute Kenntnisse in C ++ und C und auch Erfahrung in der Entwicklung von AAA-Spielen mit C ++. Jetzt denke ich schamlos darüber nach, in die Entwicklung mobiler Spiele unter iOS oder Android einzutauchen. Leider kenne ich kein Objective-C und kein Java und habe auch keinen Mut, es zu lernen. Gibt es also, wie oben erwähnt, eine Möglichkeit, in C ++ mobil zu entwickeln, ohne eine einzige Anweisung von JAVA und Objective-C zu verwenden?

James Bern
quelle

Antworten:

13

Für iPhone-Apps muss ein Teil von Ziel C geschrieben werden. Davon abgesehen können Sie eine ziemlich dünne Schicht von obj-c schreiben und dann Ihren gesamten Spielcode in C oder C ++ ausführen.

Auf Android suchen Sie den NDK. Ich habe noch keine Erfahrung damit, aber es verspricht, eine native SDK zu sein, so dass Sie in der Lage sein sollten, die meisten Dinge in C oder C ++ zu schreiben.

Abgesehen davon beschränken Sie sich künstlich auf die Sprachbarriere. Wenn Sie unter iOS mit der Betriebssystemschicht (wie GameCenter, der sozialen Plattform) etwas anfangen oder eine beliebige Middleware verwenden möchten, müssen Sie wahrscheinlich mit einer objektiven C-API rechnen.

Ich kann das Gefühl irgendwie verstehen. Insbesondere C ++ ist eine riesige Sprache. Aber obj-c ist kein großer. Es ist ein Bolt auf C (also sollten die Grundlagen bekannt sein) mit ein paar zusätzlichen Dingen, die oben hinzugefügt werden. Es ist nicht annähernd so komplex oder tief wie C ++.

Tetrade
quelle
2
Beachten Sie bitte, dass die Verwendung von Android NDK die Vorteile von "Write Once Deploy Anywhere" belässt, da Sie Ihren Code für mehrere Plattformen kompilieren müssen, was möglicherweise zu Problemen mit mehreren Builds führen kann. NDK soll verwendet werden, um die C-Funktion aus Java-Code aufzurufen, nicht um die gesamte Anwendung zu schreiben (solange dies noch möglich ist).
FxIII
1
Ich denke auch, dass Google ausdrücklich erklärt hat, dass NDK nicht für eine vollständige Spielimplementierung verwendet werden soll. Außerdem ist die Java-Syntax fast identisch mit C ++ und es sollte ein paar Tage dauern, bis Sie den Überblick behalten. Wenn Sie Geld verdienen möchten, sollten Sie sich jedoch auf iOS-Spiele konzentrieren.
Nagler
Was sagst du zu Unity3D, wenn ich C #
James Bern
1
Ab Android 2.3 hat Google native Aktivitäten hinzugefügt, mit denen Sie eine vollständige App in 100% c ++ schreiben können (hauptsächlich für Spiele).
08.08.11
Ich würde Unity3D empfehlen, insbesondere wenn Sie auf mehreren Plattformen bereitstellen möchten. C # ist nicht so schwer zu erlernen, wenn Sie C ++ bereits kennen und der Inhalt des Forums mit Tonnen von Beispielcode erstklassig ist (obwohl der meiste Code in JavaScript ist).
Doug.McFarlane
7

Ich schreibe seit einiger Zeit ein Spiel in c ++ für Android. Ich muss den Java-Code alle paar Wochen einmal berühren, aber zum größten Teil habe ich eine der mit dem NDK gelieferten Beispiel-Apps modifiziert und ansonsten C ++ geschrieben. Ich musste auch ein bisschen JNI arbeiten, was nie Spaß macht. Ich habe jedoch langjährige Erfahrung mit Java, sodass es mich nicht sonderlich bremst, Java oder JNI schreiben zu müssen.

Mein Spiel läuft auf meiner Linux-Box genauso gut wie auf meinen Testgeräten. Die Linux-Version ist C ++ und die Mühe, die ich gemacht habe, zahlt sich jedes Mal aus, wenn ich mein Spiel iterativ ändere.

Mein Projekt enthält 836 Zeilen Java-Code, 331 Zeilen abscheulichen JNI-C-Code und etwa 40.000 Zeilen C ++ - Code.

notlesh
quelle
Verwenden Sie ein Build-System, das automatisiert für jedes Ziel erstellt werden kann? Ich habe CMake verwendet, um plattformübergreifende Builds zuzulassen, und habe mich gefragt, ob ich es in ndk-build integrieren kann.
Martin Foot
Ich habe gesehen, dass andere NDK-Projekte CMake verwenden.
notlesh
4

Es gibt auch Marmalade , mit dem Sie mit c ++ mobile Anwendungen für eine breite Palette von Geräten wie iPhone, Android, Win Mobile, Bada und andere erstellen können.

impmja
quelle
2

Ich benutze cocos2d-x für eine Weile, es ist eine auf c ++ basierende Spiel-Engine. (es ist eigentlich eine c ++ port von cocos2d-iphone). Mit dieser Engine können Sie Ihre Codes einfach unter Windows ausführen und testen und anschließend denselben Code für den iPhone / Android-Export kompilieren.

Ali1S232
quelle
enthält jetzt auch bada und einige Leute haben es oben auf Marmelade verwendet
Andy Dent
1

Wenn Sie wirklich nur C ++ wollen, könnte Marmelade gut für Sie sein

Aber für volle Fähigkeiten muss man mindestens ein wenig Objective-C (oder Java) verwenden, aber ich spreche von "vollen Fähigkeiten" . Aber mit einer dünnen Schicht von Objective-C könnten Sie so viel tun, also empfehle ich Ihnen, sich mit der iOS-Entwicklung mit Xcode zu befassen.


Wenn Sie einen Mac haben, schauen Sie sich Xcode an , wenn nicht, versuchen Sie stattdessen Corona mit Lua .

Es gibt viele Möglichkeiten, wie Sie Ihren C ++ - Code auf dem iPhone maximal ausführen können. Ein kostenloses Programm im Mac App Store kann dazu beitragen, die Verwendung von C ++ in Objective-C-basierten Produkten zu verbessern:

Es heißt Objective-C ++ - Präprozessor-Header

Auf diese Weise können Sie noch mehr mit C ++ als mit Objective-C tun.

iOS- Programmierung:

Comradsky
quelle
-3

Ja, Sie können die Programmiersprache C ++ verwenden, um mobile Spiele zu entwickeln. C ++ - Spieleanwendung fühlt sich auf der gleichen Hardware immer etwas flotter an als Java. Wenn Sie sich mit C ++ auskennen und daran interessiert sind, ein Android-Spiel zu entwickeln, ist dies jetzt so einfach und kostengünstig wie die Programmierung in Java.

Jacob Selvestar
quelle