# Behandeln Sie einen Seed als Eingabe für ein reproduzierbares Layout

> Verwenden Sie einen gespeicherten Seed, um prozedurale Spiellayouts neu zu erstellen, die Generierung von der Validierung zu trennen und dafür zu sorgen, dass ein fehlerhaftes Level leicht reproduziert werden kann.

- URL: https://oneshotgems.ai/de/topics/seeded-random-level-generation
- Kategorie: Für Spieleentwickler
- Typ: Ratgeber
- Aktualisiert: 5. Oktober 2026

Wenn ein prozedural generierter Raum unfair oder unmöglich ist, ist die entscheidende Frage beim Debuggen, ob Sie denselben Raum erneut erstellen können. Ein Startwert gibt einem Zufallsgenerator einen wiederholbaren Startpunkt, vorausgesetzt, dass alle Generationsoptionen diesen Generator in einer konsistenten Reihenfolge verwenden. Diese Aufgabe unterscheidet sich von der Beurteilung, ob sich zufällige Ergebnisse fair anfühlen: Hier besteht das Ziel darin, ein Layout zu reproduzieren, seine Konstruktion zu prüfen und es abzulehnen, wenn es gegen die Strukturregeln des Levels verstößt.

## Führen Sie einen gesäten Generator durch den Layout Builder

Erstellen Sie einen mit einem Startwert initialisierten Pseudozufallszahlengenerator und übergeben Sie ihn an jede Generierungsfunktion, anstatt Math.random in unabhängigen Hilfsprogrammen aufzurufen. MDN weist darauf hin, dass der anfängliche Startwert von Math.random vom Benutzer nicht ausgewählt oder zurückgesetzt werden kann, sodass Math.random allein keinen wiederholbaren Startwert bereitstellen kann. Speichern Sie den Seed zusammen mit einem generierten Level oder seinem Fehlerbericht. Wenn Sie zufällige Ziehungen später hinzufügen oder neu anordnen, kann es sein, dass derselbe Startwert ein anderes Layout erzeugt. Versionieren Sie den Generator oder zeichnen Sie die generierte Karte auf, wenn eine genaue Langzeitwiedergabe wichtig ist.

Wenn möglich, trennen Sie die Auswahl nach Zweck: einen Zufallszahlenstrom für die Raumform, ein anderer für die Dekoration und ein weiterer für die Platzierung des Feindes. Dann wird das feindliche Muster durch das Hinzufügen einer dekorativen Zeichnung nicht automatisch verschoben.

## Generieren, validieren und dann präsentieren

Führen Sie nach dem Bau eines Raums Strukturprüfungen durch, bevor Sie ihn zeigen: Ein- und Ausgang sind vorhanden, erforderliche Schlüssel passen auf begehbare Kacheln und ein Pfadsuche kann den Ausgang erreichen, während er obligatorische Gegenstände einsammelt. Wenn das Layout fehlschlägt, versuchen Sie es mit einer begrenzten Anzahl neuer Seeds erneut und verwenden Sie dann einen bekannten Fallback-Raum oder zeigen Sie einen eindeutigen Generierungsfehler an. Protokollieren Sie den abgelehnten Seed und die fehlgeschlagene Invariante, damit ein unerwartetes Layout lokal wiedergegeben werden kann.

Testen Sie einen kleinen Satz bewusst ausgewählter Samen, einschließlich grenzwertiger Werte, die von Ihrem Samenparser akzeptiert werden, sowie eine Probe gewöhnlicher Samen. Dies ist kein Beweis dafür, dass jeder mögliche Samen gültig ist. Dies ist eine praktische Möglichkeit, sowohl die deterministische Reproduktion als auch den Ablehnungspfad des Generators auszuüben.

## Halten Sie den Samen von den Schwierigkeitsangaben getrennt

Ein reproduzierbarer Raum ist nicht automatisch ein fairer Raum. Spielen Sie generierte Beispiele ab und fragen Sie, ob Gefahren sichtbar sind und ob die geplante Route genügend Zeit zum Reagieren lässt. Halten Sie diese Überprüfung in einer Fairness-Überprüfung getrennt von der Verteilungsanalyse. Wenn ein Fehler festgestellt wird, ermöglicht der Seed dem Team, ein genaues Layout zu besprechen, anstatt eine ungefähre Anordnung aus dem Gedächtnis zu beschreiben.

## Fragen

**Kann ich ein Level mit Math.random und einer gespeicherten Zahl reproduzieren?** Nicht durch Zurücksetzen des integrierten Status von Math.random; Laut MDN kann der anfängliche Startwert nicht ausgewählt oder zurückgesetzt werden. Verwenden Sie einen von Ihnen kontrollierten, mit einem Startwert initialisierten Zufallszahlengenerator und führen Sie alle Generierungsentscheidungen darüber aus.

**Garantiert ein Startwert, dass jedes generierte Level lösbar ist?** Nein. Ein Samen reproduziert eine Auswahlsequenz; Die resultierende Karte wird nicht validiert. Überprüfen Sie die Erreichbarkeit und die Regeln für erforderliche Objekte und lehnen Sie dann fehlerhafte Layouts ab oder reparieren Sie sie.

## Folge deiner Neugier

- [Sorgen Sie dafür, dass sich Zufälligkeit in einem Spiel fair anfühlt](https://oneshotgems.ai/de/topics/fair-randomness-in-games): Wählen Sie aus, was der Zufall kontrolliert, geben Sie den Spielern genügend Informationen, um zu reagieren, und testen Sie, ob sich die Ergebnisse unterschiedlich anfühlen, ohne willkürlich zu wirken.
- [Machen Sie Browsergame-Tests wiederholbar](https://oneshotgems.ai/de/topics/deterministic-game-tests): Kontrollieren Sie Zufallswerte, Zeit und Startbedingungen, damit Spieltests vergleichbare Ergebnisse liefern und Fehler leichter zu diagnostizieren sind.

## Weiterlesen

- [MDN Math.random](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)

---
Kanonische Seite: https://oneshotgems.ai/de/topics/seeded-random-level-generation
