Java 2D / 3D und "schnelle Animationen"

Jan-Michael

Jan-Michael

Aktives Mitglied
Thread Starter
Dabei seit
28.02.2005
Beiträge
397
Reaktionspunkte
0
Hallo Leute,

wie schon im Titel beschrieben habe ich ein paar Fragen zur Graphikprogrammierung in Java. Zum ersten habe ich mich vor ein paar Tagen daran versucht, einen SpaceInvaders-Clone in Java zu programmieren. Das hat prinzipiell auch funktioniert, nur ist mir das spiel irgendwie zu langsam. Die Graphik ruckelt und alles sieht irgendwie noch nicht sehr flüssig aus. In ein paar Online-Tutorien zu Java-Spielen habe ich gelesen, dass zur Darstellung der Graphiken Graphics2D verwendet werden soll. Kann das wirklich so viel bringen - kann ich damit alles schneller machen, oder ist der Grund viel tiefgreifender?

Meine zweite Frage: Ich hatte in der kommenden Zeit vor, mich etwas mehr mit Spieleprogrammierung mit Java zu beschäftigen. Welches Buch empfehlt ihr?

Besten Dank für eure Antworten schon mal im Vorraus
Jan-Michael

[EDIT:] PS: Den link hab ich ganz vergessen: http://userz.us.funpic.de/java/SpaceInvaders.zip
 
Zuletzt bearbeitet:
Spieleprogrammierung unter Java ist so eine Sache für sich. Dadurch, dass der Code in einer VM ausgeführt wird ist das Ganze entsprechend langsam. Es gibt Bibliotheken, die dir bei der Umsetzung helfen. Meist haben diese dann betriebssystemspezifischen Code, der in C oder C++ geschrieben ist.
Hast du denn überhaupt schon Erfahrung im programmieren generell und mit Java im Besonderen?
Falls nein, dann solltest du dich erstmal mit einfacheren Problemen beschäftigen und dich dann über Threading und normale GUI-Programmierung (Swing/SWT) Richtung Spieleprogrammierung vorarbeiten.
 
Nunja, Java ist zwar langsamer als nativer C oder C++ Code aber man kann durchaus fluessige 2d und 3d (mit beschleunigung...) Spiele damit programmieren.
 
Spieleprogrammierung unter Java ist so eine Sache für sich. Dadurch, dass der Code in einer VM ausgeführt wird ist das Ganze entsprechend langsam. ....

Eine etwas zu pauschale Aussage, wie ich finde. Es gibt durchaus Leute, die sehr schnelle Spiele mit Java zu stande gebracht haben. Denk nur mal an Jake2, eine Java-Version von Quake2, die schneller läuft, als das Original....
 
Gib mir mal deine EMail-Adresse. Dann schicke ich die eine modifizierte Datei zu.
Leider kann ich diese nicht posten (zu viele Zeichen...)
 
Hallo Leute und schonmal danke für eure antworten!

Also Erfahrungen mit diversen Programmiersprachen habe ich schon viele gesammelt - unter anderem auch mit Java. Schließlich habe ich ja auch einen funktionsfähigen Clone auf die Beine stellen können. Das große Problem ist eben nur, dass die Graphik nicht sehr flüssig läuft.

Deshalb wär' ich dir - macHome - sehr verbunden, wenn du dir meien Quellcode anschaust. Meine eMail-Adresse: frogstar.b@googlemail.com.

Nochmals besten Dank für alle Antworten
Jan-Michael
 
Mit Java5 sind OpenGL-Funktionalitäten in Java2D eingeflossen.
Mit Java6 gab es weitere Optimierungen. Warum sollte mit der
heutigen Rechnerleistung nicht in Java programmiert werden?
Dies ermöglicht eine fliessendere Implementierung, wenn z.B.
Daten visualisiert werden sollen, die durch ein Informationssystem
bereitgestellt werden, das in Java implementiert ist...
Alles eine Frage des Aufwandes, Anforderungen und *NICHT* des
Geschmacks...
 
Hallo macHomer und Danke für das DoubleBuffering. Zur aktuellen Diskussion nur: Finde Java zum programmieren prinzipiell schon sehr praktisch, weil alle Programme, die man schreibt auch auf anderen Plattformen ausgeführt werden können - ohne, dass man seine Quellen nochmal neu kompiliert, oder sogar an das neue System / Bibliotheken anpasst. Mein Prob war eben, dass ich nicht sehr viel Ahnung von Java 2D / 3D habe und damit auch nicht optimieren konnte. Deshalb wäre ich euch auch noch für ein paar Buchtipps zu Spieleprogrammierung / 2D, 3D Graphikprogrammierung in Java sehr dankbar - auch, weil ich mich gerade für den bereich interessieren und in Java schon ein paar Programmiererfahrungen habe.

Gruß und besten Dank nochmal für eure Antworten
Jan-Michael
 
Unter MacOS war schon in Java1.4.2 (Panther 10.3) Java2D
OpenGL beschleunigt.
 
Zurück
Oben Unten