Suche
Zufall und Prozedurale Generierung
Wenn du dich mehr oder minder regelmäßig mit Videospielen beschäftigst ist dir bestimmt schon aufgefallen, dass einige Spiele einem immer die gleichen Level vorsetzen und andere Spiele zufällig neue Level generieren. Aber woher kommt eigentlich dieser Zufall und wieviel braucht man davon für Spielwelten?
Für einen Computer ist es nicht ganz einfach sich zufällig zu verhalten: So ziemlich jedes Bauteil ist darauf ausgelegt zuverlässig zu identischen Eingaben auch identische Ausgaben zu liefern. Es wäre schließlich schon ziemlich doof, wenn z.B. das Verändern der Schriftgröße in deinem Textverarbeitungsprogramm nur manchmal den richtigen Wert setzt. Oder noch schlimmer: Wenn deine Festplatte nur meistens die richtigen Daten speichert. Ein klassischer "erster eigener Zufallszahlengenerator", den viele Programmieranfänger so oder ähnlich sicherlich schon einmal gebaut haben, nimmt sich einfach den Millisekundenanteil der aktuellen Uhrzeit. Um alle paar Augenblicke mal einen virtuellen Würfel zu werfen reicht das auch vollkommen aus. Aber dummerweise braucht man häufig eine ganze Menge zufällige Werte auf einmal: Wenn zum Beispiel eine neue Spielwelt für Minecraft generiert werden soll müssen da ziemlich viele Blöcke zufällig erzeugt werden. Würde man auch in solchen Fällen auf die aktuelle Zeit setzen kämen dabei sehr viele identische "Zufallswerte" heraus. Immerhin schafft es der Computer in jeder Millisekunde tausende von Anweisungen auszuführen. Deswegen funktionieren Zufallszahlgeneratoren ein bisschen anders: Sie brauchen nur einen einzigen zufälligen Startwert und können aus diesem Wert dann beliebig viele Werte erzeugen, die zumindest zufällig erscheinen. Wirklicher Zufall ist das aber natürlich nicht: Mit dem gleichen Startwert wird man immer auf die gleiche Serie von Zahlen kommen. Wie diese Generatoren funktionieren und wie man zufällig Spielinhalte erzeugen kann schauen wir uns dann in den nächsten Wochen genauer an. Das Titelbild zeigt übrigens die Ergebnisse eines Scripts von Michael Davies (@butterparty). Wenn du dich in bisschen mit Blender auskennst kannst du das Script zum erzeugen solcher Raumschiffe herunterladen und selber ausprobieren. Und nebenbei: Auch diese Raumschiffe wurden jeweils aus einem einzigen Startwert erzeugt.
Kommentare
Einen Kommentar schreiben