Ich bin ein 2D Game Programmer. Einige Programmiersprachen, in denen ich gut bin, sind C, Java, C #. Ich kenne auch Actionscript 2.0.3.0 und etwas Javascript. Ich interessiere mich für das Erlernen der Programmierung von 3D-Spielen. Bisher habe ich mich nicht mit der Forschung befasst, sondern verschiedene Foren und Artikel zur Spieleentwicklung gegoogelt und gelesen. Mir ist aufgefallen, dass die meisten Programmierer C ++ bevorzugen.Auch in einem Online-Programmierkurs habe ich festgestellt, dass sie C ++ und Visual C ++ als Startkurs bevorzugen. Der Grund, warum ich diese Frage stelle, ist, dass ich den "Stärkendifferenz" von C ++, C # und Java für die Programmierung von 3D-Spielen kennen möchte.
Enthält auch Links zu guten 3D-Programmierartikeln für den bereits 2D-Programmierer.
PS: IMHO finde ich auch C ++ kryptisch.
quelle
Antworten:
Ja, C ++ ist die am häufigsten verwendete Sprache (obwohl einige Leute immer noch C verwenden).
Dafür gibt es zahlreiche Gründe. Schiere Dynamik ist eine - es ist einfach die Sprache, die seit Jahren verwendet wird, es gibt bereits eine Menge Technologie und die Leute fühlen sich damit wohl, so dass Veränderungen nicht über Nacht stattfinden werden.
Dann ist da noch die Frage der Kontrolle. Spieleentwickler sind Kontrollfreaks und wir möchten alles wissen, was in unserem Code vor sich geht. C ++ gibt uns die Kontrolle, C # und Java (um die beiden Alternativen auszuwählen, die Sie erwähnen) nehmen die Kontrolle weg. In vielerlei Hinsicht mag das eine gute Sache sein, aber Game-Codierer mögen es nicht :)
Schließlich gibt es das einfache praktische Problem, dass die SDKs für verschiedene Plattformen sehr C ++ -zentriert sind. Die Verwendung einer anderen Sprache erfordert zwangsläufig das Schreiben von Wrappern, das Cross-Compilieren auf VMs und möglicherweise (im Falle einiger Konsolenentwicklungen) das Nichtzulassen durch den Plattforminhaber (sie mögen es nicht wirklich, wenn Leute anfangen, JIT zu kompilieren).
quelle
C ++ wird immer noch bevorzugt, wie Sie auf so ziemlich jeder Veröffentlichung zum Thema Spieleentwicklung sehen können. Ich persönlich benutze derzeit C für mein Eintauchen in die Spieleentwicklung, aus dem einfachen Grund, dass der von mir geschriebene C ++ - Code Vorlagenfunktionen missbraucht, RAII ausgiebig verwendet, Speicher dynamisch zuweist und andere Dinge, die Sie im Spielcode nach dem, was ich gesehen habe, einfach nicht tun sollten bisher.
Das Festhalten an C zwingt mich, minimalistisch zu sein und darüber nachzudenken, was ich tue. Es kann schwieriger sein, wenn Sie etwas, das die STL Ihnen kostenlos zur Verfügung stellt, erneut implementieren müssen, aber ich habe das Gefühl, dass ich saubereren Code schreibe und eine bessere Zeit habe, das Ding zu debuggen.
quelle
Ich persönlich bin kein Fan von C ++ und ich bevorzuge Java. Die meisten Leute in der Branche verwenden es jedoch und es ist die einfachste Sprache, um ohne Wrapper und virtuelle Maschinen auf andere Plattformen zu konvertieren.
Manchmal funktionieren andere Sprachen jedoch ziemlich gut für die Spieleentwicklung. Ich benutze Java mit LWJGL und es ist erstaunlich. Wenn Sie also mit 3D-Programmierung und OpenGL beginnen möchten, ohne C ++ lernen zu müssen, probieren Sie LWJGL mit Java aus, da es sehr leicht ist und ich denke, dass es sich tatsächlich um C ++ - Code handelt, der über JNI ausgeführt wird.
Vielleicht möchten Sie langfristig zu C ++ wechseln, aber Sie können mit C # oder Java beginnen und üben. Da die meisten Spielcodes aus Erfahrung mit der Sprache stammen, sollten Sie OpenGL jedoch mit einer Sprache üben, mit der Sie vertraut sind. Während Sie Grafik üben, sollten Sie auch GLSL mit OpenGL ausprobieren. Es hat eine sehr C-ähnliche Syntax
quelle