Hierfür gibt es viele verschiedene Ansätze. Dies hängt auch davon ab, ob Sie immer alle oder nur einige Ihrer Räume füllen möchten.
Hier ist ein möglicher Ansatz, bei dem nicht alle verfügbaren Räume verwendet werden.
- Beginnen Sie mit einem zufälligen Raum, dies ist Ihr Einstiegspunkt. Fügen Sie diesen Raum einer Liste hinzu
open_ends
.
- Wiederholen Sie die folgenden Schritte, bis Ihr Dungeon "vollständig" ist (z. B. Zielanzahl der erreichten Räume).
- Wähle eine zufällige
open end
und eine zufällige Richtung.
- Entfernen Sie den ausgewählten Raum aus
open ends
.
- Wenn der Raum, in den Sie "umziehen", nicht vorhanden ist, erstellen Sie ihn und fügen Sie ihn hinzu
open ends
.
- Markieren Sie beide Räume, um eine Verbindung zwischen ihnen herzustellen, entweder entsperrt oder gesperrt mit einem der folgenden
available keys
.
- Wenn Sie einen Schlüssel ausgewählt haben und die Schlüssel nur einmal verwendet werden, entfernen Sie den Schlüssel aus
available keys
.
- Wenn der Raum, in den Sie "umziehen", keinen Schatz hat, machen Sie einen zufälligen Wurf, um festzustellen, ob es einen gibt.
- Wenn es einen Schatz gibt und es sich um einen Schlüssel handelt (z. B. roter Schlüssel, blauer Schlüssel usw.), fügen Sie diesen Schlüssel hinzu
available keys
.
Jetzt ist dein Dungeon fast fertig. Sie suchen immer noch nach einer Treppe oder einem Chefzimmer? Einfach!
- Wählen Sie einen zufälligen Raum aus
open ends
.
- Wenn keine verfügbar ist, durchlaufen Sie alle Räume und versuchen Sie, eine neue hinzuzufügen.
- Markieren Sie den Raum als Chefraum und entfernen Sie ihn aus
open ends
.
Auf ähnliche Weise können Sie Dinge wie Schatzkammern, Geschäfte, Bibliotheken, Tempel usw. hinzufügen, solange noch Platz in Ihrem Dungeon ist.
Wenn Sie immer alle verfügbaren Räume nutzen möchten, würde ich wahrscheinlich einen anderen Ansatz verwenden:
- Stellen Sie für jeden Raum in Ihrem Raster zufällige Verbindungen ein (z. B. links und rechts, oben und rechts usw.).
- Wähle zufällige Räume für deinen Chef, deinen Schatz usw.
- Stellen Sie diese zufälligen Räume so ein, dass sie nur einen Eingang / eine Verbindung haben.
- Verwenden Sie einen Pfadfindungsalgorithmus (Djikstra?), Um sicherzustellen, dass der Spieler diese Räume erreichen kann.
- Wenn Sie verschlossene Türen hinzufügen, stellen Sie sicher, dass mindestens ein Pfad von der verschlossenen Tür zu einem Schlüssel (als "gebraucht" markiert) zur Startposition des Spielers vorhanden ist. Wenn Sie fertig sind, markieren Sie die Tür als "gelöst" (sie kann in weiteren Iterationen für andere Türen übergeben werden).