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

daG

Treue Seele

  • »daG« ist der Autor dieses Themas

Beiträge: 130

Wohnort: Hamburg

  • Private Nachricht senden

11

02.07.2010, 01:16

Ok, ich muss zugeben soweit war ich noch nicht :D

Zurzeit werden die einzelnen Parts einmal (ohne Inhalt) am Anfang erstellt. Jeder Part bekommt einen eigenen (zufälligen) Seed-Wert, welcher später benutzt wird um die Tiles zufällig zu generieren. Beim Entladen wird der Seed behalten, so das beim nächsten mal wieder die gleichen Tiles erzeugt werden.

Entweder müsste ich die Parts größer machen oder mehrere Parts in einer Datei speichern, denn sonst bräuchte ich ca. 31.622 Dateien :D

Hm, mir fällt ein, die könnte ich ja wie den QuadTree auch in Ordnern verschachteln xD

Mal gucken ob ich überhaupt so viele Tiles brauch, aber ich glaub bei Diablo II sinds insgesamt deutlich mehr als eine Milliarde (und die werden ja auch fast?! alle gespeichert) :)

Edit: Ok, 31.622 Dateien sind falsch.

Es sind bei 1.073.741.824 Tiles 4.194.304 Leaves (also Parts mit Tiles) und insgesamt 5.592.405 Quads im QuadTree.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »daG« (02.07.2010, 01:29)


12

02.07.2010, 03:02

Wieso renderst du nicht alle Tiles, die auf dem Bildschirm zu sehen sind gleichzeitig? Du kannst die Tiles ja schlecht nachträglich sortieren.

Zitat von »daG«

Mal gucken ob ich überhaupt so viele Tiles brauch, aber ich glaub bei Diablo II sinds insgesamt deutlich mehr als eine Milliarde (und die werden ja auch fast?! alle gespeichert) :)
Denk ich nicht, sonst wäre Diablo II wohl mindestens 1GB groß, und das auch nur, wenn jedes Tile nur aus einem 8bit-Integer bestehen würde. Aber auch das wäre eigentlich kein Problem, wenn man immer nur kleine Teile der Map laden würde.
stɪl traɪ tuː θɪŋk ˈpɒzətɪv

daG

Treue Seele

  • »daG« ist der Autor dieses Themas

Beiträge: 130

Wohnort: Hamburg

  • Private Nachricht senden

13

02.07.2010, 03:15

Wieso renderst du nicht alle Tiles, die auf dem Bildschirm zu sehen sind gleichzeitig? Du kannst die Tiles ja schlecht nachträglich sortieren.
Na weil ich, um ein paar FPS zu sparen, extra für jeden Part ein VBO benutze. Wenn ich alle bei jedem Zeichenvorgang durchgehe brauch ich deutlich länger als einfach nur die ID des VBOs aufzurufen.

Ich zeichne die einzelnen VBOs mittlerweile jetzt anders, dadurch bestehen keine Probleme mehr. Die Lücken sind nur da, um zu zeigen wo die einzelnen Parts anfangen und aufhören. Hier sind die Parts 4x4 Tiles. Promlem ist also gelöst :)

(Link)

14

02.07.2010, 03:23

Stimmt, so geht's auch. Genital gelöst. :)
Höchstens bei den "Baum-Layer" und beweglichen Objekten würde es da Probleme geben, oder hast du dir da auch schon was überlegt?
stɪl traɪ tuː θɪŋk ˈpɒzətɪv

daG

Treue Seele

  • »daG« ist der Autor dieses Themas

Beiträge: 130

Wohnort: Hamburg

  • Private Nachricht senden

15

02.07.2010, 03:29

Das ist das selbe in grün. Ich muss dafür halt eine Ebene nach der anderen Zeichnen. Also erst Ebene 0 von allen sichtbaren Parts, dann Ebene 1 von allen sichtbaren Parts etc.

Edit: Die Beweglichen Objekte, also Monster, Held, NPCs und so werden wohl eine globale Position haben und zusätzlich die Information auf welchem Tile sie sich befinden. So kann ich sie mit im Part speichern und sollte keine Schwierigkeiten haben, sie über die Parts hinweg bewegen zu lassen. :)

hanse

Alter Hase

Beiträge: 472

Wohnort: Wien

  • Private Nachricht senden

16

02.07.2010, 10:46

wenn du das geschickt kompremierst kannst du sicher seeeehr viel raus holen (grad bei so flächigen wiesenstücken)

Werbeanzeige