[~PB 5.11] Terrain in Open World

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

[~PB 5.11] Terrain in Open World

Beitrag von man-in-black »

Hi,

bin gerade dabei ein kleines 3D-Spiel zu schreiben und würde dafür gerne die neuen Befehle der 3D-Lib
nutzen.
Jetzt stehe ich aber vor der Frage, ob sich die neuen Terrain Befehle wirklich für eine große, offene Welt eignen?
Ich gebe zu, ich habe mich nur mal durch die Hilfe und die PB-Beispiele gewühlt, stelle aber fest,
dass sich das Terrain scheinbar nur in der Ladephase in den Dimensionen und Tiles ändern lässt. Danach sieht es mit Nachladen
oder Freigeben mau aus. Aber schon zu Beginn komplett die (möglicherweise) riesige Welt zu laden, finde ich sinnlos?!

Bei einem alten Projekt (PB4.?) habe ich die Welt in lauter Kästen ("Tiles"/"Kacheln"/...) unterteilt und immer nur die Gebiete geladen
und verarbeitet, die sich in einem Kasten mit Nähe zur aktuellen Spielerposition befanden. Alles, was außerhalb meines selbst definierten
Sichtbereiches lag (>2 Kästen um den Spieler) wurde nicht betrachtet oder falls vorhanden freigegeben. Weil die alten Terrain-Befehle
in der Beziehung keine Hilfe waren, habe ich die Heighmaps per Hand in Meshs gewandelt und wie normale Objekte gehandhabt.
Dadurch konnte ich theoretisch ohne viel Aufwand unendlich große Welten erstellen ohne den Speicher mit nutzlosen Objekten zu belegen.
Leider ist damit die Sache mit der Kollision und dem gangbaren Steigungswinkel komplizierter geworden.

Das Konzept wollte ich beibehalten und war zuerst auch erfreut, dass sich das Terrain neuerdings aus Tiles zusammensetzt,
bin mir jetzt aber nicht mehr sicher, ob beide Sachen harmonieren.

Gibt es jemanden, der sich damit schon ausgiebíg befasst hat und mir bei der Entscheidung
"Mesh oder Heighmap als Untergrund für eine offene Welt?"
(Nachladen im Hintergrund) helfen würde? Vermutlich habe ich wieder irgendetwas übersehen oder nicht gründlich durchdacht...
:oops:
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: [~PB 5.11] Terrain in Open World

Beitrag von Chimorin »

Im englischen Forum findest du "Lexicon", der experimentiert derzeit mit den Meshes als Terrain herum.
Ich benutze derzeit noch das normale Terrain, hänge aber glaube ich an einem Performanceproblem fest (Brauche noch ein paar Tests).

Das Hinzufügen von Terraintiles geht meine ich ohne Probleme, nur löschen geht nicht.
Du könntest also das ganze Terrain auf einmal laden lassen (Da brauche ich noch ein paar Tests wegen der Sichtweite und so), bzw. Tiles nachladen.

Ähm ja, ich weiß nicht, was ich dir jetzt raten soll, was heißt riesige Welt in deinem Sinne?
Muss dein Terrain auch in kleinen Stufen skalierbar sein?
Bild

- formerly known as Bananenfreak -
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Re: [~PB 5.11] Terrain in Open World

Beitrag von man-in-black »

Ähm ja, ich weiß nicht, was ich dir jetzt raten soll, was heißt riesige Welt in deinem Sinne?
Das weis ich leider selbst nicht genau bzw weis noch nicht, wie weit ich es treiben will.
Angenommen, man würde mit einem Männchen in einer realistischen, offenen Welt ungehindert laufen, bräuchte man
an die halbe oder dreiviertel Stunde von einem Rand zum Gegenüberliegenden. (denke da an Dimensionen wie in Skyrim).
Sollte ich mich für eine "eindimensionale" Welt entscheiden, die sich wie ein Schlauch durch den Raum windet,
müsste die Größe der Spielzeit entsprechen (ungehindert laufen: ~1h).
Unterm Strich also ein Vielfaches der Sichtweite (~2 oder 3 Terraintiles).
Sind jetzt nach wie vor relative Angaben. Weis bloß nicht, wie ich es besser beschreiben soll^^

Keine Sorge, mir ist klar, dass meine Welt wohl nicht so riesig wird.
Bloß sollte es doch mal soweit kommen, darf mich der Code nicht daran hindern.
Muss dein Terrain auch in kleinen Stufen skalierbar sein?
Wie meinst du das?

Hab an Größen gedacht, wie sie auch im "Terrain.pb" (\Examples\) vorkommen. Möglichst so groß, dass die Oberflächen noch
akzeptabel eckig sind und die Texturen nicht zu Pixelteppichen werden. Habe mich da aber noch überhaupt nicht
festgelegt. Wenn man Tiles wirklich live nachladen kann, hat sich die Sorge um lange Ladezeiten erledigt. Bleibt nurnoch
die Angst, dass das Spiel den Speicher so voll packt, dass der PC ausgebremst wird. (Mit Blick auf die LowEnd PCs :lol: )

Da ich sowohl mit Meshs als auch mit Heighmaps irgendetwas zustande bringen könnte, hätte ein Münzwurf gereicht.
Wollte nur vorher ausloten, was andere auf diesem Gebiet an Erfahrungen gesammelt haben.
Bin daher auch sehr an deinem aktuellen Performanceproblem und den ausstehenden Tests interessiert.
Kannst auch in ner PN machen ;)
Jetzt, wo ich nocheinmal darüber nachgedacht habe, werde ich wohl wieder zu Meshs greifen.
Da kann ich a) aus alten Projekten klauen :lol: und
b) brauch mir bei Höhlen/... unter dem Terrain den Kopf nicht zerbrechen.^^

Danke :allright:
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Antworten