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

1

25.12.2019, 16:08

Tilemap Libgdx Rendering Java

Guten Tag

ich hätte bezüglich des Rendering der Tilemap mit der Libgdx Bibliothek ein paar fragen zum erstellen und Ausgeben der einzelnen Frames.
Und zwar geht es darum das ich eine Tilemap generieren lassen möchte und diese auch Performance ausgebe.
Ich will nicht bei jedem Frame die Tilemap neu zeichnen sondern diese in einem Bild speichern und erst verändern sobald ein Tile sich geupdatet hat. Dann sollte aber nur dieses einzelne Tile geupdatet sowie neu gezeichnet werden.
Da ich mich noch nicht so gut mit der Lib auskenne und ihr ja Profis seid ^^ wollte ich wissen wie ich mit der Lib das so hinbekommen könnte wie ich es beschrieben habe.

-Welche Objekte muss ich dafür verwenden "Image, Sprites und Spritesbatch kenne ich ja schon"?
-Hätte vielleicht jemand beispiel Quellcode für mich wie ich das anstellen könnte?

Hier noch ein Bild zu meinem Problem:
»Timmyewr« hat folgendes Bild angehängt:
  • Bild1.png

2

02.01.2020, 18:57

Das Vorgehen, was du wahrscheinlich meinst, habe ich mal unter dem Begriff "Paging" gehört und auch selbst schon implementiert.
Ich selbst nutze dafür allerdings Framebuffer von einer festen Größe (z.B. 10x10 Tiles).
Wenn sich etwas in einer dieser Pages ändert, wird diese invalidiert und komplett neu gezeichnet.
Der Framebuffer wird, wenn er fertig ist, in einer Texture gespeichert.

Somit muss die Grafikkarte nicht ständig den Kontext wechseln (bei vielen Tilesets), sondern hat nur x feste gecachte Bilder, die sie 1:1 so rendert.
Wenn man allerdings weniger Tilesets als Pages auf dem Bildschirm hat, kann dies evtl. auch eher weniger Performance bedeuten. Denn das teure für die Grafikkarte sind die Kontext-Switche (also wenn z.B. ein anderes Tileset verwendet wird usw.). Ansonsten ist es eher eine deutliche Performance Optimierung. Kommt aber auf den Anwendungsfall drauf an.

Beispiel-Code (Achtung! Gleicht eher einem Prototyp, deshalb ist die Code Qualität nicht die beste!):
https://github.com/JuKu/mmo-engine-clien…meview/renderer

Ich hoffe, ich konnte dir etwas helfen. :)
Indie Game-Dev Programmierer beim 2D MMORPG Pentaquin | Pentaquin Foren Vorstellung

3

03.01.2020, 16:10

Aufjedenfall vielen dank für deine Antwort :)

Ich bin erst im 5 Monat meiner Ausbildung zum Fachinformatiker für Anwendungsentwicklung und Arbeite in meinem Betrieb nicht wirklich mit Java sondern mit Delphi ^^ "Object Pascal"
Ich denke deshalb das ich mein Projekt "Mein erstes richtige Spiel ^^" erstmals auf Eis legen werde um mich meinem Projekt im Betrieb zu widmen ^^ "KI".

4

04.01.2020, 13:21

Kein Problem! :)

Je mehr Programmiersprachen du schon kannst, desto schneller kannst du eine andere Programmiersprache lernen.
--> es ist relativ wichtig, dass du nicht nur eine Programmiersprache beherrschst.
Es kann nie schaden, Zuhause als Hobby etwas anderes zu machen, als im Betrieb - so schaut man mehr über den Tellerrand.
Außerdem liegen KI & Spiele Entwicklung gar nicht so weit auseinander, gerade was Performance Optimierungen angeht, kann man sich bestimmt beim jeweils anderen immer etwas abschauen.

Bleib bitte dran! :)
Indie Game-Dev Programmierer beim 2D MMORPG Pentaquin | Pentaquin Foren Vorstellung

5

05.01.2020, 12:18

Ja du hast vollkommen Recht :)
Zwischen Java und Delphi liegen schon teilweise Welten was das angeht.
Es hat alles seine vor und nachteile, wobei ich sagen muss das man mit Delphi extrem schnell Windows Oberflächen basteln kann im gegensatz zu java.
Der vorteil bei java liegt im Bereich des Objekt orientiertes Programmieren :) "Und der Plattform unabhängigen Programmierung :P"
Ich finde man kann mit java viel mehr anstellen als mit Delphi :)
Ein kleines beispiel: In Delphi muss man um ein Array übergeben zu können einen Typen Deklarieren und diesen anwenden anstatt wie bei Java das Array direkt übergeben zu können :)

Ich Entschuldige mich hier nochmals für meine Rechtschreibung ^^
Ich bin leider was das angeht sehr untalentiert ^^
Komischerweise hab ich hierbei keinerlei Probleme beim Programmieren ^^

Werbeanzeige