Die richtige Programmiersprache?

Hallo liebe Community,
heute richte ich mit mal mit einer Frage an euch, in der ich mir (ziemlich) sicher bin verschiedene Antworten zu bekommen, würde mich aber dennoch über eure Meinungen freuen.
Zum eigentlichen Problem: Ich habe mir vor langer Zeit mal vorgenommen ein Spiel zu Programmieren. Damals sagten mir alle dass das zu schwer sei, aber ich hab mein bestes gegeben. Erschwehrend kommt dazu, dass ich mit freeware oder open-source arbeiten wollte/musste.
Mitlerweile Arbeite ich mit BLENDER3D und Gimp, um die Meshes und die Skins zu erstellen. Ich kan auch mappen, bisher vor allem mit dem UDK (unreal development kit).

Mir wird aber nun bei komplexeren Sachen klar, dass ich eine Programmierspache lernen muss um das zu bewältigen.

Welche ist denn da angemessen?
Java?
C++?
Unreal?
Mein Problem ist, dass ich noch kaum diese sprachen kann und daher eher ein einsteiger bin. Ich will aber auf JEDEN FALL mit 3D meshes und mappen arbeiten können. Was empfehlt ihr mir?

Bereits Danke:
TheSchnabeltier

Vorteil von Java für dein Vorhaben, ist klar das es leicht auf verschiedene Platformen lauffähig wird. Der Große Nachteil ist und bleibt das SW in Java immer langsammer laufen wird als SW die von von herrein auf eine gewisse Platform zugeschnitten ist.

Also, wenn die die Spiele Performence nicht ganz so wichtig ist würde ich Java empfehlen, willst du aber ein schnell laufendes Spiel, wirst du wohl in die C Dialekte gehen müßen…

Was die wirkliche Spiele tauglichkeit der beiden Sprachen angeht, kann ich dir leider nicht helfen.

Hallo Schnabeltier,

du wirst bei der Entwicklung eines PC-Games mit 3D Grafik nicht um die Nutzung einer Grafikbibliothek ala OpenGL oder DirectX herumkommen. Beide liegen als C/C+±Bibliotheken vor. Die Unreal Engine liegt, meines wissens nach auch in C/C+±Bibliotheken vor.
Man kann native Bibliotheken zwar auch mit JNI in einem Java-Programm nutzen, dass schlägt sich aber ganz böse in einer schlechten Performance nieder.
Ich würde an deiner Stelle auf C++ setzen. Als Tipp: Die Bücher von David Scherfgen sind sehr schön geschrieben und behandeln die Entwicklung eines 3D Games mit allen, für den Einstieg notwendigen Facetten.

Also dann, viel Erfolg und gutes Gelingen.

Beste Grüße
Hubdehoe

Zunächst einmal: Herzlichen Glückwunsch zur Idee, Programmieren zu lernen. Privat Spiele programmieren macht Spass, kann aber manchmal auch kompliziert sein. Ich habe dadurch das Programmieren gelernt. Allerdings habe ich nicht mit komplizierten Grafiken angefangen, sondern mit einfachen Textuellen Spielen, die ich dann nach und nach mit Grafiken angereichert habe. Hier ein Link auf ein Projekt, was momentan offensichtlich stockt, was allerdings versucht, ein RPG mit Java und 3d umzusetzen (Englisch) http://jcrpg.blogspot.com/

Die Frage allein nach der Programmiersprache ist zu einfach. Zunächst einmal nehme ich an, Sie möchten für den PC programmieren. Sollte dies nicht so sein, erübrigt sich die Frage nach der Sprache schon, dann hängt es nämlich von der Hardware ab, und was dort unterstützt wird.

Die Frage allein nach der Programmiersprache ist auch wiederum die falsche, weil in den Definitionen von Java und C++ keine Handhabung von irgendwelchen Grafiken definiert ist. Unreal kenne ich nicht. Vielmehr müsste man nach einer Bibliothek fragen, die diese Zwecke erfüllt.

3d wird normalerweise von OpenGL unterstützt. Beides wird sowohl in C++ als auch in Java unterstützt. Es gibt dann mit Sicherheit noch Bibliotheken, die diese Funktionalität erweitern, um bestimmte Dateiformate zu unterstützen (das verlinkte Projekt verwendet auch eine bestimmte Bibliothek dafür).

Wenn Sie jetzt noch keine Programmiersprache sprechen, dann ist es ein weiter Weg dorthin, und je jünger Sie sind, desto einfacher wird es.

In der (Spiele)Industrie wird in C++ programmiert, allerdings sind bestimmt einige Ansätze nicht frei verwendbar, sondern kosten Lizenzgebühren. Das fängt bei der IDE an (eclipse ist eine freie Version, ursprünglich für Java, aber mittlerweile gibt es auch C++ downloads dafür- allerdings habe ich C++ bis jetzt nur mit Microsoft Visual C++ programmiert). Welche Bibliotheken man hier benutzt, um ihr Problem zu lösen, müssen Sie herausfinden, dass kann ich Ihnen nicht sagen. Für Spielekonsolen braucht man auch meist für jede Plattform einen teuren SDK, den sich normalsterbliche nicht leisten können. Dieser bringt dann allerdings schon Lösungsansätze für viele Problemstellungen mit.

Java wird für Spiele meist die eher 2te Wahl sein, da die Sprache möglicherweise nicht auf allen Plattformen ausführbar ist (Playstation, Nintendo Wii etc.), bietet aber bei möglichen zur Laufzeit auftauchenden Fehlern die meiste Hilfe (sog. stacktrace).

Je nachdem, wo man bei dieser Aufgabenstellung langfristig hin will (Professionell und breit vermarkten oder lieber Spass und nicht auf Konsolen) wird man sich für das eine oder andere entscheiden.

Gruß und viel Spass,
Michael

Vielen,vielen Dank für die ausfürliche Antwort.
Ich wollte zwar auf Freeware bleiben, aber stehe mitlerweile anders dazu, und denke ich kann aus der Tatsache, dass ich schüler bin da dann einen Vorteil ziehen.

So oder So vielen dank für die Aufschlussreiche Antwort!

Vielen Dank für die Schnelle und dennoch Präziese Antwort! Ich schau mich mal nach den Büchern um, wollte aber mal die versch. Meinungen hören :smile:

Nochmals Danke:
TheSchnabeltier

Moin Moin,
also die Frage ist was willst du und was kannst du schon.
Bist du erfahren würde ich dir zu C++ raten.
Auf Grund der Aussage das Unreal ein Programmiersprache ist schließe ich jedoch das dem nicht so ist.
Also wäre C# eine gute Alternative da es immernoch mehr Biblitheken hat wie Java (aktuell) und dennoch nicht so viel Zeigerchaos etc. zulässt.
Es gibt auf dem Bereich der 3D-Programmierung aber jede Menge Sprache und Möglichkeiten. C# ist hier nur ein einstieg und wenn du wirklich mehr willst wirst du früher oder später für das erstellen von 3D-Objekten nicht um prof. Software herum kommen.
Grüße
Razer

Hmm, eine allgemein gültige Antwort auf diese Frage wird dir wohl keiner geben können. Das hängt von sehr vielen Faktoren ab, zB welche Art Spiel mit welchen Features du schreiben willst, wies um deine Vorkenntnisse bestellt ist usw.

Wenn du aber sagst du musst erst eine Sprache lernen dann wirst du dich vermutlich eher um die Spiellogik kümmern wollen, anstatt zB. das Rendering selbst zu programmieren.

Ohne dich, deine Situation (oder auch die UDK) genauer zu kennen schätze(!) ich also mal dass du am ehesten mit der UDK weiterkommen wirst, da dort doch schon Vieles fertig angeboten wird dass du dir sonst erst selbst schreiben oder Bibliotheken für die jeweilige Sprache suchen (und natürlich auch lernen) müsstest.

Noch ein kleiner Tip am Rande - geh nicht zu ehrgeizig an so ein Projekt, es passiert viel zu leicht dass die Wünsche und Vorstellungen ein Ausmaß annehmen dass einem selbst auf einmal als nicht mehr bewältigbar erscheint.

Just my two cents aber ich hoffe trotzdem dass es dir etwas weiterhilft.

MfG, Daniel

Hallo TheSchnabeltier,

leider komme ich erst jetzt dazu dir zu antworten. Ist das Problem noch aktuell? Bitte gegebenenfalls noch mal melden.

Viele Grüße

Benjamin