GameDevelopment: (Java & OpenGL) oder (C++ & OpenGL - & SDL)?
Seit Java OpenGL unterstützt, was ist die beste option für ein Spiel zu entwickeln?
Java
+OpenGL
C++
+SDL
+OpenGL
Ich immer vermieden Java (in game development, natürlich), weil es die Geschwindigkeit. Aber, ich entdeckte, dass Java OpenGL unterstützt. So, ich denke, dass Geschwindigkeit nicht das problem sein mehr... Was sollte man wählen? Gibt es Bemerkungen?
Java wäre viel einfacher für mich, weil meine Erfahrungen in Java und der Garbage Collector.
Dank
- java ist nicht langsam. java-Programmierer schreiben, langsamen code.
- Die Verfügbarkeit einer API-Bindung an eine Sprache, die nichts sagt, nichts über die Leistung der Sprache-Implementierungen. Auch OpenGL ist eine dieser Schnittstellen für die Implementierung einer Sprache verbindlich Gesichter wenig bis gar keine Hindernisse, egal was die Sprache ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Würde ich vote für C++ für die einfache Tatsache, dass Sie eine zuverlässige Destruktor in Ihre Objekte. So können Sie wickeln viele der OpenGL-Komponenten (Puffer, Texturen, etc.). Sie können wissen, dass, wenn das Objekt erstellt wird, der Vermögenswert zugeordnet ist, und wenn ein Objekt zerstört wird (oder goes out of scope), die Anlage ist aufgeräumt.
Ist es sicherlich getan werden kann, in Java. Minecraft wurde in Java, und es hat gezogen, in mehr als $25 Millionen.
Meiner Meinung nach, wenn Sie eine Idee für ein Spiel in deinem Kopf ist es egal was Sie schreiben Sie es mit (zuerst), C/C++, Java, pen & paper... Wählen Sie die Sprache, in der Sie mehr sind komfortabel mit, Prototyp und testen Sie Ihre Spiel-Idee, sobald Sie eine grobe Skizze und weiß, was Sie tun müssen, werfen die Prototypen -, design-gameplay & Architektur und starten Sie dann die Kodierung der eigentlichen Sache. Nicht optimieren, bis nach haben Sie die meisten oder alle der Funktionen der Arbeit (im Allgemeinen, gibt es immer kleinere bugs zu jagen) und Sie tatsächlich sehen, wo die Engpässe sind.
Ich habe gesehen, es passieren immer und immer wieder, Spiel-Programmierer unter den schlimmsten vorzeitige Optimierer immer versuchen, squeeze-out ein paar Zyklen von etwas trivial, während fehlt die größten Engpässe, und optimieren Sie dann etwas mehr (am falschen Ort). Ich habe auch festgestellt, mich schuldig dies viele Male. Ich würde sagen, don T pick C++ (oder Java für diese Angelegenheit), weil die Geschwindigkeit, die Sie bekommen können sehr gute Leistung von beiden, wenn man es "richtig". Wenn nötig, können Sie immer Umschalten auf eine andere Sprache, wenn die Sprache selbst ist wirklich der Flaschenhals ist, oder wirklich verhindern, dass Sie etwas zu tun. Java ist nicht automatisch langsam und C++ ist nicht automatisch schnell Sie gehen können (sehr) schief mit den beiden. Ich verwendet, um root für C und C++ in alles, nachdem ich aber gearbeitet mit Java schon eine ganze Weile, ich weiß wirklich nicht verpassen, sich alle Mühe zu viel.
Gibt es viele (bereits optimiert und Recht einfach zu bedienen) Spiel-engines zur Verfügung, die für beide Sprachen, so gibt es keine Notwendigkeit, Rollen Sie Ihre eigenen... es sei denn, Sie wirklich wollen. In meiner Erfahrung, die meisten Bastler "Spiel" Programmierer neigen dazu, mehr daran interessiert, in der technischen Seite der Dinge, als im eigentlichen Spiel (mich eingeschlossen) ;), Sobald alle technischen Hürden genommen sind fertig und man bekommt ein schönes Modell/Reihe von sprites/Partikel-Effekte, läuft mit einigen shader-Effekte, die Begeisterung scheint zu verblassen... Aber lass mich nicht entmutigen, game programming ist sehr lustig, auch wenn man nie wirklich fertig nichts (ich würde nicht sagen, alle meine eigenen Projekte fertig).
Habe ich noch nicht codiert, keine Spiele für eine Weile, aber für C++ - 2D - SDL ist ein guter Kandidat, eine andere option könnte sein,SFML, oder wenn Sie möchten, eine untere Ebene, die Kontakt mit OpenGL, Sie könnten versuchen, sich mit GLFW + BODEN + einige audio-Bibliothek. Für ausgewachsene 3D, ich würde sagen, versuchen, entweder OGER oder Irrlicht + Irrklang (es gibt wahrscheinlich Lasten des anderen).
In Java, es gibt mindestens Slick2D, Golden T Game Engine und für Low-level Zugriff, LWJGL (obwohl ich denke, Sie können auf LWJGL über Slick2D auch). Für 3D, jemand empfohlen jMonkeyEngine zu mir, aber ich habe es nie versucht.
Ich würde mit C++, SDL und OpenGL.. SDL wird immer überarbeitet, mit 1,3 im moment, und es wird wirklich gut. Meiner Meinung nach sollte man es in C++ wie Sie gesagt haben, Sie würden sich wohler fühlen, mit Java, komfortabel, nachdem ein Spiel in C++ wäre sehr vorteilhaft. Sie wäre nicht nur ein Spiel, sondern mehr an der gleichen Zeit.
Java hat sich als genauso schnell, wenn nicht schneller als C++, wenn gewährt, Sie nicht erreichen, diese Ergebnisse ohne eine kleine parameter-tweaking und eine sorgfältige überwachung des garbage Collectors. Wenn Sie verfolgen wollen, game design mit Java, würde ich sagen, eine gute Wahl zu machen, vorausgesetzt, Sie studieren, wie zu nähern, ist es zuerst.
Wenn Sie die Java-route, die Sie brauchen können, um dem Schiff die JVM zusammen mit Ihrem Spiel. Das ist nicht zu sagen, tun Sie es nicht, aber viele Menschen können nicht Java installiert haben oder nicht aktuell genug-version für die Funktionen und Leistung, die Sie möchten. Ich habe nicht geschaut in den Lizenz-Anforderungen für den Versand der JVM, aber das ist wahrscheinlich etwas, das Sie untersuchen möchten, bevor die Entscheidung fällt.
Sollten Sie sich auch bewusst sein, dass, wenn hoch die Abstimmung einer app, obwohl die Java-API ist die gleiche auf allen Plattformen, dass es Unterschiede gibt, weil die Implementierungen von Personen, die oft verwendet das zugrunde liegende Betriebssystem. Also ich bezweifle, dass die Verwendung von Java würde reduzieren Sie den Testaufwand für ein Spiel.
Es hängt wirklich davon ab, welche Sprache Ihr am meisten verwendet. Es ist ein steiler Lernkurve mit c++ als mit java. Wenn Sie nicht in keiner der Sprachen, und ist begierig, etwas in der Entwicklung getan ich würde empfehlen java.
... Und eine kleine Randnotiz. Wenn Sie völlig neue würde ich auch empfehlen, sich auf XNA, aber es basiert auf DirectX. Und Sie müssen wissen, einige C#.
Nun, ich habe programmiert, alle meine Spiele in SDL und ich würde auf jeden Fall empfehlen mit c++. Wenn Sie möchten, Blick auf SFML!
http://www.sfml-dev.org/
SFML ist bereits integriert mit OpenGL, und es ist ziemlich einfach zu bekommen und läuft mit game programming.
Es hängt wirklich davon ab, welche Art der Spiele, die Sie erstellen möchten und welche Programmiersprache Ihr mehr komfortabel mit.
Wenn Ihre Planung, um das große Spiele in der Zukunft , C++ ist am besten für die Allgemeine Erfahrung. Die meisten kommerziellen Spiele sind geschrieben in C/C++. Microsoft hat auch XNA-framework, die C# verwendet
Id immer noch mit der Programmiersprache Ihrer mehr bequem mit, Sie sind beide sehr
Allerdings, wenn Sie nicht Geist das lernen ein bisschen mehr dann geht das auch mit C++