JAVA und Pandora


Wie kommt es dann eigentlich, das Edna eine solch horrende Anforderung hat, obwohl das Spiel im gegensatz zu anderen heutigen Spielen so "billig" ist?

Kann an vielem liegen, angefangen vom Betriebssystem (was den Vergleich mit den alten Spielen allein schon hinfällig macht) bis hin zur schlampigen Programmierung. Da wurde sicherlich nicht viel optimiert, wozu auch, läuft ja auf jedem halbwegs aktuellen Rechner (läuft sogar auf dem Rechner meines Opas und der ist 10 Jahre alt).
Würde ich nicht umbedingt sagen. Ein Großteil der Spiele wird noch in C++ entwickelt, grund dafür ist natürlich die vielen Engines und Bibliotheken. Die meisten entwickeln ja kaum noch engines, sondern entwickeln ihre weiter. Und nicht zu vergessen ist C++ für Realzeitanwendungen eine wirklich gute Sprache, was ich von Java nicht behaupten kann. Mir fällt auf Anhieb kein Spiel ein, dass in Java programmiert wurde und eine spektakuläre Grafik besitzt, die ihre Systemanforderungen gerecht wird.

C++ ist ne tolle Sprache, wenn man alles aus dem System rausholen will. Das ist in komerziellen Projekten wichtig, aber bei Hobbyprojekten (ich gehe hier nur von Spielen aus)? Dort ist C++ meiner Meinung nach völlig überbewertet. Java ist performant genug um so ziemlich alles im Hobbybereich zu realisieren und noch dazu wesentlich moderner als C++. Wie Java letztenendes auf der Pandora laufen wird steht natürlich noch in den Sternen, aber es grundsätzlich als spieleuntaugliche Sprache hinzustellen ist so einfach falsch.
 
Fauk said:
Wie kommt es dann eigentlich, das Edna eine solch horrende Anforderung hat, obwohl das Spiel im gegensatz zu anderen heutigen Spielen so "billig" ist?

Kann an vielem liegen, angefangen vom Betriebssystem (was den Vergleich mit den alten Spielen allein schon hinfällig macht) bis hin zur schlampigen Programmierung. Da wurde sicherlich nicht viel optimiert, wozu auch, läuft ja auf jedem halbwegs aktuellen Rechner (läuft sogar auf dem Rechner meines Opas und der ist 10 Jahre alt).

Warum ist eigentlich die argumentationen von Java-Entwicklung die schlampige programmierung? Und was heißt "schlampig programmieren"? Wie geht das?
Ich erstelle doch nicht ein Array mit 10000 Elementen vondenen ich eh nur max 10 brauche.
C++ ist ne tolle Sprache, wenn man alles aus dem System rausholen will. Das ist in komerziellen Projekten wichtig, aber bei Hobbyprojekten (ich gehe hier nur von Spielen aus)? Dort ist C++ meiner Meinung nach völlig überbewertet. Java ist performant genug um so ziemlich alles im Hobbybereich zu realisieren und noch dazu wesentlich moderner als C++. Wie Java letztenendes auf der Pandora laufen wird steht natürlich noch in den Sternen, aber es grundsätzlich als spieleuntaugliche Sprache hinzustellen ist so einfach falsch.

wesentlich moderner? wieso das? Außerdem kann die performance auch bei hobby-projekten ziemlich wichtig sein. Kenne genug beispiele. Außerdem werden die meisten interessanten Hobby-Projekte, die ich kenne, nicht in Java realisiert
Ich arbeite viel mit Eclipse und in meinen Augen ist die leider auch zu langsam. Allerdings kenn ich keine besseren Alternativen außer MS VC++, was allerdings nicht unter Linux funktioniert. MIt Code::Blocks habe ich leider auch so meine Probleme.
Java ist deshalb eine untaugliche Sprache, weil sie eben nicht so perfomant ist, weil eben alles über JavaVM läuft, was das ganze träge macht. Unter Java zu programmieren soll angeblich angenehmer sein als unter C++, aber die Bedieungsfreundlichkeit ist in meinen Augen nicht so wichtig.
 
Gibt es eigentlich sowas wie "schnelle" Programmiersprachen? Also welche, bei denen das Endprodukt "von haus aus" schneller läuft als wenn es mit anderen Sprachen programmiert wurde? ich kenn mich da nicht so aus.
Immerhin, wenn Edna auf einem NDS läuft, dann ist da garantiert noch VIEL Optimierungspotential in der PC Fassung. ;)
OK, die könnten das Game natürlich auch von 0 aus neu auf dem Handheld umgesetzt haben, basierend auf ner ganz anderen Sprache.

Ach, hab in der Wiki mich mal ein wenig über "Whispered World" schlau gemacht:
http://de.wikipedia.org/wiki/Whispered_World
das sieht echt mal geil aus, unten gibts auch eine Grafik, die die Technik der Engine zeigt, viele Parallax-Layer, so gefällt mir das. :) Währ natürlich der Hammer, wenn es das Game auf der Pandora gäbe aber mit Java wurde an dem Projekt sicher nix realisiert.
 
Fusion_Power said:
Gibt es eigentlich sowas wie "schnelle" Programmiersprachen? Also welche, bei denen das Endprodukt "von haus aus" schneller läuft als wenn es mit anderen Sprachen programmiert wurde? ich kenn mich da nicht so aus.
Immerhin, wenn Edna auf einem NDS läuft, dann ist da garantiert noch VIEL Optimierungspotential in der PC Fassung. ;)
OK, die könnten das Game natürlich auch von 0 aus neu auf dem Handheld umgesetzt haben, basierend auf ner ganz anderen Sprache.

Ach, hab in der Wiki mich mal ein wenig über "Whispered World" schlau gemacht:
http://de.wikipedia.org/wiki/Whispered_World
das sieht echt mal geil aus, unten gibts auch eine Grafik, die die Technik der Engine zeigt, viele Parallax-Layer, so gefällt mir das. :) Währ natürlich der Hammer, wenn es das Game auf der Pandora gäbe aber mit Java wurde an dem Projekt sicher nix realisiert.

Python ist ziemlich "schnell" in dem Sinne, aber auch in C# und Java kommt man sehr schnell zum Ergebnis. Die Sprachen nehmen einem schon viel ab. Außerdem gibt es in diesen Sprachen auch die Möglichkeit alles in UML zu modellieren und in Code übersetzen zu lassen, was auch nochmal Zeitersparnis bringt.
Warum ist eigentlich die argumentationen von Java-Entwicklung die schlampige programmierung?

Ich sagte ja nicht, dass es daran liegt, sondern nur, dass es daran liegen kann. Jedenfalls merke ich schon, dass uns das nicht weiter bringt. Wie wärs wenn wir zum erscheinen der Pandora ne kleine 3D-Anwendung schreiben jeweils in Java und C++, dann sehen wir ja, wie groß der Unterschied wirklich ist;)
 
Jup, die schnelle Entwicklung und auch leichtere Wartung ist ein großes Plus gegenüber C++. Nicht umsonst ist Java die populärste Sprache und C# auf einem aufsteigenden Ast. Entwicklungszeit kostet halt einen Haufen Geld, Rechenleistung hingegen fast nichts.
Wenn Performance alles ist, und das ist es selten, dann ist C++ natürlich die bessere Wahl.
IDEs sind auch so eine Geschmackssache. Mir persönlich gefällt Eclipse deutlich besser als Visual Studio.
 
Fauk said:
Ich sagte ja nicht, dass es daran liegt, sondern nur, dass es daran liegen kann. Jedenfalls merke ich schon, dass uns das nicht weiter bringt. Wie wärs wenn wir zum erscheinen der Pandora ne kleine 3D-Anwendung schreiben jeweils in Java und C++, dann sehen wir ja, wie groß der Unterschied wirklich ist;)

Bubblesort reicht vlt. auch schon aus.... muss nicht gleich 3d sein.
Ich muss zugeben: Ich weiß nicht genau, wie man schlampig programmieren kann. Ich denke nicht, dass Java Entwickler einfach so 1000 Variablen definieren, wovon sie nur ne Handvoll brauchen.
Kann mir einer vlt. erklären, was z.b. schlampig programmieren bedeutet oder mir beispiele nennen?
Klaus said:
Jup, die schnelle Entwicklung und auch leichtere Wartung ist ein großes Plus gegenüber C++. Nicht umsonst ist Java die populärste Sprache und C# auf einem aufsteigenden Ast. Entwicklungszeit kostet halt einen Haufen Geld, Rechenleistung hingegen fast nichts.
Wenn Performance alles ist, und das ist es selten, dann ist C++ natürlich die bessere Wahl.
IDEs sind auch so eine Geschmackssache. Mir persönlich gefällt Eclipse deutlich besser als Visual Studio.

leichte Wartung? Ich glaub, die Vorlesung habe ich verpennt, als man mir gesagt hast, C++ Code sei nicht leicht zu warten. Ich habe ihn meinem rießen batsen Code immer noch nicht die übersicht verloren. Java ist da auch nicht anders.
Wie schnell man wirklich zu ergebnissen kommt in Java, kann ich nix sagen, allerdings sieht bei mir ja die geschichte ein bisschen anders aus, weil ich mich in C++ sehr gut auskenne. Auch spielt Performance besonderns jetzt eine wirklich entscheidene Rolle, wenn man mal bedenkt, das vieles aufgrund zu wenig rechenpower nichtmehr realisierbar ist. Besonders bei Handhelds wird Java immer unbeliebter, man siehe IPhone oder Symbian, wo deutlich C++ bzw. Objectiv C die nase vorn haben. Pandora, Wiz, GP2x, PSP genau das gleiche. Und die meisten Anwendungen, die ich kaufe, sind keine Java anwendungen. da frage ich mich, wo sie die große popularität in Java zeigt.
 
Und Android ist wiederum Java.
Natürlich kann man auch in C++ sauber programmieren, und es gibt bestimmt auch Leute, die in Java alles in eine Klasse packen und prozedural programmieren. Sprachen mit strengem OOP-Zwang machen es einem aber schwerer richtigen Bockmist zu produzieren.
Standard-Software in Java ist in der Tat recht selten und woran das liegt, kann ich auch nicht sagen. Die meisten Entwickler arbeiten aber nicht an Standard-Software, sondern an Individuallösungen oder In-House-Software. Und da ist Java ganz weit vorne.
 
Kann mir einer vlt. erklären, was z.b. schlampig programmieren bedeutet oder mir beispiele nennen?

Das fängt schon bei einem uneffektiven Design an. Weiter gehts dann mit unnötig komplexen (im Sinne von Berechnungsaufwand) Algorithmen. Gerade bei Edna, wo auch viel mit "WYSIWYG"-Editoren gemacht wurde kommt auch schnell mal beides ins Spiel. Der Klassiker wäre aber wohl eine zu genaue Kollisionsprüfung. Hab schon Leute gesehen, die machen bei einem Spaceshooter ständig eine pixelgenaue Kollisionsprüfung anstatt einfach mit Bounding Boxes grob zu überprüfen und dann bei möglicher Kollision mit Vektoren zu checken. Sowas ist z.B. "schlampig" programmieren ;)
leichte Wartung? Ich glaub, die Vorlesung habe ich verpennt, als man mir gesagt hast, C++ Code sei nicht leicht zu warten. Ich habe ihn meinem rießen batsen Code immer noch nicht die übersicht verloren. Java ist da auch nicht anders.

Jop, Wartbarkeit ist bei beiden voll in Ordnung. Bei C++ gibts aber mehr gefahren die Wartbarkeit zu zerstören, aber das ist wohl kaum ein Negativpunkt, da Unfähigkeit des Entwicklers *lach*
Code:
da frage ich mich, wo sie die große popularität in Java zeigt.

Unternehmensanwendungen und Internetgedöns:D
 
Klaus said:
Und Android ist wiederum Java

Android ist nicht in Java programmiert und man muss nicht zwingend dafür in Java programmieren. Das war mal so, ist aber nichtmehr so.

Fauk said:
Unternehmensanwendungen und Internetgedöns:D

hmm... bei Unternehmen kann ich nicht viel sagen. Bis für Eclipse nutzte ich die JVM nicht, in Windows habe ich sie nichtmal installiert.
 
Thrake said:
Klaus said:
Und Android ist wiederum Java
Android ist nicht in Java programmiert und man muss nicht zwingend dafür in Java programmieren. Das war mal so, ist aber nichtmehr so.

Sicher dat! Große Teile von Android sind in Java programmiert. Im Prinzip haben wir da nur Java-Anwendungen auf einem schlanken Minimal-Linux mit Dalvik-VM. Das Native Development Kit erlaubt es auch nicht komplette Anwendungen in C zu schreiben, sondern native Bibliotheken. Selbst wenn man die ganze Funktionalität seiner Anwendung in native Bibliotheken auslagern würde, käme man nicht daran vorbei sein Interface in Java zu schreiben.
 
Klaus said:
Thrake said:
Klaus said:
Und Android ist wiederum Java
Android ist nicht in Java programmiert und man muss nicht zwingend dafür in Java programmieren. Das war mal so, ist aber nichtmehr so.

Sicher dat! Große Teile von Android sind in Java programmiert. Im Prinzip haben wir da nur Java-Anwendungen auf einem schlanken Minimal-Linux mit Dalvik-VM. Das Native Development Kit erlaubt es auch nicht komplette Anwendungen in C zu schreiben, sondern native Bibliotheken. Selbst wenn man die ganze Funktionalität seiner Anwendung in native Bibliotheken auslagern würde, käme man nicht daran vorbei sein Interface in Java zu schreiben.

hmmm... da hab ich was anderes gehört, aber danke für die Info.
 
Fauk said:
Die Diskussion erinnert mich irgendwie an die Zeit, in der viele Leute der festen Meinung waren, dass C++ viel zu High-Level und vor allem zu langsam ist um damit sowas wie Spiele gescheit schreiben zu können. Schon schlimm der Fortschritt :oops:
:-D kann ich verstehen ist ja auch so nur das die Compiler inzwischen schon riesige Sprünge bei C++ gemacht haben und inzwischen auch da schon sehr optimalen Code liefern ;-) Obwohl ich persönlich immer noch der Meinung bin wenn man etwas ganz schnell bzw. klein (vom RAM Verbrauch) haben möchte also z.B. bei Eingebetteten Systemen. Sollte man immer noch lieber C oder gleich ASM benutzen statt C++ :lol: Dennoch wird dies bei Java durch die Ausführung in einer VM nie so sein das es die Geschwindigkeit von C erreichen wird. Höchstens wenn man Java-Compiler benutzt welche den Java-code in Maschinencode übersetzen nur dann kann es die selbe Geschwindigkeit erreichen. Doch das widerspricht eigentlich den Java-Gedanken eine jar-Datei zu haben die auf jeder Maschine sofort ausführbar ist. Und eine Zwischen Lösung eine Datei die das Programm schnell Compiliert und dabei dann Ausführt braucht entweder ewig zum starten oder Compiliert just in time parallel zur Ausführung und verbraucht dadurch mehr Ressourcen als das C-Äquivalent.
Fauk said:
Fakt ist doch, dass man mit Java Spiele schreiben kann und die auch sehr gut laufen, wenn man nicht völlig unfähig ist. Und von den Anforderungen von einzelnen Spielen auf die Spieletauglichkeit einer Sprache zu schließen ist auch nicht wirklich die goldene Argumentation. Nach wie vor ist das Hauptproblem von Java der Speicherbedarf (bei Desktops mittlerweile egal, aber wie schon angesprochen bei Handys fatal), aber die Geschwindigkeit ist schon lange nicht mehr das Problem (zumindest bei 98% aller Anwendungen).
Klar sehe ich genauso nur gerade bei Spielen ist die Geschwindigkeit dann selbst bei heutigen Systemen dann doch oft ziemlich ausschlaggebend! Und Ich halte den Speicherbedarf selbst bei Desktop-PC's noch immer für sehr wichtig. Klar wenn ich nur ein Programm starte und 3GB RAM habe ok (von daher bei Spielen vernachlässigbar, die Geschwindigkeit aber nicht!) aber wenn ich gleichzeitig noch 10-20 andere Programme gleichzeitig laufen habe (bei mir und ich denke auch anderen hier nix besonderes.) kommt man bei einem zu hohen Speicherverbrauch auch schnell an Grenzen. Das ist z.B. eine Sache die ich an FireFox einfach nicht ausstehen kann verbraucht oft über 300MB bei mir... (Aber Lunascape ist einfach noch zu buggy deswegen benutzte ich meistens doch FireFox!)
Fauk said:
Und das C++ jetzt so ne tolle Sprache für Spiele sein soll ist doch auch ein bisschen weit hergeholt, zumindest im Windows-Sektor satteln viele schon auf C# um. Nur noch ne Frage der Zeit bis C++ da aus dem Rennen ist.
Tja C# das ist auch so eine Sache es ist zwar schneller(und verbraucht weniger Speicher) als Java aber ist dennoch langsamer(und verbraucht mehr Speicher) als C/C++ nach einem Test den ich gesehen habe lag es sogar ziemlich genau in der Mitte zwischen Java und C.
Klaus said:
Man kann durchaus performante Spiele in Java schreiben. Eine hübsche Engine ist z.B. jMonkeyEngine.
Klar kann man das ;-) zumindest mit heutiger Hardware (indem Java wie jede andere Programmiersprache die Hardwarebeschleunigung benutzt.) Dennoch kommt es auf das Spiel an denn Grafik kann Java mit Hilfe solcher Engines natürlich ähnlich schnell darstellen, aber die Spiel-Logik selbst kann nicht Hardwaremäßig beschleunigt werden und ist daher natürlich immer noch langsamer als vergleichbarer Code in C/C++. (z.B. bei CPU-lastigen Spielen wie X³ ein absolutes No-Go)
Thrake said:
Warum ist eigentlich die argumentationen von Java-Entwicklung die schlampige programmierung? Und was heißt "schlampig programmieren"? Wie geht das?
Ich erstelle doch nicht ein Array mit 10000 Elementen vondenen ich eh nur max 10 brauche.
Thrake said:
Kann mir einer vlt. erklären, was z.b. schlampig programmieren bedeutet oder mir beispiele nennen?
Schlampige Programmierung wäre z.B. ein Array zu benutzen wenn man nicht weiß wie viele Elemente da drin sein werden (oft eine LinkedList zu bevorzugen).
Oder wenn man eine Einfach gekettete Liste benutzt und oft auf den Vorgänger eines Elementes zugreifen muss. (da wäre eine Doppelt gekettete Liste natürlich praktischer!)
Oder man, wenn man ein Array benötigt gleich eine HashMap benutzt.
etc. etc. es gibt viele Möglichkeiten Code ineffizient zu programmieren, bedenke doch z.B. die ganzen Sotieralgorithmen. Alle tun das selbe aber manche in O(n²) andere in O(n*log(n)) (einfach ausgedrückt manche langsam andere schnell ;-) ).
Allerdings gibt es natürlich auch andere Arten von Schlampiger Programmierung z.B. wenn man bei der Anwendungsanalyse schon große Fehler macht und und dadurch um bei Spielen zu bleiben z.B. ein Bild für jeden Frame völlig neu aufbauen lässt obwohl sich in vielen Bereichen des Bildes nichts verändert hat und es reichen würde ein kleinen Teil neu zu Zeichnen.
Fauk said:
Fusion_Power said:
Gibt es eigentlich sowas wie "schnelle" Programmiersprachen? Also welche, bei denen das Endprodukt "von haus aus" schneller läuft als wenn es mit anderen Sprachen programmiert wurde? ich kenn mich da nicht so aus.

Python ist ziemlich "schnell" in dem Sinne, aber auch in C# und Java kommt man sehr schnell zum Ergebnis. Die Sprachen nehmen einem schon viel ab. Außerdem gibt es in diesen Sprachen auch die Möglichkeit alles in UML zu modellieren und in Code übersetzen zu lassen, was auch nochmal Zeitersparnis bringt.
Er hat die Frage gestellt ob es Programmiersprachen gibt die schnelleren[\b] Code erzeugen als andere nicht ob es Programmiersprachen gibt mit denen man schnell[\b] Code erzeugen kann. ;-)
Und Ja die gibt es den schnellsten Code kann man immer noch mit ASM (Assembler) schreiben allerdings muss man hierbei alle Optimierungen selber vornehmen und ist für Anfänger nun GARNICHT zu empfehlen (man sollte schon genau wissen wie der Rechner funktioniert ALU/FPU/Register/Memory etc.).
Danach kommen andere prozedurale (also ohne Objekt-Orientierte Programmierung) Compiler-Sprachen welche effizienten Maschinencode erzeugen (hierbei kommt es aber auch oft auf den verwendeten Compiler an für C z.B. gibt es den gcc den von Microsoft einen von Borland etc. jeder erzeugt anderen Maschinencode) dazu gehören z.B. C aber z.B. Pascal und einige Basic-Varianten wie z.B. PureBasic etc.
Dann kommen eigentlich Objektorientierte(OO) Sprachen wie C++ wobei es wie gesagt immer auf den Compiler und das Programm selbst ankommt so kann C++ Code auch schneller sein als Code der oben genannten Sprachen wenn für C++ ein guter und für die anderen ein schlechterer Compiler benutzt wurde oder das Programm durch die OO Herangehensweise einfacher zu lösen ist! (Was nur bedingt stimmt da der OO-Code ja in prozeduralen ASM-Code übersetzt wird.)
Dann kommt Java welche in einer Virtuellen Maschine läuft und dadurch viele Ressourcen verbraucht aber eben auf vielen verschiedenen Rechnern mit der gleichen Datei läuft. Durch JIT und andere Techniken ist es aber immer noch schneller als Interpreter-Sprachen.
Und die kommen hier am Schluss das sind die langsamsten die Interpreter-Sprachen weil die während der Ausführung in Maschinencode übersetzt werden. Das sind dann Sprachen wie PHP (ok nur bedingt als Programmiersprache zu sehen!), Python(Wobei der Code hier auch oft schon wie Java in einen Zwischencode Übersetzt wird.) oder andere Basic-Varianten.

:oops: das wurde ein Text... Sorry Leute :unsure: nicht schlagen...
 
Paperscreen said:
http://en.wikipedia.org/wiki/Java_performance#Comparison_to_other_languages
Bei Java hängt halt viel von der VM ab. Bei Sprachen ohne VM halt von irgendwelchen Compiler Flags. Gibt halt aber auch Fälle, in denen Java schneller ist.
Wollt das nur mal anmerken, da teilweise gesagt wurde, dass Java immer schlechter als C++ ist;)

Das Paper, das die als Quelle für das "schnellere Java" angegeben haben, wurde anscheiend nicht aktzeptiert, was auch der Grund ist, warum ich es z.b. nicht auf IEEE finden kann.
Leider bin ich gerade zu Hause und kann mir leider dieses Paper nicht runterladen: http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fstamp%2Fstamp.jsp%3Ftp%3D%26arnumber%3D736311%26isnumber%3D15840&authDecision=-203

Bei gelegenheit schaue ich mir das mal an...

-- Mi Dez 23, 2009 14:09 --

habe mir jetzt mal das Paper ankuckt.
Bei dem Paper ging es um einen Performance-Vergleich zwischen C++, Java und FORTRAN für Numerische Operationen.
Als Beispielcode wurde das verwendet:
Code:
<i>
</i>for (i=0; i<m; i++) {
     for ( j = 0 ; j<p; j++ ) {
         for (k=0; k<n; k++) {
               C [ i ][ j ] += A [ i ] [ k ] * B [ k ] [ j ] ;
         }
     }
}

Java und C++ Code sehen eigentlich gleich aus, bei FORTRAN ist es ein bisschen anders (wegen der Syntax).

Bei einer Matrix-Multiplikation einer 64x64 Matrix kam er auf dieses Ergebnis:
Java: 2,2Mflops
C++: 137,6 Mflops

Bei einer 500x500 Matrix:
Java: 1,6Mflops
C++: 91,1 Mflops

Es geht hier jetzt nur um den oben genannten Code. So wie ich das nun verstanden habe, konnte er mithilfe einen (nicht so legalen) Codeoptimierung die Performance von Java von 2,2Mflops auf 33,3Mflops verbessern (für eine 64x64 Matrix). Den Code dafür hat er auch gepostet und ist ein bisschen länger.

Im Grunde ist das ganze allerdings so: Im direkten Vergleich ist Fortran besser als C++ für numerische Operationen, Java natürlich am schlechtesten. Man kann allerdings noch viel an den oben genannten Code optimieren, sodass Java performancetechnisch besser wird. Auch hat es geschafft, den Code so stark zu optimieren, dass er auf 209,8Mflops für Java kommt (Fortran: 193,3). Allerdings kann man die Code-optimierungen auch in C++/Fortran machen und erhällt dafür ebenfalls eine bessere Performance als Java, allerdings ist Java dann auch nicht soweit von C++/Fortran entfernt. Auch schreibt er, dass seine Code-optimierung nicht so ganz legal für Java ist. Ich weiß nicht ganz genau, was er damit meint, aber ich denke mal, der wird schon wissen, wovon er redet.
 
Hallo Community,
zum Anfangsposting... ich hoffe doch das java auf dem Gerät einzug erhält.
Man kann mit Java nichts verkehrt machen. Der ruf das java langsam ist, ist alt und unwahr.
Man kann mit Netbeans (ebenfalls in Java geschrieben) wunderbar schnell und effektiv Java Coden.


Java und Games:
Hier mal eine alte Doom2 Portierung in Java:
http://bytonic.de/html/jake2.html

Warum es keine aktuellen hightech Games in Java gibt ist klar das für diese zwecke c++ einfach das bessere mittel ist und sein wird. Das Java (oder generell VM basierende sprachen wie c#) generell zu lagsam sind für Games will ich jetzt mal dahingestellt lassen da diese Sprachen auch NUR opengl oder dircetx ansprechen um Objekte zu zeichnen.

Die aller meisten Gameengines lassen skripting zu wie z.b. javaskript, LUA oder AngelSkript oder einfach eigen entwickelte und interpretierte Sprachen und ich bin mir sicher das im vergleich dazu java nicht schlechter abschneidet!
 
nexus said:
Man kann mit Java nichts verkehrt machen. Der ruf das java langsam ist, ist alt und unwahr.

lies mal das, was ich einen post über deinen geschrieben habe.
 
War nicht direkt an dich gemünzt ;)
Ich hab deinen Beitag schon verstanden und würde ihn auch so unterschreiben.

Gibt es den was offizielles ob Java einzug erhalten wird?
 
Also ich bin davon überzeugt, dass Java für Spieleprogrammierung nur sehr bedingt zu gebrauchen ist (eventuell für rundenbasierte Games...). Man sieht ja z.B. an OpenOffice, was rauskommt, wenn man Java innerhalb eines größeren Projektes, und sei es auch nur für Add-ins, benutzt...
Es kann eigentlich nur ein Nachteil sein, wenn eine VM oder sonst ein Interpreter während der Laufzeit irgendwelchen Code, und sei es Bytecode, für das Zielsystem umsetzen muss. Das trifft zwar auch auf LUA zu, aber offenbar ist ein LUA-Interpreter oder eine VM (keine Ahnung in welcher Form diese Skripte bei der Laufzeit vorliegen) doch handlicher... Für das bisschen KI und Gegnersteuerung ist ein eingebautes Java wohl doch Overkill, und LUA besser geeignet, sonst wäre das nicht so verbreitet...

Generell bin ich eh nicht so der Fan von irgendwelchen virtuellen Geschichten, besser ist IMHO ein effektiver Compiler, der schnellen Maschinencode erzeugt. :)

Bei Java finde ich eh, dass da Sun bei der Einführung ganze Marketingarbeit geleistet hat... Von wegen so super Plattformübergreifend und so. Und die ganzen akademischen Informatikfreaks, die ihre Wissenschaft abgehoben von der Hardware betreiben wollen, springen natürlich voll darauf an. ;)

Meiner Meinung nach tuts aber auch ein Crosscompiler für viele Zwecke... Gerade wenns um Geschwindigkeit geht. Java mag vielleicht ganz nett sein für irgendwelche Client-Server-Geschichten im Browser mit Applets im Intranet einer größeren Firma, die sehr heterogene Handware einsetzt, aber nicht für Games. Man siehts ja an den Handygames: Für jede Modellreihe eine eigene Version, ich dachte sowas sollte bei plattformübergreifenden Konzepten nicht vorkommen?? :confused::

Bei Spielen würd ich immer sagen, dass klassische Compilersprachen (eben C/C++, Pascal/Delphi, Basic) besser geeignet sind. :)
 
Dafür gibt es in Java den -server Parameter.
Dieser "compiliert" den gesamten Code beim starten und nicht erst wenn die Klassen/Methoden genutzt werden.

Es gibt übrigens Gameengines (z.b. visual3d) die 100% in c# geschrieben sind.
Man muss sich immer im klaren sein das die allermeiste zeit bei Games durch das Rendern "vergeudet" wird und diesen Job übernimmt ja die GPU ;)
 
Java 4 ever

<r><QUOTE author="Thrake"><s>
Thrake said:
</s>ist nicht schlecht gemacht. <br/>
Dumm nur das Java gerade am aussterben ist.<e>
</e></QUOTE>

Wieso das wenn ich fragen darf ? Ich hatte vorgehabt mir Java anzueignen weil ich eher das Gegenteil angenommen habe und dachte das Android etc. gerade im Aufschwung sind <E>:)</E></r>
 
Back
Top