Prozedurale Dungeons
Ein prozeduraler Dungeon entsteht aus einem Startwert, sodass derselbe Startwert immer denselben Dungeon ergibt. Räume werden ohne Berührung gesetzt, von links nach rechts verbunden, damit alles erreichbar ist, und dann geprüft. Ein durchgefallener Dungeon wird aus derselben Zufallsfolge neu gebaut, und nach genug Fehlversuchen kommt ein schlichter, sicherer zum Einsatz.

Das sagst du deiner KI
Kopiere es in Claude, Cursor oder ChatGPT. Gute Werte und die typischen Fehler stehen schon drin.
Baue „Prozedurale Dungeons“ in mein Spiel ein.
Das soll es bewirken: Ein neuer Dungeon pro Durchgang hält ein Spiel frisch, ohne dass für jede Etage ein Leveldesigner nötig ist. Ein Startwert macht ihn wiederholbar, sodass Spieler einen Durchgang teilen und du einen Fehler nachspielen kannst, und eine Prüfung stellt sicher, dass kein Dungeon unmöglich zu schaffen ist.
Baue es genau nach diesem Automaten. Prüfe zuerst, ob er zu meinem Spiel passt, und bau ihn dann so:
```mermaid
stateDiagram-v2
[*] --> placing
placing: Räume setzen
linking: Räume verbinden
checking: Prüfen
ready: Fertig
placing --> linking: genug Räume
linking --> checking: alles verbunden
checking --> placing: durchgefallen, neu
checking --> ready: guter Dungeon
ready --> [*]
```
Nimm diese Startwerte:
- width: 40 cells
- height: 24 cells
- roomCount: 8 rooms
- maxRoomSize: 8 cells
- minExitDistance: 25 cells
- maxAttempts: 20 tries
Achte auf diese typischen Fehler:
- Die Uhr als Zufallsquelle: Sag deiner KI: Halte die Zufallsfolge im eigenen Zustand des Dungeons und starte sie aus dem Startwert, nie aus der Uhr.
- Mit demselben Startwert neu anfangen: Sag deiner KI: Fällt ein Versuch durch, mach mit den nächsten Zahlen derselben Folge weiter, nicht mit dem Startwert.
- Ein Dungeon, der nicht zu schaffen ist: Sag deiner KI: Verbinde die Räume zuerst in einer Linie, prüfe dann, dass jede Bodenzelle erreichbar und der Ausgang weit genug weg ist.
- Eine Arbeit, die nie endet: Sag deiner KI: Zähle die Versuche und nimm nach dem letzten einen schlichten Dungeon, der immer klappt.
- Räume, die für die Karte zu groß sind: Sag deiner KI: Kürze die größte Raumgröße auf das, was innerhalb der Wände passt, bevor du auswählst.
- Zu viele Räume gewünscht: Sag deiner KI: Höre nach einer festen Zahl Versuche pro Raum auf zu setzen und werte einen Dungeon als zu klein, wenn er unter etwa drei Fünftel des Wunsches liegt.
- Merkwürdige Startwerte: Sag deiner KI: Mach den Startwert zuerst zu einer ganzen Zahl und nimm null für alles, was keine Zahl ist.
Ändere nichts anderes im Spiel. Behaupte nichts, ohne es zu belegen: Modelliere, was dafür nötig ist, und zeig mir, worauf deine Lösung beruht und woran ich sehe, dass sie klappt. Wenn du etwas nicht zeigen kannst, sag, dass du es nicht weißt. Sag mir danach in einfachen Worten, wie ich es ausprobiere.Oder spar dir das und schließ den MCP an: Dann findet deine KI das alles von selbst.MCP anschließen
Was es bewirkt
Ein neuer Dungeon pro Durchgang hält ein Spiel frisch, ohne dass für jede Etage ein Leveldesigner nötig ist. Ein Startwert macht ihn wiederholbar, sodass Spieler einen Durchgang teilen und du einen Fehler nachspielen kannst, und eine Prüfung stellt sicher, dass kein Dungeon unmöglich zu schaffen ist.
So läuft es ab, als Diagramm
Alles, was es sein kann, und was es weiterbewegt. Genau danach baut deine KI.
So läuft es ab, als Diagramm
- Räume setzen → Räume verbinden: genug Räume
- Räume verbinden → Prüfen: alles verbunden
- Prüfen → Räume setzen: durchgefallen, neu
- Prüfen → Fertig: guter Dungeon
Gute Startwerte
| Wert | Starte mit | Was es ändert |
|---|---|---|
| width | 40 cells | Wie breit der Dungeon ist. Vierzig Felder lassen Platz für etwa acht Räume mit Raum zum Laufen dazwischen. |
| height | 24 cells | Wie hoch der Dungeon ist. Breiter als hoch passt besser auf einen Bildschirm. |
| roomCount | 8 rooms | Wie viele Räume angestrebt werden. Der Dungeon kann weniger bekommen, wenn sie nicht passen, aber nie weniger als etwa drei Fünftel davon. |
| maxRoomSize | 8 cells | Die längste Seite eines Raums. Räume sind nie kleiner als 3 Felder. Größere Räume ergeben weniger, geräumigere Dungeons. |
| minExitDistance | 25 cells | Wie weit der Ausgang entlang der Wege vom Start entfernt sein muss. Ein Dungeon, in dem der Ausgang gleich nebenan liegt, ist langweilig. |
| maxAttempts | 20 tries | Wie viele Dungeons versucht werden, bevor der schlichte genommen wird. Zwanzig reicht auf einer normalen Karte reichlich und ist trotzdem schnell fertig. |
Was meistens schiefgeht
Die Uhr als Zufallsquelle
Wird der Dungeon aus der Uhr oder einem globalen Zufallsgenerator gebaut, ergibt derselbe Startwert jedes Mal einen anderen Dungeon, und Fehler lassen sich nicht nachspielen.
Lösung: Sag deiner KI: Halte die Zufallsfolge im eigenen Zustand des Dungeons und starte sie aus dem Startwert, nie aus der Uhr.
Mit demselben Startwert neu anfangen
Ein durchgefallener Dungeon, der mit demselben Startwert wiederholt wird, fällt für immer genauso durch.
Lösung: Sag deiner KI: Fällt ein Versuch durch, mach mit den nächsten Zahlen derselben Folge weiter, nicht mit dem Startwert.
Ein Dungeon, der nicht zu schaffen ist
Zufällig verbundene Räume können einen Teil abschneiden, und ein zufällig gesetzter Ausgang kann direkt neben dem Start liegen.
Lösung: Sag deiner KI: Verbinde die Räume zuerst in einer Linie, prüfe dann, dass jede Bodenzelle erreichbar und der Ausgang weit genug weg ist.
Eine Arbeit, die nie endet
Lassen sich die Vorgaben auf einer kleinen Karte nicht erfüllen, endet das ständige Neuversuchen nie, und das Spiel hängt auf dem Ladebildschirm.
Lösung: Sag deiner KI: Zähle die Versuche und nimm nach dem letzten einen schlichten Dungeon, der immer klappt.
Räume, die für die Karte zu groß sind
Ein Raum, der größer ist, als die Karte erlaubt, findet keinen Platz, und die zufällige Wahl einer Position geht kaputt.
Lösung: Sag deiner KI: Kürze die größte Raumgröße auf das, was innerhalb der Wände passt, bevor du auswählst.
Zu viele Räume gewünscht
Eine kleine Karte mit großem Raumwunsch erreicht ihn nie, und ein Dungeon mit zwei Räumen ist kaum ein Dungeon.
Lösung: Sag deiner KI: Höre nach einer festen Zahl Versuche pro Raum auf zu setzen und werte einen Dungeon als zu klein, wenn er unter etwa drei Fünftel des Wunsches liegt.
Merkwürdige Startwerte
Ein Startwert von null, eine negative Zahl oder ein kaputter Wert kann die Zufallsfolge jedes Mal zur selben Zahl machen.
Lösung: Sag deiner KI: Mach den Startwert zuerst zu einer ganzen Zahl und nimm null für alles, was keine Zahl ist.
So prüfst du, ob es klappt
- Die Standardeinstellungen. Du baust zweimal einen Dungeon aus Startwert 7: Beide Dungeons sind genau gleich.
- Die Standardeinstellungen. Du baust Dungeons aus den Startwerten 1 bis 20: Mindestens 18 davon sind verschieden.
- Dungeons aus den Startwerten 1 bis 30. Du gehst vom Startraum aus über den Boden: Jede Bodenzelle wird erreicht.
- Dungeons aus den Startwerten 100 bis 129. Du prüfst jeden Raum: Jeder liegt innerhalb der Randwände, keiner berührt einen anderen, und es sind nie mehr als acht.
- Die Standardeinstellungen und eine gewünschte Entfernung von 25. Du misst den Weg vom Start zum Ausgang: Er ist mindestens 25 Felder lang.
- Eine gewünschte Ausgangsentfernung von 100 auf einer Karte von 40 mal 24 und drei Versuche. Du baust einen Dungeon: Er endet nach dem dritten Versuch mit dem schlichten Dungeon.
- Ein Versuch, der die Prüfung nicht bestanden hat. Der nächste Versuch beginnt: Er macht mit der Zufallsfolge weiter, statt zum Startwert zurückzugehen, und baut andere Räume.
- Zwei verschiedene Startwerte, die beide auf den schlichten Dungeon zurückfallen. Du vergleichst sie: Sie sind gleich, und jede Bodenzelle ist erreichbar.
- Ein Wunsch von 3, 5 oder 12 Räumen. Du baust für jeden zehn Dungeons: Keiner hat mehr Räume als gewünscht.
- Ein Dungeon, der mitten im Bauen ist. Du ihn speicherst, wieder lädst und fertig baust: Er endet genau so, als wäre er nie gespeichert worden.
Passt gut zu
- Loot-Tabelle: Nimm für die Beute eine eigene Zufallsfolge, die aus demselben Startwert startet, damit eine Änderung an der Beute nie die Räume verändert. Baue zuerst den Dungeon, würfle dann aus demselben Startwert, was in jedem Raum liegt.
- Minikarte und Kriegsnebel: Starte die Karte leer und lass den Spieler den fertigen Dungeon aufdecken, damit die Karte nie einen halb gebauten zeigt. Mach den Dungeon fertig, bevor das erste Feld gezeigt wird.
- Gegnerpatrouille und Verfolgung: Halte Wachen vom Startraum fern und gib ihnen Streifenwege entlang der Gänge, die die Räume verbinden. Setze die Wachen nach der Prüfung und nutze dabei die Räume und Entfernungen, die sie gefunden hat.
Häufige Fragen
wie baue ich zufällige dungeons, die immer zu schaffen sind
Setze Räume zufällig, verbinde sie in einer Linie von links nach rechts und prüfe das Ergebnis: jede Bodenzelle erreichbar und der Ausgang weit vom Start. Fällt die Prüfung durch, versuche es mit den nächsten Zufallszahlen noch einmal. Nach einer festen Zahl Versuche nimm einen schlichten Dungeon, der immer klappt.
was ist ein startwert und warum braucht ein dungeon einen
Ein Startwert ist die Anfangszahl der Zufallsfolge. Derselbe Startwert ergibt immer denselben Dungeon, also können Spieler einen Durchgang teilen und du kannst einen Fehler nachspielen. Nimm im Dungeonbau nie die Uhr.
warum sperrt mein zufälliger dungeon den spieler manchmal ein
Zufällig verbundene Räume können einen Teil abschneiden. Verbinde zuerst jeden Raum mit dem nächsten in einer Linie, füge danach Schleifen hinzu und teste, dass jede Bodenzelle vom Start aus erreichbar ist.
was sage ich meiner ki, damit sie prozedurale dungeons einbaut
Füge dies ein: Baue prozedurale Dungeons aus einem Startwert ein. Die Zufallsfolge liegt im Zustand, nie in der Uhr. Setze bis zu 8 Räume von 3 bis 8 Feldern, die sich nicht berühren, verbinde sie von links nach rechts plus eine Schleife und prüfe dann, dass jede Bodenzelle erreichbar ist und der Ausgang mindestens 25 Felder vom Start entfernt liegt. Fällt er durch, mach mit derselben Folge weiter. Nach 20 Versuchen nimm eine schlichte Reihe von Räumen.
Woher es kommt
Für diese Idee konnten wir noch keine verlässliche Herkunft finden.
Was geprüft wurde
- 20 Tests bestehen auf dem Referenzcode.
- Das Zustandsdiagramm wurde gegen den Code geprüft, mit den Standardwerten und mit jedem niedrigsten und höchsten Wert der Liste.
Deine KI bekommt den Code
Fertiger Beispielcode kommt über die Spielerando-Verbindung, damit deine KI ihn sofort nutzen kann. So verbindest du es