Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Karten generieren (https://www.delphipraxis.net/161965-karten-generieren.html)

mb1996 30. Jul 2011 13:00

Karten generieren
 
Hi Leute,
ich programmiere gerade mein eigenes Minecraft. Ich bin gerade beim Karten generieren. Ich habe schon 4 Schichten programmiert. Die erste aus Bedrock die zweite aus zufälligen Steinen und Wahrscheinlichkeiten (Diamanten findet man selten - Stein findet man oft). Jetzt bin ich an der ,,Oberwelt" und da bekomme ich probleme. Ich habe ein paar Schichten übersprungen, weil ich weiß, dass die [schaurige Musik wird eingeblendet] ,,Oberwelt" ein Problem wird. Es soll ja nicht einfach eine gerade Dirt-Schicht sein. Ich möchte gerne ein paar Erhöhungen haben. Also habe ich mit Zufällen gearbeitet:
Normale Wahrscheinlichkeit für ein Block an der ,,Oberwelt": random(10)
Wenn die Zufallszahl 1 ist wird der Block generiert.
Wenn schonmal ein Block erstellt wurde ist die Wahrscheinlichket 2


So. Da ich aber per procedure arbeite und über zwei for-Schleifen wirkt dieser Effekt nur in eine Richtung.

for-Schleifen:
Delphi-Quellcode:
  for x := 0 to 18 do
  begin
    for z := 0 to 18  do
      begin
        //Block erstellen
...


Wie kann ich schnell Prüfen, ob sich ein Block neben dem eventuell Block befindet???

rollstuhlfahrer 30. Jul 2011 17:02

AW: Karten generieren
 
Ich würde da ein anderes System vorschlagen:
Baue zuerst den Untergrund. Dann hast du eine einigermaßen Flache Ebene. Auf dieser Ebene kannst du dann sich nach oben hin verjüngende Berge verschiedener Ausmaße plazieren. Das müsste für den Anfang einfacher sein, als Stein auf Stein zu setzen.

Bernhard

Namenloser 30. Jul 2011 19:19

AW: Karten generieren
 
Es gibt auch Terrain-Generierungs-Algorithmen, die auf Fraktalen basieren (Minecraft nutzt vermutlich auch so etwas). Leider finde ich keine gute Einstiegsseite dazu...

Medium 31. Jul 2011 00:03

AW: Karten generieren
 
Fast jede Landschaftsgeneration läuft letztlich auf Bei Google suchenPerlin Noise hinaus, dass in entsprechenden Skalierungen und Oktaven angewendet wird. Bei Minecraft schaut mir das auch sehr danach aus, wobei hier unterschieldiche parametrierte Noises zusammen geblendet werden dürften, um die entsprechenden Eigenschaften der jeweiligen Terrains und Schichten zu erreichen. Perlin-Noise ist in diesem Bereich der König, und seit Star Wars der Renner für alles, was mit prozeduraler Contentgeneration zu tun hat - insbesondere eben Terrain.

Teekeks 31. Jul 2011 13:14

AW: Karten generieren
 
Wie die Generierung in Minecraft gelöst wurde, hat Notch (der Entwickler von Minecraft) in seinem Blog einmal Veröffentlicht. Hier der Link: http://notch.tumblr.com/post/3746989...eration-part-1


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz