Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

R3D L10N

Treue Seele

Beiträge: 106

Beruf: Schüler

  • Private Nachricht senden

21

27.05.2010, 17:17

Afaik wurde IL-2 in Java programmiert, was absolut flüssig läuft und echt geil ist.

Ich glaub das war sogar mal auf ner CBS(Computer Bild Spiele) DVD, bin mir aber nicht sicher...
Aber mein Anlaufpunkt war eher der, dass Java ja mit Bytecode übersetztwird, der nicht so Prozessornah arbeitet.
Damit wird die Leistung halt in Mitleidenschaft gezogen, was sich aber denk ich mal erst bemerkbar macht, wenn man einen langsamen PC hat.

Zitat von »"Java ist auch eine Insel''«

Zunächst ist Java eine Programmiersprache wie jede andere. Doch im Gegensatz zu herkömmlichen Übersetzern einer Programmiersprache, die Maschinencode für eine spezielle Plattform und einen bestimmten Prozessor generieren, erzeugt der Java-Compiler Programmcode, den so genannten Bytecode, für eine virtuelle Maschine. Bytecode ist vergleichbar mit Mikroprozessorcode für einen erdachten Prozessor, der Anweisungen wie arithmetische Operationen, Sprünge und weiteres kennt. Der Java-Compiler von Sun und der Java-Compiler der Entwicklungsumgebung Eclipse sind selbst in Java implementiert und generieren diesen Bytecode.
Das haeißt also, dass der Java(ByteCode) immer auf einer Virtuellen Maschine ausgeführt wird. Diese muss natürlich gestartet werden etc.....


Mit großen Projekten meinte ich so etwas wie GTA oder CoD ;)
MfG R3DL10N

Dark Fly

Treue Seele

Beiträge: 163

Wohnort: Bielefeld

Beruf: Schüler

  • Private Nachricht senden

22

27.05.2010, 17:31

GTA1? ^^ Nein, schon vertanden.
Über die Internen Sachen von Java kann ich keinen Senf dazu tun, da ich C++ neuling bin und mich mit Java nicht beschäftige.
Wollte nur sagen, dass auch damit richtig geil Games realisierbar sind.
MfG Dark Fly

C-/C++-Quelltext

1
2
3
4
int *i;                     // Erstelle Zeiger
while(true)                 // führe Schleife immer aus
{new (int) = i;}            // allokiere frischen Speicher
                            // warte auf unendliche Langsamkeit....

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

23

27.05.2010, 18:37

Wegen Java habe ich die Kündigung eingereicht. Aber die GUI? ROFL. Ein Ring auf einem Haufen sieht als Button besser aus, als das was Java "portables" und "ästhetisches" an den Tag legt.

Dark Fly
Natürlich kann man mit Java Games coden, hat aber den selben Effekt wie mit einer Haushaltsschere auf einem Fußballfeld den Rasen zu trimmen. Es ist LANGSAM! Wer es trotzdem macht hat entweder eine Strafarbeit bekommen oder nicht mehr alle Latten am Zaun.
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.'
[ bing | not'a'tric | germangamedev | Fragen richtig stellen ]

R3D L10N

Treue Seele

Beiträge: 106

Beruf: Schüler

  • Private Nachricht senden

24

27.05.2010, 18:52

Wer es trotzdem macht hat entweder eine Strafarbeit bekommen oder nicht mehr alle Latten am Zaun.
Meine Rede :)
MfG R3DL10N

Tobiking

1x Rätselkönig

  • Private Nachricht senden

25

27.05.2010, 19:09

Aber mein Anlaufpunkt war eher der, dass Java ja mit Bytecode übersetztwird, der nicht so Prozessornah arbeitet.
Damit wird die Leistung halt in Mitleidenschaft gezogen, was sich aber denk ich mal erst bemerkbar macht, wenn man einen langsamen PC hat.

Genau das ist die Vorstellung, die viele Programmierer haben, aber so nicht zutrifft. Die Java VM ist ein sogenannter JIT (Just in Time) Compiler. Der Bytecode wird dabei erst beim Starten des Programms in Maschinencode umgewandelt, um so noch spezifisch für das Zielsystem optimieren zu können. Das kostet natürlich Zeit, weswegen Java Programme meist etwas länger benötigen um zu starten. Bei einem Programm/Spiel das länger läuft sind die paar Sekunden aber eher vernachlässigbar. Wenn nicht, gibt es auch Java Compiler, die die Möglichkeit haben den Bytecode vorher schon in Maschinencode zu wandeln. Damit verliert man aber natürlich auch die Optimierungsmöglichkeit.

Was auch viele nicht wissen ist, dass Visual C++ und viele andere Compiler als ersten Schritt ebenfalls Bytecode erstellen. Das Problem ist einfach, dass Maschinencode zu wenig Informationen enthält um ordentlich optimiert zu werden. Daher werden die einzelnen Quellcode Dateien erst einmal in einen Bytecode compiliert, damit der Linker beim Zusammensetzen der einzelnen Objektfiles noch optimieren kann. Bei Visual C++ übernimmt der Linker auch gleich das Umwandeln in Maschinencode, aber auch das ist bei C++ optional. CLang ist z.B. ein C++ Compiler der Bytecode für die LLVM erstellt.

Die Probleme die Java hat liegen z.B. in der Speicherverwaltung. Der Garbage Collector und die automatische Erkennung ob Variablen nur lokal genutzt werden oder nicht, erzeugen schon deutlichen Overhead. Und auch an anderen Stellen wurde nicht so stark wie bei C++ darauf geachtet, das kein Overhead entsteht.

MasterK

Frischling

Beiträge: 92

Wohnort: Koblenz

Beruf: Teamleiter Softwareentwicklung

  • Private Nachricht senden

26

28.05.2010, 20:57

Ach ja, das übliche java bashing. Kommt lustigerweise gern von leuten mit wenig ahnung in java.

Zitat

an Qt habe ich mich schon probiert, ist aber sehr viel schwerer :D

Qt ist nicht "schwerer", Qt bringt das angenehme der Java bibliotheken zu C++. Ohne Qt fang ich kein c++ projekt mehr an, nur wenn es absolut nicht anders geht.

R3D L10N

Treue Seele

Beiträge: 106

Beruf: Schüler

  • Private Nachricht senden

27

29.05.2010, 13:54

Qt ist nicht "schwerer", Qt bringt das angenehme der Java bibliotheken zu C++. Ohne Qt fang ich kein c++ projekt mehr an, nur wenn es absolut nicht anders geht.
Also meiner Meining nach ist es schwerer. Ich arbeite nicht gerne mit dem Designer von Qt(allgemein ungern mit Designern). Ich schreibe meinen Code lieber selber,
da ich festegestellt habe, dass ich immer einen ganz anderen Code schreibe als der Designer ihn generiert. Ich arbeite noch nicht mit Qt, weil mir die nötigen
einführungen fehlen. Ich habe mir zwar schon "Qt für C++ Anfänger" von den Wikibooks angesehn, aber das hilft mir nicht wirklich weiter. Alles, das wirklich etwas
bringen würde, kostet wieder ne menge Geld(40-50€)... Ich habe nicht immer das Geld, mir immer wieder neue Bücher zu kaufen. Ich muss ja schließlich auch irgendwann den Führerschein haben ;)
MfG R3DL10N

TSS

Frischling

  • Private Nachricht senden

28

29.05.2010, 14:43

Um Qt zu lernen kann ich nur empfehlen die Dokumentation durchzuarbeiten. Da gibt es Tutorials, Beispielprogramme und zu den wichtigsten Bestandteilen auch noch Einführungen. Alles was in diesen Büchern steht wirst du auch in der Dokumenation finden.

MasterK

Frischling

Beiträge: 92

Wohnort: Koblenz

Beruf: Teamleiter Softwareentwicklung

  • Private Nachricht senden

29

29.05.2010, 22:36

Zitat

Ich schreibe meinen Code lieber selber, da ich festegestellt habe, dass ich immer einen ganz anderen Code schreibe als der Designer ihn generiert.

Du kannst GUIs in Qt problemlos selbst schreiben. Ist absolut kein problem und geht sehr fix.

Wobei fürs meiste der designer die beste wahl ist.

R3D L10N

Treue Seele

Beiträge: 106

Beruf: Schüler

  • Private Nachricht senden

30

30.05.2010, 10:50

Zitat

Ich schreibe meinen Code lieber selber, da ich festegestellt habe, dass ich immer einen ganz anderen Code schreibe als der Designer ihn generiert.

Du kannst GUIs in Qt problemlos selbst schreiben. Ist absolut kein problem und geht sehr fix.

Wobei fürs meiste der designer die beste wahl ist.

Das Ding ist nur bei mir, wenn ich den Designer verwende, einen Button erstelle und im den Objektnamen "button1" gebe, wird mir
nachher gesagt, wenn ich da ein Event ranhängen will, dass "button1" nicht vorhanden ist ?(
MfG R3DL10N

Werbeanzeige