AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Karten generieren

Ein Thema von mb1996 · begonnen am 30. Jul 2011 · letzter Beitrag vom 31. Jul 2011
Antwort Antwort
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#1

Karten generieren

  Alt 30. Jul 2011, 14:00
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???
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

AW: Karten generieren

  Alt 30. Jul 2011, 18:02
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Karten generieren

  Alt 30. Jul 2011, 20:19
Es gibt auch Terrain-Generierungs-Algorithmen, die auf Fraktalen basieren (Minecraft nutzt vermutlich auch so etwas). Leider finde ich keine gute Einstiegsseite dazu...
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Karten generieren

  Alt 31. Jul 2011, 01:03
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Karten generieren

  Alt 31. Jul 2011, 14:14
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
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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