PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GDC 2k2: Java als universelle Gameplattform ?


HiddenGhost
2002-03-26, 13:27:13
Eine durchaus interessante News auf heise (http://www.heise.de/newsticker/data/daa-26.03.02-000/) berichtet ,dass Sun mit Gamepublishern wie EA und Sony während der GDC2k2 diskutiert habe, in wie weit Java als universellle Gameplattform für zukünftige Games dienen könnte, also es irrelevant sei, ob das Game für ein bestimmtes OS oder für irgendeine Konsole (XBox,GC oder auch PS2 ?!?) programiert worden sei und "in wie weit man die Medien untereinander austauschbar seien ,ohen kosten für Portierungen ausggeben zu müssen.

Vielleicht hat das ja auch das Ziel Spiele für Handys über JavaOne (http://www.heise.de/newsticker/data/jk-26.03.02-004/) zu pushen.

Was haltet ihr von dieser Entwicklung, die ja für die alternative OSe wie Linux oder OS X von Apple durchaus positiv wäre ??????

Ceiser Söze
2002-03-26, 15:17:18
Die Ausführgeschwindigkeit von Java-Programmen ist im Vergleich zu in der Branche etablierten Sprachen (hauptsächlich C++) zu langsam, als dass es eine echte Alternative darstellen könnte...

Stone2001
2002-03-26, 15:18:43
Im Grunde ist es ein gute Idee von Sun sowas voran zu treiben! JAVA wird von fast jedem Betriebsystem unterstützt und ich brauch den Quellcode dann nur einmal schreiben und der wird dann für jedes Betreibsystem entsprechend compiliert! Dies würde den Entwicklern eine Menge Geld ersparen und Betreibsysteme wie zum Beispiel Linux auch unter den Spielern interesant machen!

Wir werden sehen, ob was daraus wird!

Stone2001
2002-03-26, 15:23:09
Originally posted by Ceiser Söze
Die Ausführgeschwindigkeit von Java-Programmen ist im Vergleich zu in der Branche etablierten Sprachen (hauptsächlich C++) zu langsam, als dass es eine echte Alternative darstellen könnte...

hmm, jetzt kommt die alte Streit-Frage auf! ;)
Das JAVA langsamer ist stimmt nicht ganz! Ich persönlich habe die Erfahrung gemacht, das JAVA Programme langsamer sind, aber unser Cracks, auf dem Gebiet der JAVA Programmierung, in der Uni sind felsenfest davon überzeugt, das ein guter JAVA Code schneller ist (oder zumindest gleich gut) als ein C++ Code! (Die Sprachen sind eng miteinander verwandt, im Endeffekt ist der Compiler ausschlagegebend!)

HiddenGhost
2002-03-26, 16:06:01
Originally posted by Stone2001


hmm, jetzt kommt die alte Streit-Frage auf! ;)
Das JAVA langsamer ist stimmt nicht ganz! Ich persönlich habe die Erfahrung gemacht, das JAVA Programme langsamer sind, aber unser Cracks, auf dem Gebiet der JAVA Programmierung, in der Uni sind felsenfest davon überzeugt, das ein guter JAVA Code schneller ist (oder zumindest gleich gut) als ein C++ Code! (Die Sprachen sind eng miteinander verwandt, im Endeffekt ist der Compiler ausschlagegebend!)

D.h wenn die Publisher Java den Vorrang geben würden, könnten JavaGames programiert werden, die den heutigen DX/OGL Schnittstellen in nichts nachstünden , oder wie kann man das verstehen?

Stone2001
2002-03-26, 17:22:03
Originally posted by PCgenius


D.h wenn die Publisher Java den Vorrang geben würden, könnten JavaGames programiert werden, die den heutigen DX/OGL Schnittstellen in nichts nachstünden , oder wie kann man das verstehen?

yup, so in etwa!

Unregistered
2002-03-26, 19:22:30
Auf aktuellen Konsolen und auf allen PC Betriebssystemen ist C++ als schnelle Sprache auf einem gewissen Mindestlevel sehr gut unterstützt und ohne Verrenkungen sehr schnell. Das Problem der Kosten für die Unterstützung der verschiedenen Plattformen liegt in der Engine und im Contentbereich.

Engine: Renderware, Lithtech, Unreal, Doom machen es vor. Es ist möglich eine Crossplattform Engine zu entwickeln, die es für die Anwendung (das eigentliche Spiel) sehr leicht machen, durch reines Neucompilieren eine andere Plattform anzuwählen. Die Hauptperformance muß eh aus der Engine kommen, die Spiellogik obendrüber muß nicht handgetuned sein. Hier stellt sich bei Java die gleiche Problematik wie bei C++: es muß eine gute plattformübergreifende Engine geben. Wenn Sun tatsächlich sowas auf die Beine stellen will (und das noch billig!), dann haben sie ne Chance. Aber dann müssen sie sich gegen die Branchengrößen auf fremden Terrain durchsetzen. Aua.

Content: Hier liegt ebenfalls ein großer Hund begraben. Z.B. die Farbgebung und Auflösung der Texturen muß auf das Ausgabemedium angepaßt sein, Fernseher macht aus der geilen PC Textur erstmal Müll => Kosten und Zeitaufwand. Und Maus/Tastatur ist was anderes als GamePad, das erfordert sogar evtl. Anpassungen im Game Design (Extremfall: Black&White, da hat das Konsolenspiel völlig andere Schwerpunkte als die PC Versionen). Oder auch das Leveldesign. Oder die Polybudgets, oder oder oder. Das kann eine Engine nicht auffangen, hier ist immer Handarbeit vergraben und somit Kosten. Da kann mir Java auch nicht helfen....

Pitchfork

aths
2002-03-26, 21:55:04
Es kommt auf den HW-Support an, und weniger auf die Programmiersprache, unter dem die Funktionen aufgerufen werden. C++ hat sich durchgesetzt (und es gibt vermutlich für mehr Systeme C/C++-Compiler als für Java.)

Wuzel
2002-03-27, 00:09:01
Jaja, nur mal so zur Info , verkettete Listen, und Vektoren unter Java sind schneller ( und einfacher zu basteln :) )
Das berühmte "Sieb des Eratosthenes" ist unter Java 25% schneller auf gleicher HW.
Wie das mit Java 3D weitergeht und was sache iss, hab ich vor nem Monat schon mal geschrieben.
Es wird schon seit 2Jahren an einer erweiterten Java 3d API geschrieben, erste Ergebnisse wurden zu versuchszwecken dem SDK beigefügt, zwar kann man damit keine Games im grossen Stille bauen ;D aber man sieht das sich was tut und darum gehts ja auch.
Inzwischen gibt's unter der Hand schon O Gl Artige Klassen für NV Karten.
Die Teile haben aber meiner Ansicht nach mit dem erscheinenden 3d Support nichts zu tun, hier sagen die Papiere andere sachen.
Ich denke das erstmal nen vernünftiges Swing herauskommt um Java diesen lästigen 'ist lahm' Anhängsel zu entledigen.
Dann werden nach und nach 3D Operationen von einem speziellen Interpreter, der von den Chipbauern kommt, eingebaut.
So gab es ja schon mal auf ner Konferenz erste Demos von Zoom Fenstern unter Swing.

Zur Zeit werkelt Sony mit IBM ( IBM ist einer der grössten Java Fans )
an Home Entertainment Systemen die vollständig auf Java aufbauen, gerüchten Zufolge soll die PS3 eine reine Java Maschiene werden.
Aber auch die PS2 hat schon Java Kits, mit denen erstaunliches ( für Konsolen ) möglich ist.
Und nun zieht auch langsam die 'PC' Fraktion nach.
Sun baut in aller Stile zum beispiel ein OS komplett auf java Basis, das muss man sich mal geben, nicht's mehr von dem 'Zeitlupen' Touch der Jetzigen Kaffemaschienen zu sehen.
Die neuen Kaffemaschienen könnten echt nach dem letzen Flopp einschlagen wie ne Bombe.
Und , aha,3d soll natürlich auch dabeisein , da läuft meiner Ansicht nach hinter den Vorhängen nee Menge.

Abwarten, da rollt noch ne Nuke an ...

Xmas
2002-03-27, 00:51:57
Originally posted by Wuzel
Jaja, nur mal so zur Info , verkettete Listen, und Vektoren unter Java sind schneller ( und einfacher zu basteln :) )
Das berühmte "Sieb des Eratosthenes" ist unter Java 25% schneller auf gleicher HW.
Was ist das für ein Quark? Das kommt darauf an wie man es schreibt...

tb
2002-03-27, 01:52:02
Originally posted by Wuzel
Jaja, nur mal so zur Info , verkettete Listen, und Vektoren unter Java sind schneller ( und einfacher zu basteln :) )
Das berühmte "Sieb des Eratosthenes" ist unter Java 25% schneller auf gleicher HW.

;)

Vielleicht, wenn man beim C++ Compiler die Optimierungen deaktiviert und ordentlich Debug- und Profilercode einbaut.

Java3D liegt jedenfalls über DirectX bzw, OpenGL, somit ist da eine Ebene mehr als bei C/C++, was die Geschwindigkeit nicht verbessert.

Thomas

Wuzel
2002-03-27, 02:05:54
Einmal Java

public class Sieve
{
public static final boolean PRINT = false;
{

public static void main(String[] s)
{
int n = 1000000;
long start = System.currentTimeMillis();
BitSet b = new BitSet(n);
int count = 0;
int i;
for (i = 2; i <= n; i++)
b.set(i);
i = 2;
while (i * i <= n)
{
if (b.get(i))
{
if(PRINT) System.out.println(i);
count++;
int k = 2 * i;
while (k <= n)
{
b.clear(k);
k += i;
}
}

i++;
}
while (i <=n)
{
if(b.get(i))
{
if (PRINT) System.out.println(i);
count++;
}
i++;
}
long end = System.currentTimeMillis();
System.out.println(count + " Primzahlen");
System.out.println((end - start) + " Millisekunden");
}
}

Und C ++

#ifndef AVOID_STANDART_BITSET
#include <bitset>
#else

template<int N>
class bitset
{
public:
bitset() : bits(new char[(N -1) / 8+ 1]) {}

bool test(int n)
{
return (bits[n >> 3] & (1 << (n & 7))) !=0;
}

void set(int n)
{
bits[n >>3] |= 1 <<(n & 7);
}

void reset(int n)
{
bits[n >> 3] &= ~(1 << (n & 7));
}

private;
char* bits;
};

#endif

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
const int N = 1000000;
clock_t cstart = clock();

bitset<N + 1> b;
int count = 0;
int i;
for (i = 2; i <= N; i++)
b.set(i);
i = 2;
while (i * i <= N; i++)
{
if (b.test(i))
{
int k = 2 * i;
while (k <= N)
{
b.reset(k);
k += i;
}
}
i++;
}
for (i =2; i <=N; i++)
{
if (b.test(i))
{
#idef PRINT
cout << i << "\n";
#endif
count ++;
}
}

clock_t cend = clock();
double millis = 1000.0
* (cend - cstart) / CLOCKS_PER_SEC;

cout << count << " Primzahlen\n"
<< millis << " Millisekunden\n";
return 0;
}


So, bitte korrigieren und ausführen ( hab bestimmt wieder nen paar fehler drin ).
!!ACHTUNG!! Um brauchbare Ergebnisse zu erhalten nicht grad aufm 2 gigHerz P4 laufen lassen, kommt nitt so gut ...

Das "Sieb des Eratosthenes" wird zeigen ..

PS : Sehr gut sieht man, das man in Java schneller und effektiver
coden kann ;)

Wuzel
2002-03-27, 02:16:35
Originally posted by tb


Java3D liegt jedenfalls über DirectX bzw, OpenGL, somit ist da eine Ebene mehr als bei C/C++, was die Geschwindigkeit nicht verbessert.

Thomas


Wie das denn gemeint ???

Also da liegt nix drüber oder drunter, Die kleine Run Time Mashine im hintergrund merkt man kaum biss garnich während dem Daddeln, schwer vorzustellen ich weiss.
Am besten man schaut sich mal das ' media Framework Kit ' an, dann kriegt man nen groben Überblick wie die sache läuft/laufen wird.
Hinzu kommt noch, das mann HW Unterstüzung fürs Java einbaut, dann fallen die 2-3 % Minus ins Plus ;)
Und sind wir mal ehrlich 2-3 % ?
Ist das so schlimm bei den heutigen Maschienen wo eh nur Däumchen drehen ?
Vor allem wenn man bedenkt, das Spiele sich dann bedeutend schneller entwickeln lassen.

Xmas
2002-03-27, 11:36:20
Originally posted by Wuzel
So, bitte korrigieren und ausführen ( hab bestimmt wieder nen paar fehler drin ).
!!ACHTUNG!! Um brauchbare Ergebnisse zu erhalten nicht grad aufm 2 gigHerz P4 laufen lassen, kommt nitt so gut ...

Das "Sieb des Eratosthenes" wird zeigen ..

PS : Sehr gut sieht man, das man in Java schneller und effektiver
coden kann ;)
Das soll die effizienteste C++ Variante sein? Glaub ich nicht... ;)

Und vor allem: Welcher Compiler? Welche Optionen?
Wär vielleicht mal ganz interessant mit nem Profiler nachzuschauen, wo dein C++ Programm die ganze Zeit verbrät...

mapel110
2002-03-27, 13:34:33
also ich programmiere auch in c++ und java bzw ich versuche es. aber den fall das java schneller war, als c++ hab ich noch nicht erlebt.

tb
2002-03-27, 16:09:39
Originally posted by Wuzel



Wie das denn gemeint ???

Also da liegt nix drüber oder drunter, Die kleine Run Time Mashine im hintergrund merkt man kaum biss garnich während dem Daddeln, schwer vorzustellen ich weiss.
Am besten man schaut sich mal das ' media Framework Kit ' an, dann kriegt man nen groben Überblick wie die sache läuft/laufen wird.
Hinzu kommt noch, das mann HW Unterstüzung fürs Java einbaut, dann fallen die 2-3 % Minus ins Plus ;)
Und sind wir mal ehrlich 2-3 % ?
Ist das so schlimm bei den heutigen Maschienen wo eh nur Däumchen drehen ?
Vor allem wenn man bedenkt, das Spiele sich dann bedeutend schneller entwickeln lassen.

OpenGL und DirectX haben jeweils ein API Interface, welches auf C/C++ aufbaut. Visual Basic gibts bei DirectX auch noch, darauf muss Java3D dann aufsetzen, somit ist da alsoe eine Ebene, zwischen Hardware und High-Level Programmiersprache.

Thomas

Wuzel
2002-03-27, 17:51:27
Originally posted by Xmas

Das soll die effizienteste C++ Variante sein? Glaub ich nicht... ;)

Und vor allem: Welcher Compiler? Welche Optionen?
Wär vielleicht mal ganz interessant mit nem Profiler nachzuschauen, wo dein C++ Programm die ganze Zeit verbrät...

Lol, also Borland C ++ Compi visit Java SDK 1.3 -> ich kann sowohl einen optimierten Compi für C nehmen, wie auch für Java, z.B die Java IBM Runtime.
Klar verliert java , wenn du einen optimierten C++ Compi nimmst und gegen das SDK stellst.
Aber das wären ja auch keine faieren Vergleiche.
Wie gesagt, auch bei Java kann man ne optimierte Run Time nehmen.

Java ist nicht mehr ' die lahme Gurke von nebenan ' das wollt ich eigentlich nur ausagen.
In einigen Bereichen liegt sogar Java vor C ++ wie auch andersrum.
Letzendlich hast du Gesamt gesehen bei Java in der praxis grad mal 2-3 % Performence Verlust.
Wenn man sich umschaut setzen die ganzen grossen Firmen Rund rum Java ein. Der grund ist nähmlich ein ganz anderer :
Effizienz und Kosten.
In java zu entwickeln geht viel schneller, grad bei aufwendigen Netzwerkgeschichten ist java immens im Vorteil.
IBM setzt z.B fast nur noch auf Java.
Dann wäre da noch die Multimedia Geschichte, beziehungsweise Streaming von Video und Audio daten, hier ist java schon gar nicht mehr wegzudenken.

ZU Java 3d:
Der Interpreter setzt die Java bins direkt in Maschienensprache auf die Graka, also nichts dazwischen.

Ich will hier nicht die elendige Diskusion C visit java entfachen, sondern nur ausdrücken, das java in Sachen 3D keine umögliche Geschichte ist.

Happy Proging ;)

tb
2002-03-27, 18:06:57
Originally posted by Wuzel

PS : Sehr gut sieht man, das man in Java schneller und effektiver
coden kann ;)

Hmmm, du kanns folgende Code (bei C++) weglassen:
------------------------------------------------------
#ifndef AVOID_STANDART_BITSET
#include <bitset>
#else

template<int N>
class bitset
{
public:
bitset() : bits(new char[(N -1) / 8+ 1]) {}

bool test(int n)
{
return (bits[n >> 3] & (1 << (n & 7))) !=0;
}

void set(int n)
{
bits[n >>3] |= 1 <<(n & 7);
}

void reset(int n)
{
bits[n >> 3] &= ~(1 << (n & 7));
}

private;
char* bits;
};

#endif
---------------------------------------------
#include <bitset>
reicht völlig.

Ich werd die Java + C++ Variante mal durchprobieren.

Thomas

HiddenGhost
2002-03-27, 18:11:48
"mithrandir" von withinGames (http://www.withingames.de/index.php) hat sich auch diesem Thema (http://www.withingames.de/index.php#1) angenommen !
Festzuhalten ist, dass er die gleiche Meinung wie Wuzel vertritt, dass man mit ordentlichem Compiling ,durch aus Konkurenz zu C++ sein könne.

Aber wie ist denn nun die Chance , dass sich java durchsetzten könnte.
Reizen einfacheres Programmieren und möglich kostenvorteile durch einfaches Compiling die Programierer so sehr, dass sie das Programmieren in dieser Sprache neu erlernen wollen ?

mfg PCg

HiddenGhost
2002-03-27, 18:37:17
Das hier (http://www.gamespy.com/gdc2002/jgp/index.shtm) ist auch nicht ganz uninteressant!!!
Die Shoots vermeintlicher JavaGamedemos wirken zu diesem Zeitpunkt zwar noch auf Tomb Raider 1 Niveau, aber, was nicht ist, kann noch werden.... !!!!

tb
2002-03-27, 19:45:49
So, habs mal unter linux probiert mit gcc und gcj. Beides wurde mit und ohne Optimierungen kompiliert:

gcc
78498 Primzahlen
ohne Opt. 210 Millisekunden
mit Opt. 20 Milisekunden

gcj
78498 Primzahlen
ohne Opt. 342 Millisekunden
mit Opt. 330 Millisekunden

Sicher gibt es bessere Java-Compiler als gcj, jedoch sind auch ohne Optimierungen die Vorteile von C/C++ sichtbar.

Der Source Code der C++ Version ist an den Java Code angepasst:

int main(int argc, char *argv[])
{
const int N = 1000000;
clock_t cstart = clock();

bitset<N + 1> b;
int count = 0;
int i;
for (i = 2; i <= N; i++)
b.set(i);
i = 2;
while (i * i <= N)
{
if (b.test(i))
{
count++;
int k = 2 * i;
while (k <= N)
{
b.reset(k);
k += i;
}
}
i++;
}
while (i <=N)
{
if (b.test(i))
{
#ifdef PRINT
cout << i << "\n";
#endif
count ++;
}
i++;
}

clock_t cend = clock();
double millis = 1000.0
* (cend - cstart) / CLOCKS_PER_SEC;

cout << count << " Primzahlen\n"
<< millis << " Millisekunden\n";

return EXIT_SUCCESS;
}

Thomas

Thowe
2002-03-27, 19:50:30
Sorry, immer wenn ich Java höre, muss ich an die DBOX II denken und dann fange ich an zu flamen. :)

Java ist eine indonesische Insel, C++ ist eine Programmiersprache. Alternativ, Java ist das was man beim ernsthaften programmieren trinkt. :D

Wuzel
2002-03-27, 20:27:03
Originally posted by tb
So, habs mal unter linux probiert mit gcc und gcj. Beides wurde mit und ohne Optimierungen kompiliert:

gcc
78498 Primzahlen
ohne Opt. 210 Millisekunden
mit Opt. 20 Milisekunden

gcj
78498 Primzahlen
ohne Opt. 342 Millisekunden
mit Opt. 330 Millisekunden

Sicher gibt es bessere Java-Compiler als gcj, jedoch sind auch ohne Optimierungen die Vorteile von C/C++ sichtbar.

Der Source Code der C++ Version ist an den Java Code angepasst:

int main(int argc, char *argv[])
{
const int N = 1000000;
clock_t cstart = clock();

bitset<N + 1> b;
int count = 0;
int i;
for (i = 2; i <= N; i++)
b.set(i);
i = 2;
while (i * i <= N)
{
if (b.test(i))
{
count++;
int k = 2 * i;
while (k <= N)
{
b.reset(k);
k += i;
}
}
i++;
}
while (i <=N)
{
if (b.test(i))
{
#ifdef PRINT
cout << i << "\n";
#endif
count ++;
}
i++;
}

clock_t cend = clock();
double millis = 1000.0
* (cend - cstart) / CLOCKS_PER_SEC;

cout << count << " Primzahlen\n"
<< millis << " Millisekunden\n";

return EXIT_SUCCESS;
}

Thomas

Jo, der gnu compi ist ne schnelle Sau ich weiss ;)
Habs halt bloss mit Borland gegen SDK laufen lassen.
PS : Unter Lin allgemein spackt java wech.
Nicht umsonst sind die SDK's auf der java.sun Seite als Experimentel ausgewiesen, die gibts nähmlich erst seit nem halben Jahr ;) _> Also noch in den Kinderschuhen.
Anders siehts unter dem Komerz. Solaries aus, der auf Sparcs hin gebaute SDK hat auf mainframes C ++ weggehauen.
Das ist aber nicht relevant bei der 'alltags' Umgebung.
Wie gesagt beide Seiten haben ihre Vor und Nachteile wie Schwächen und stärken.
Mach das ganze mal unter Windows, ich weiss ekelhaft, aber hier ist der allgemeine Java SDK hin optimiert worden.
Ich persöhnlich bau ja Aps auf den Kaffemaschienen, von daher bin ich programiertechnisch einfach zu vorbelastet um so eine Disku zu führen ...
Wartet einfach ab, was IBM im Karton hat, dann legen wir die Diskusion neu auf ;D

HiddenGhost
2002-03-27, 23:35:42
Originally posted by Wuzel

Ich persöhnlich bau ja Apps auf den Kaffemaschienen, von daher bin ich programiertechnisch einfach zu vorbelastet um so eine Disku zu führen ...

deshalb stüzt unsere Kaffemachiene andauernd ab... ;);D;)

...nein, was heißt hier Vorbelastet. Nur weil hier jemand an Servern arbeitet ,heißt das doch nichtdas er seine Meinung nicht posten dürfte !!!
Wenn auch ein wenig komplizeirt kling das alles logisch und einigermaßen verständlich für den Laien !!
--------------------------------------------------
Ich die Sache mit Java und Games jetzt so verstanden:

Bevor überhaupt was vernünftiges rauskommen kann ,....

-müssen Publisher ihre Programmierer erst auf Java umschulen ,damit brauchbare Ergebnisse erzielt werden können ,bzw. sich vernünftig mit der Materie auskennen!
-wird eine ,sich noc in der Entwicklung befindliche SDK gebraucht, die Effizient den Code für die verschiedene OSs compilen kann!!
-müssen zusätzlich noch Bugs überwunden werden ,die die Performance je nach OS mehr der minder beeinträchtigen!!!

Hab ich noch irgendwas vergessen ,dann bitte posten !

tb
2002-03-28, 01:01:21
Originally posted by Wuzel

Mach das ganze mal unter Windows, ich weiss ekelhaft, aber hier ist der allgemeine Java SDK hin optimiert worden.
Ich persöhnlich bau ja Aps auf den Kaffemaschienen, von daher bin ich programiertechnisch einfach zu vorbelastet um so eine Disku zu führen ...
Wartet einfach ab, was IBM im Karton hat, dann legen wir die Diskusion neu auf ;D

Ich probier mal "Sun's Forte(TM) for Java(TM) Community Edition, v3.0 - Java 2 Platform, Standard Edition, v1.4 Cobundle" - wenn die nicht optimiert ist, dann wohl keine.

Thomas

Wuzel
2002-03-28, 05:48:45
Originally posted by PCgenius


deshalb stüzt unsere Kaffemachiene andauernd ab... ;);D;)

...nein, was heißt hier Vorbelastet. Nur weil hier jemand an Servern arbeitet ,heißt das doch nichtdas er seine Meinung nicht posten dürfte !!!
Wenn auch ein wenig komplizeirt kling das alles logisch und einigermaßen verständlich für den Laien !!
--------------------------------------------------
Ich die Sache mit Java und Games jetzt so verstanden:

Bevor überhaupt was vernünftiges rauskommen kann ,....

-müssen Publisher ihre Programmierer erst auf Java umschulen ,damit brauchbare Ergebnisse erzielt werden können ,bzw. sich vernünftig mit der Materie auskennen!
-wird eine ,sich noc in der Entwicklung befindliche SDK gebraucht, die Effizient den Code für die verschiedene OSs compilen kann!!
-müssen zusätzlich noch Bugs überwunden werden ,die die Performance je nach OS mehr der minder beeinträchtigen!!!

Hab ich noch irgendwas vergessen ,dann bitte posten !

Miot 'Vobelastet' sprach ich eher auf die Nebendiskus an -> C++ vs. Java.
Darüber kann man mit mir seit 2 Jahren nicht mehr reden :)

Ähmm so mal nebenbei -> bei Java wir nicht im 'klasischen sinne' compilt, klar javac setzt den source in den Java bytecode, das wichtigste ist aber der Intrepreter.
Zu dem geh ich nicht näher ein, ist mitlerweile ein komplexes Thema geworden.
Es gibt nähmlich Maschienen die keinen Intrepreter in dem Sinne mehr brauchen -> Kaffemaschienen :)

Was es braucht um java 3D auch auf den heimischen PC's so richtig zum rennen zu bringen, ist Unterstützung seitens der Chipbauer.
Und hier hat sich noch nicht viel getan.

Naja es wird noch ...

PS : An die Benchmarker da drausen , http://www.kaffe.org/ soll sogar den IBM SDK gleichsetzen, hab ich bisher bloss noch nicht so richtig angetestet, werds aber demnächst mal dem Pinguin reinschieben ;9

Leonidas
2002-03-28, 13:37:04
Originally posted by Ceiser Söze
Die Ausführgeschwindigkeit von Java-Programmen ist im Vergleich zu in der Branche etablierten Sprachen (hauptsächlich C++) zu langsam, als dass es eine echte Alternative darstellen könnte...


Momentan ja. In Zukunft: Abwarten.

tb
2002-03-28, 19:03:49
So, mit Sun's Java SDK braucht es nur noch 140 Millisekunden. Kaffe ist um Welten langsamer (450 Millisekunden).

Thomas

Wuzel
2002-03-28, 19:24:41
Originally posted by tb
So, mit Sun's Java SDK braucht es nur noch 140 Millisekunden. Kaffe ist um Welten langsamer (450 Millisekunden).

Thomas

140 Milli ??
Krass, unter win oder Lin ?
Das der neue 1.4 er SDK so gut iss hät ich nicht gedacht, frage auf was für Hardware hast des laufen lassen ?
Faszinierend.
Naja, in 2-3 Wochen sollen auch die 1.4 er Kits für die anderen Mühlen da sein, ich bin gespannt.
Die letzte Beta hab ich unter Win2k mal angetestet, da hat Sie mich ein wenig entäuschd, wenn das jetzige Release aber so gut ist, haben die sich echt ins zeug gelegt.
Hmm, mal schauen wies mit Swing und den neuen String Klassen aussieht, string.split() -> man es geschehen noch Zeichen und Wunder, darauf hab ich schon so lang gewartet ;)

Unregistered
2002-03-28, 19:27:34
Originally posted by Ceiser Söze
Die Ausführgeschwindigkeit von Java-Programmen ist im Vergleich zu in der Branche etablierten Sprachen (hauptsächlich C++) zu langsam, als dass es eine echte Alternative darstellen könnte...

Das stimmt solange man bei C bleibt. Mit C++ und stark objektorientierter Programmierung ist compilierter Java-Code gleich schnell.

tb
2002-03-28, 20:11:05
Originally posted by Wuzel


140 Milli ??
Krass, unter win oder Lin ?
Das der neue 1.4 er SDK so gut iss hät ich nicht gedacht, frage auf was für Hardware hast des laufen lassen ?
Faszinierend.
Naja, in 2-3 Wochen sollen auch die 1.4 er Kits für die anderen Mühlen da sein, ich bin gespannt.
Die letzte Beta hab ich unter Win2k mal angetestet, da hat Sie mich ein wenig entäuschd, wenn das jetzige Release aber so gut ist, haben die sich echt ins zeug gelegt.
Hmm, mal schauen wies mit Swing und den neuen String Klassen aussieht, string.split() -> man es geschehen noch Zeichen und Wunder, darauf hab ich schon so lang gewartet ;)

Hardware Athlon XP 1900+, Linux Mandrake 8.2, obwohl Windows oder Linux da keinen Unterschied machen sollte, Systemaufrufe sind ja kaum vorhanden.

Originally posted by Unregistered

as stimmt solange man bei C bleibt. Mit C++ und stark objektorientierter Programmierung ist compilierter Java-Code gleich schnell.

Beweise...

zeckensack
2002-03-29, 16:59:29
Originally posted by tb
Beweise...

Kann man nicht beweisen. Man kann höchstens idiotische Grenzfälle konstruieren (bei momentanem Stand der Java-Compiler)

C++:
class
Slow_idiot
{
public:
Slow_idiot(const int woot){boom=new int; *boom=woot;}
~Slow_idiot() {delete boom;}

int* boom;
};

int
main()
{
Slow_idiot* idiot;
int haha=0;
for (int i=0;i<(2<<30);++i)
{
idiot=new Slow_idiot(i);
haha^=idiot->boom;
delete idiot;
}
printf("the idiot said %d !\n",haha);
return(0);
}

Das Äquivalent in Java ist wahrscheinlich exakt genau so schnell, weil 99% der Laufzeit für Speichermanagement draufgehen.