Hi!
Ich möchte mich demnächst an ein größeres Projekt wagen: Ein kommerzielles 3D-Spiel. Noch am Anfang der Planung stehend überlege ich im Moment, welche Programmiersprache wohl die geeignetste wäre. Und hier kommt Ihr und Java ins Spiel: Haltet Ihr Java für eine geeignete Programmiersprache, um damit kommerzielle Computerspiele zu fabrizieren? Ich meine hauptsächlich als Alternative zu C++ bzw. C#.
Also einige Vor- und Nachteile habe ich hier schon zusammengetragen, bin mir aber bei der Gewichtung der einzelnen Punkte und ob ich vielleicht noch Wichtiges übersehen hab, nicht sicher:
Vorteile:
- OOP und geiles handling, Java ist einfach meine Lieblingsprogrammiersprache
- Garbage Collector
- Plattformunabhängigkeit
- * Speed
Nachteile:
- ** Decompilierbar
- *** Der Spieler muss den Java-Interpreter installieren/installiert haben
Sternchen-Bedeutungen:
*) Dass Java eigentlich voll speedy ist, weiß ich ja, aber kann es auch im Bereich Grafik, Sound und - Spieleprogrammierung halt - bei C++ & co. mithalten?
**) Kann man Java immer decompilieren? Ich hab da überhaupt keine Erfahrungen mit. Sind die Klassen und Variablennamen eigentlich im Bytecode enthalten? Gibt es eine Möglichkeit das zu unterdrücken?
***) Kann man den Java-Interpreter nicht eigentlich durch einen in C++ oder einer anderen kompilierten Programmiersprache gemachten Installer mitinstallieren? Auf diese Weise müsste man den Kunden nur darüber informieren bzw. bestätigen lassen, dass sein Java-Stand nun geupdated wird. Wär doch machbar, oder?
Und dann noch ein paar Punkte, in denen ich mich als totaler noob outen muss:
- Wie funktioniert das Zusammenspiel von Java, Grafikengines (ich meine jetzt DirectX und OpenGL) und Betriebssystemen? Kann Java, wenn es unter Windows ausgeführt wird, das dort installierte DirectX, und wenn es unter Linux ausgeführt wird das wiederum dort installierte OpenGL nutzen über eine gemeinsame Schnittstelle bzw. Bibliothek?
- Unter C++ ist es ja mit vielen Compilern möglich, so kleine Assembler-Snippets einzubauen. Gerade in der performancelastigen Spieleprogrammierung ist das unter C++ ja ein wirklich wichtiges Werkzeug. Dass unter Java etwas derartiges allein schon der Plattformunabhängigkeit wegen nicht möglich ist, ist mir schon klar nur würde ich gerne eure Meinung dazu wissen; haltet ihr das für sehr relevant oder gibt es in Java stattdessen andere Optimierungs-Wege?
- In Anlehnung an den überliegenden Punkt: Laut Wikipedia werden oft geräteabhängige Schnittstellengeschwindigkeits-Optimierungen in Assembler geschrieben. Kann ich auch unter Java geräteabhängigen Assemblercode einfügen?
Wow jetzt bin ich selber überrollt, wie viele Fragen ich wohl hatte... Aber gut, dass ich sie jetzt einmal aufgeschrieben hab, ich fühl mich gleich viel klarer im Kopf :bloed:
Achso, wenn jemand Bock hat mitzumachen, mein Skypename ist miikku857 noch sind wir zu dritt (10.11.2011) und entschlossen reich zu werden
Ich freu mich schon auf konstruktive Antworten
MfG, Miikku
PS: Versucht ja nicht es mir auszureden, ich bin entschlossen wie ein BERSERKER :toll: und werde mir alles nötige und noch nicht vorhandene Wissen aneignen
Ich möchte mich demnächst an ein größeres Projekt wagen: Ein kommerzielles 3D-Spiel. Noch am Anfang der Planung stehend überlege ich im Moment, welche Programmiersprache wohl die geeignetste wäre. Und hier kommt Ihr und Java ins Spiel: Haltet Ihr Java für eine geeignete Programmiersprache, um damit kommerzielle Computerspiele zu fabrizieren? Ich meine hauptsächlich als Alternative zu C++ bzw. C#.
Also einige Vor- und Nachteile habe ich hier schon zusammengetragen, bin mir aber bei der Gewichtung der einzelnen Punkte und ob ich vielleicht noch Wichtiges übersehen hab, nicht sicher:
Vorteile:
- OOP und geiles handling, Java ist einfach meine Lieblingsprogrammiersprache
- Garbage Collector
- Plattformunabhängigkeit
- * Speed
Nachteile:
- ** Decompilierbar
- *** Der Spieler muss den Java-Interpreter installieren/installiert haben
Sternchen-Bedeutungen:
*) Dass Java eigentlich voll speedy ist, weiß ich ja, aber kann es auch im Bereich Grafik, Sound und - Spieleprogrammierung halt - bei C++ & co. mithalten?
**) Kann man Java immer decompilieren? Ich hab da überhaupt keine Erfahrungen mit. Sind die Klassen und Variablennamen eigentlich im Bytecode enthalten? Gibt es eine Möglichkeit das zu unterdrücken?
***) Kann man den Java-Interpreter nicht eigentlich durch einen in C++ oder einer anderen kompilierten Programmiersprache gemachten Installer mitinstallieren? Auf diese Weise müsste man den Kunden nur darüber informieren bzw. bestätigen lassen, dass sein Java-Stand nun geupdated wird. Wär doch machbar, oder?
Und dann noch ein paar Punkte, in denen ich mich als totaler noob outen muss:
- Wie funktioniert das Zusammenspiel von Java, Grafikengines (ich meine jetzt DirectX und OpenGL) und Betriebssystemen? Kann Java, wenn es unter Windows ausgeführt wird, das dort installierte DirectX, und wenn es unter Linux ausgeführt wird das wiederum dort installierte OpenGL nutzen über eine gemeinsame Schnittstelle bzw. Bibliothek?
- Unter C++ ist es ja mit vielen Compilern möglich, so kleine Assembler-Snippets einzubauen. Gerade in der performancelastigen Spieleprogrammierung ist das unter C++ ja ein wirklich wichtiges Werkzeug. Dass unter Java etwas derartiges allein schon der Plattformunabhängigkeit wegen nicht möglich ist, ist mir schon klar nur würde ich gerne eure Meinung dazu wissen; haltet ihr das für sehr relevant oder gibt es in Java stattdessen andere Optimierungs-Wege?
- In Anlehnung an den überliegenden Punkt: Laut Wikipedia werden oft geräteabhängige Schnittstellengeschwindigkeits-Optimierungen in Assembler geschrieben. Kann ich auch unter Java geräteabhängigen Assemblercode einfügen?
Wow jetzt bin ich selber überrollt, wie viele Fragen ich wohl hatte... Aber gut, dass ich sie jetzt einmal aufgeschrieben hab, ich fühl mich gleich viel klarer im Kopf :bloed:
Achso, wenn jemand Bock hat mitzumachen, mein Skypename ist miikku857 noch sind wir zu dritt (10.11.2011) und entschlossen reich zu werden
Ich freu mich schon auf konstruktive Antworten
MfG, Miikku
PS: Versucht ja nicht es mir auszureden, ich bin entschlossen wie ein BERSERKER :toll: und werde mir alles nötige und noch nicht vorhandene Wissen aneignen
Zuletzt bearbeitet: