# Methoden zur flüssigen Darstellung von Spielen



## Arn (29. Apr 2015)

Hallo,

Ich programmiere seit einiger Zeit Spiele. Die Visualisierung sieht dabei bei mir so aus, das ich eine Hauptklasse habe, die von JPanel erbt, und in deren PaintComponent- Methode das  für die Darstellung entscheidende steht. Diese Klasse besitzt einen JFrame, in dem sie ist. Nach dem Konstruktor wird eine while-Schleife ausgeführt, in welcher unter anderem auch die Repaint Methode des JFrames  ausgeführt wird. Das Problem an dieser Art das Spiel dar zu stellen, welches ich bis jetzt noch nicht lösen konnte ist, dass es bei kleiner Auflösung / einem kleinen JPanel super läuft, mit zunehmender Auflösung aber immer mehr Ruckelt bzw. die Framerate stark sinkt. Das ist logisch, denn je größer das JPanel, desto mehr muss in der PaintComponent Methode gemacht werden. 
Ich bekomme das Ruckeln aber nicht weg, selbst wenn ich der Darstellung einen eigenen Thread zuweise und sie sehr spartanisch halte. Ich habe jedoch Javaspiele gesehen bei denen das nicht passiert, die Auch bei hohen Auflösungen mit stabilen 60 fps. oder mehr laufen. Auch wenn man mit J3D und den Canvas Objekten arbeitet tritt dieser Verlangsamungseffekt nicht merklich auf.

Kommen wir nun zu meiner Problemfrage: Kennt jemand eine Darstellungsmethode, die performanter bzw. flüssiger läuft, wenn ja könnte sie/er mir diese erklären oder einen Link schicken zu einem Tutorial oder so was, oder mir aufzeigen, was ich in Moment falsch mache?

Dankeschön !


----------



## Foxei (29. Apr 2015)

Hallo Arn,
ich habe mir, wie vermutlich jeder andere auch, eine kleine Gameengin gebaut ich habe mich dabei an diesem Pong Spiel Orientiert das er sehr viele Aspekte sehr Gut umgesetzt hat Verschiedene Game Stadien Menu Kamera etc. 

Entpack dir den Source und guck dir an wie er es gemacht hat. So habe ich angefangen 

Video
Gruß Simon


----------



## Arn (30. Apr 2015)

Danke! Super!

LG Arn


----------



## Major_Sauce (30. Apr 2015)

Schau dir mal JavaFX an, ist eine lib die bei Java schon mitgeliefert wird, zumindest seit Java 7.
JavaFx wird hoffentlich bald Swing "ersetzen", dabei wird auch schon direkt auf der GPU gerendert und du hast sogar kinderleicht 3d rendering implementiert.

mfg Major


----------



## Arn (1. Mai 2015)

GPU Rendering! Eines der wenigen dinge die Java noch fehlen, und die Anbindung in Java 7 verhindert das nervige einbinden wie bei J3D. Vielen Dank! Na das ist doch mal was!


----------



## Major_Sauce (1. Mai 2015)

Durfte man mal so aus eigenem Interesse fragen wie lange du schon Spiele programmierst, bzw ob du schon was fertiges hast ?


----------



## Arn (1. Mai 2015)

Nein, was Fertiges hab ich noch nicht, aber hier ist ein Video von dem Projekt an dem ich bis jetzt am meisten gearbeitet hab. es ist tot, weil ich am Anfang ein paar simple OO-Regeln nicht beachtet hab. (Es war meine Erste richtige Engine). Irgendwann wurd es so Klumpig, dass man nicht mehr vernünftig daran Arbeiten konnte.

https://www.youtube.com/watch?v=hFuTJhGV3n4&feature=youtu.be

Ich programmiere seit 6 Jahren (3 davon Java).

Nochmal danke für den Tipp mit JavaFx. Ich habs mir mal Angesehen. Einfach Großartig


----------



## Major_Sauce (1. Mai 2015)

Sieht echt super aus, erinnert mich ein wenig an Dark Orbit, falls du das kennst.
Wenn du Lust hast mal ein Projekt mir mehreren Leuten zu starten dann kannst du dich gerne per PN bei mir melden.


----------

