Java - Spieleentwicklung: Frage! - Druckversion
+- FB18.de - Das Informatikforum ( /mybb ) +-- Forum: Off-Topic ( /forumdisplay.php?fid=115 ) +--- Forum: Hard- und Softwarefragen ( /forumdisplay.php?fid=48 ) +--- Thema: Java - Spieleentwicklung: Frage! ( /showthread.php?tid=11359 ) |
Java - Spieleentwicklung: Frage! - JGame - 23.05.2010 13:00 Hallo. Ich habe bisher nicht sehr viel Erfahrung mit Spieleentwicklung (ohne vorgefertigte Engine), tue aber gerade natürlich genau das und dazu noch mit Java. Ist eigentlich alles ganz chique, nun stellt sich mir aber eine Frage, die mir Google bisher nicht beanworten konnte. Vielleicht ist es auch keine richtige Wissensfrage sondern eine Designentscheidung. Naja, also: Ist es bei grafiklastigen Programmen Usus, die Grafiken(die lokal liegen) vorher in den Arbeitsspeicher zu laden oder kann man davon ausgehen, dass der HSP(heutzutage?) im Grunde schnell genug ist um sich jedes mal ein erneutes Laden (ImageIO.read) leisten zu können? Bisher ist bei mir zweiteres realisiert, aber bei meiner übermenschlichen Mühle merke ich natürlich keinerlei Probleme. Gibt es da eine Art Standard oder liegt es an mir den Durchschnittlichen zur Verfügung stehenden RAM einzuschätzen, diesen zu füllen und den Rest nachzuladen? Übernimmt das gar die Java Optimierung+OS für mich, wenn ich alles in BufferedImages lagere? Hoffe es hat hier jemand Erfahrungen auf diesem Gebiet. RE: Java - Spieleentwicklung: Frage! - Ragmaanir - 24.05.2010 00:58 Hi, Spieleprogrammierung unter Java habe ich nicht gemacht, aber ich habe ein bischen Erfahrung in C++ und C# mit DirectX und OpenGL. Üblicherweise werden Grafiken *einmal* von der Festplatte in den Speicher (am besten Grafikspeicher weil die Graka darauf schneller zugreifen kann) geladen. Auch 3D Modelle werden meist direkt in den Grafikspeicher geladen. Jedes mal die Grafik von der Festplatte zu laden ist eher nicht empfehlenswert (ob Java möglicherweise die Grafiken irgendwie cached weiß ich allerdings nicht). RE: Java - Spieleentwicklung: Frage! - Fred - 24.05.2010 01:16
JGame schrieb:
jedes mal ein erneutes Laden
Von wo?
RE: Java - Spieleentwicklung: Frage! - Anonymer User - 24.05.2010 11:54
Ragmaanir schrieb:
Hi, Spieleprogrammierung unter Java habe ich nicht gemacht, aber ich habe ein bischen Erfahrung in C++ und C# mit DirectX und OpenGL. Üblicherweise werden Grafiken *einmal* von der Festplatte in den Speicher (am besten Grafikspeicher weil die Graka darauf schneller zugreifen kann) geladen. Auch 3D Modelle werden meist direkt in den Grafikspeicher geladen. Jedes mal die Grafik von der Festplatte zu laden ist eher nicht empfehlenswert (ob Java möglicherweise die Grafiken irgendwie cached weiß ich allerdings nicht).
Zitat:
Von wo?
Von der Festplatte meinte ich.
RE: Java - Spieleentwicklung: Frage! - Fred - 24.05.2010 15:03
Anonymer User schrieb:
Zitat:
Von wo?
Von der Festplatte meinte ich.
Du wägst ernsthaft ab, für jeden Frame alle Grafiken von der Festplatte zu laden? Das halte ich gelinde gesagt für keine gute Idee...
RE: Java - Spieleentwicklung: Frage! - JGame - 24.05.2010 15:16
Zitat:
Du wägst ernsthaft ab, für jeden Frame alle Grafiken von der Festplatte zu laden? Das halte ich gelinde gesagt für keine gute Idee...
Zitat:
Ideal wäre es, wenn Du den Kram einmalig auf den Graka-Speicher lädst, aber das hängt natürlich stark von der verwendeten API ab, ob das überhaupt geht
Ich verwende Java2D, muss noch in Erfahrung bringen, ob ich den G-RAM nutzen kann.
RE: Java - Spieleentwicklung: Frage! - Fred - 24.05.2010 15:37
JGame schrieb:
Irgendwann gehen die Grafiken sicher in den GB Bereich, ich kann mir einfach nicht so recht vorstellen, dass alles immer im Arbeitsspeicher liegen soll.
OK, Du schreibst also offenbar kein Tetris oder Dr. Mario. Sicher braucht man für komplexere Spiele auch komplexere Systeme zur Verwaltung der Ressourcen. Da ich sowas aber noch nie geschrieben habe, kann ich da keine konkreten Tipps geben. Meine Grafiken sind bisher insgesamt nie über ein paar MB hinausgekommen.
RE: Java - Spieleentwicklung: Frage! - JGame - 24.05.2010 20:53 Hey, danke nochmal für euere Antworten, haben meinem Denkprozess auf ihre weise geholfen. Nach langem Grübeln und Überlegen bin ich zu dem Schluss gekommen, dass ich mich nicht entscheiden kann. ;D Ich sehe überall große Vor und Nachteile. Als gewissenloser Informatiker der ich bin mache ich das, was gewissenlose Informatiker nunmal tun: Ich wälze die Entscheidung auf den Benutzer ab. Soll dieser entscheiden, ob er genügend schnellen Arbeitsspeicher opfern oder doch lieber einpaar Ladescreens ertragen kann. Später werde ich mich mal nach Wegen umsehen, die Hardware zu Scannen um empfohlene Einstellungen angeben zu können. Das heisst wenn mir nicht noch jemand triftige Gründe für die eine oder andere Methode nennen kann. So long... RE: Java - Spieleentwicklung: Frage! - Hannes - 24.05.2010 20:58 vielleicht kannst du ja auch zusätzlich ein paar tests mit der einen oder anderen methode basteln und prüfen, wie die so auf schlechten rechnern performen. RE: Java - Spieleentwicklung: Frage! - FireTiger - 26.05.2010 18:20 Eventuell könnten auch memory mapped files zur Lösung beitragen. Da würde dann die Laufzeitumgebung für's Caching sorgen. Zufälliger Link dazu: http://www.linuxtopia.org/online_books/programming_books/thinking_in_java/TIJ314_029.htm |