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

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

1

28.09.2012, 18:40

3D Tilemap

Hallo,

ich wollte mal Meinungen einholen wie ich eine 3D Tilemap für einen Wirtschaftssimulator am besten aufbaue. Es gibt ein Paar Anforderungen:

- leicht zu erstellen (heißt nicht zu viele Daten für die man einen Editor brächte sondern eher nach einem Algorithmus)
- Größen zwischen 128x128 Tiles bis 1024x1024 Tiles, wobei ich dann dachte man könnte immer 10x10 Felder oder so in Buffer packen, wobei es da ein Problem gibt ->
- Höhen einzelner Ecken sollen vom Spieler verstellbar sein (mit Maus), dabei soll das Terrain mit angehoben werden, trotzdem ->
- soll man auch 90° Steigungen haben können (z.B. wenn man Straßen baut und an einer Seite einen Abhang hat)
- einfache Positionierung von Objekten (wobei das wohl kein Problem sein sollte)

Man könnte jetzt für jedes Tile ein 3D Model machen und nur die Textur ändern, dann hätte man immer 10x10 Modelle in einem Buffer, wenn der Spieler dann eine Ecke hochzieht sollte das ja kein Problem sein den Buffer zu aktualisieren. Der Nachteil ist das man Vertices doppelt hätte und alle Tile Modelle gleich viele Vertices haben müssten.
Oder man erstellt ein Raster, nur weiß ich nicht wie ich dann diese 90° Steigungen einfügen soll, da man dann ja 4 statt 2 Vertices braucht (sozusagen eine Kante dupliziert).

Das ganze stelle ich mir am Ende ungefähr so (nur in 3D):


(Link)


Achja und kennt ihr Algorithmen um eine schöne Karte für eine Feste größe so zu generieren? Irgendwas in der Art: "Fange bei Feld x an und baue von da aus dann um das Feld die anderen Felder auf", mit einer Wahrscheinlichkeit das sich dann der "Feldtyp" ändert.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

28.09.2012, 19:07

Genau das selbe Problem hatte ich auch schon. Habe es bis jetzt nicht gelöst, da ich mich aus Zeitmangel nicht weiter damit beschäftigt habe. Vielleicht kommt man ja hier zu einer Lösung dafür. Meine Überlegung dazu war, dass bei senkrechten Kanten die Vertizes an den Seiten dupliziert werden. Dann kann man sie hoch und runter schieben. Werden solche Kanten verschoben, wird an den umliegenden Vertizes geguckt, welche überlappen und dann zusammengefasst. Waren bis jetzt nur Theorieüberlegungen, welche nicht sehr viel weiter geführt wurden.
Zur Generation von Maps würde ich es vermutlich erst mal mit irgendwelchen Noise Algorithmen versuchen. Damit ein großes Terrain bestimmen. Und dann in Abhängigkeit der Höhe vielleicht die Art der Flächen bestimmt. Da könnte man sich ja auch Ideen bei normalen Terraineditoren holen. Je nachdem was dann noch platziert werden soll, müsstest du natürlich gucken. Du könntest das ganze aber auch als Mapeditor umsetzen, wobei man dann nacharbeiten kann. Heißt man lässt erst ein Gebiet generieren und kann es von Hand nacharbeiten. Dann generiert er Typen von den einzelnen Flächen und du kannst wieder nacharbeiten. Und das dann so lange bis am Ende alles steht was man braucht.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

3

28.09.2012, 23:38

Zitat

Meine Überlegung dazu war, dass bei senkrechten Kanten die Vertizes an den Seiten dupliziert werden.


Ja so meinte ich das in etwa auch.

Zitat

Du könntest das ganze aber auch als Mapeditor umsetzen, wobei man dann nacharbeiten kann.


Das soll eh ins Spiel integriert werden da der Spieler für bestimmte Bauwerke das Terrain anpassen muss.

Ich werde jetzt einfach mal 3 Modelle dafür erstellen (Gerade Fläche, Schräge, Ecke) und eine Kleine Testkarte erstmal von Hand erstellen. Was nimmt man am besten um die Ecken auszuwählen? Raytracing? Man könnte dann ja die Fläche jeweils vierteln.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

29.09.2012, 04:47

Ich habe eine Routine geschrieben, welche einen Ray und ein Polygon auf Kollision prüft. Dann beim klicken den Ray geschossen und geguckt welche Fläche ausgewählt wurde. Diese ist dann die die bearbeitet werden soll. Ist beim bauen genau das selbe.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

5

29.09.2012, 10:28

Eventuell als Referenzmodell, um später eventuell Ideen für Gestaltungswerkzeuge zu haben:

http://www.youtube.com/watch?v=Pu6Fs8gz8kQ
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

6

29.09.2012, 12:14

Der Editor von RCT3 geht mir schon etwas zu weit. Es soll keine Terrain Simulation werden sondern ein Wirtschaftssimulator. Da ist das Terrain eher "Beiwerk" und man kann z.B. nicht den Typ eines Tiles ändern (Textur). Ich muss erstmal etwas rumexperementieren. Ab ~3000 draw calls wirds etwas kritisch. Da muss ich auf jeden Fall zusammenfassen...
Ich zeig euch Bilder wenn ich ein bisschen was habe.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

29.09.2012, 12:54

Allein wenn ich das Video schon sehe muss ich mich eigentlich noch mal weiter dran setzen:) Allein weil es für ein aktuelles Projekt eigentlich von Interesse sein könnte. Kein muss, aber nice to have und von daher lohnt es sich eigentlich schon.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

8

02.10.2012, 15:52

So, Klausurphase, aber programmieren ist wichtiger ;)


(Link)


Das gefällt mir schon ganz gut. Ich hab mir doch überlegt erstmal etwas anderes zu schreiben (keinen Wirtschaftssimulator), wofür ich eine 3D Tilemap aber auch gut gebrauchen kann.
Das schöne an dem System auf dem Bild: Man kann die Höhenangaben und Texturen in Tiled einfach 2D Positionieren und exportieren (bei der Ecke oben rechts sieht man ein bisschen das es höher wird).
Was mir noch nicht gefällt sind die weißen Kanten, das liegt daran das jedes Feld aus 6 Vertices besteht und keine geteilt werden (das wird ohne Indices gerendert). Einer eine Idee wie ich das als "normales" Raster machen kann und trotzdem 2 Texturkoordinaten pro Vertex habe (das war nämlich das Problem)?

Übrigens möchte ich später auch die Positionierung von Objekten, wie z.B. Hauswänden, Zäunen, Mülltonnen, Kisten, ..., darüber vornehmen. Kann man dann auch in Tiled machen.
Achja und die Textur ist 4096x4096 als Atlas aufgeteilt... evt. mach ich die aber noch größer.

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

9

09.10.2012, 13:11

Hat jemand eine Lösung für das Problem mit den Kanten?

Ich hab es soweit das die Karte in beliebig große Buffer (nach Tiles) gesplitet werden kann und bastel gerade an einem Octree um auch 2000x2000 Tiles große Karte rendern zu können.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

10

09.10.2012, 13:25

Warum kannst du das ganze denn nicht mit einem Indexbuffer lösen? So wären die Vertizes an den Eckpunkten die selben und du hättest keine Lücken mehr.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige