Ahoi!
Ich suche nach Informationen über Kachelkarten oder vielmehr darüber, wie eine bestimmte Art von Kachelkarte genannt wird.
Ich interessiere mich für die Art der Implementierung, die in Achterbahn-Tycoon oder der Transport-Tycoon-Reihe von Spielen verwendet wird, und habe mich mit Vektorfeld-Terrain und Höhenkarten-Terrain befasst, aber ich bin nicht sicher, ob sie für das geeignet sind, was ich suche entwickeln.
Es war ein Kampf, anständige Informationen zu finden, da die meisten Leute sie als isometrische Kachelkarte bezeichnen, aber ich möchte etwas in 3D mit einer festen orthografischen Perspektive erstellen. Ich verstehe, dass der zugrunde liegende Speicher der Kachelkarte nichts damit zu tun hat, wie sie gerendert wird, aber ich möchte keine 2D-Kachelkarte wie Pokemon / Zelda-Spiele der alten Schule erstellen, sondern eher nach dem Vorbild von Diablo mit der Fähigkeit zum Einschließen überhängende Klippen und abfallendes Gelände.
Ich versuche nur, die richtigen Begriffe zu finden, um Google und Stackoverflow nach Ressourcen zu durchsuchen, damit ich entscheiden kann, welchen Weg ich einschlagen soll.
Bisher habe ich es geschafft, eine grundlegende Kachelkarte zu erstellen, ohne die in einem VBO gespeicherte und als Drahtmodell gerenderte height / y-Komponente zu verwenden. Bisher sieht das gut aus, aber ich gehe davon aus, dass ich Probleme haben werde, wenn ich versuche, einen einzelnen Scheitelpunkt zu manipulieren, um Klippen und Hänge zu erstellen, ohne eine benachbarte Kachel zu beeinflussen.
Gibt es eine bestimmte Art der Implementierung, die ich prüfen sollte? Ich dachte, ich hätte es geknackt, als ich eine ganze Menge Informationen über Vektorfeldgelände gefunden habe, aber ich bin mir nicht sicher, ob dies auch zu den richtigen Ergebnissen führen würde.
Wenn mir jemand etwas Licht ins Dunkel bringen kann, wäre die Hilfe sehr dankbar :)
Aktualisieren
Ich habe ein Bild zur weiteren Verdeutlichung beigefügt, was ich erreichen möchte:
Bild entlehnt von So erstellen Sie gekippte (Höhen-) isometrische Kacheln
Dieses Bild zeigt den Geländetyp, den ich generieren möchte, enthält jedoch nicht die "Klippen" oder überhängenden Geländetypen, die ich modellieren möchte. Es wirft jedoch einige andere Fragen auf, die ich nicht berücksichtigt hatte, nämlich:
- Wie würden „Schichten“ wie das Wasser (oben links im Bild) behandelt, um den sichtbaren Boden unter dem Wasser einzuschließen?
- Wie würden die "Kanten" der Karte berücksichtigt, damit die Erde / der Schlamm gerendert wird, um die Welt als eine nicht flache Einheit darzustellen?
- Könnte der zugrunde liegende Speicher für diese Art von Gelände verwendet werden, um Physik wie einen Ball, der einen Hügel hinunter rollt, oder die Bewegungsgeschwindigkeit eines Spielers, der einen Hang überquert, zu modellieren?
Ich hatte die Idee, dass jede Kachel des Geländes mit 8 Scheitelpunkten modelliert werden könnte, wobei die 4 Hauptscheitelpunkte die eigentliche Kachel selbst abdecken und die verbleibenden 4 Scheitelpunkte zum Modellieren der Seiten / Wände jeder Kachel verwendet werden. Die beiden Probleme, die ich bei dieser Implementierung sehe, sind, dass a) die Weltkarte im Wesentlichen doppelt so groß ist und b) da nicht alle Kacheln "Wände" enthalten, einige Kacheln redundante Eckpunkte haben, die nicht verwendet werden.
Ich möchte einen Terrain-Editor erstellen, mit dem jede Kachel deformiert werden kann und der die Möglichkeit bietet, das Terrain während des Spiels zu ändern. Dies wirft an sich zusätzliche Fragen auf wie: Kann ein VBO verwendet werden, um das Gelände zu speichern und zu rendern, während es im laufenden Betrieb geändert wird, und ist es auch möglich, Scheitelpunkte zu ändern, ohne benachbarte Kacheln zu beeinflussen?
Ich habe den Eindruck, dass ich die Dinge entweder überkompliziere oder auf eine Analyse-Lähmung stoße, weil ich es versäume, Code zu schreiben, um das Problem zu lösen, ohne eine klare Vorstellung davon zu haben, wie ich das erreichen würde, was ich will.
Auch hier bin ich wirklich nur auf der Suche nach einem Schub in die richtige Richtung. Gibt es eine bestimmte Art von Tilemap- / Terrain-Implementierung, die es ermöglicht, dass eine 3D-Karte sowohl von einem Karteneditor als auch während des Spiels deformiert wird, oder muss ich sozusagen meine eigene rollen? Ich versuche hier nicht, das Rad neu zu erfinden, aber ich habe Schwierigkeiten, Ressourcen zu finden, da ich nicht sicher bin, wonach ich suchen soll.
Wenn jemand Informationen, Ressourcen oder Codefragmente bereitstellen kann, wäre dies sehr dankbar, da ich bestrebt bin, mir die Hände schmutzig zu machen und etwas anderes als das flache Drahtmodell zu produzieren, das ich derzeit habe.
Danke fürs Lesen!