Bei den meisten Spielen ist genau dass der Sinn. Ein deterministischer Algorithmus wird mit einem Seed ausgeführt. Der Seed ist meist eine Zahlenfolge oder Zeichenkette, die dann bei den Berechnungen des Algorithmus für Variabilität sorgt.AGuestUser hat geschrieben:?Deterministischer Algorithmus? ist die allgemeine Bezeichnung für einen Algorithmus, der deterministisch ist und hat nicht zwingend etwas mit zur Laufzeit generierten Inhalten zu tun. Deterministisch beschreibt hierbei die Eigenschaft, wenn ein Algorithmus unter denselben initialen Voraussetzungen mehrfach ausgeführt wird, so berechnet er in jedem Durchlauf nicht nur das gleiche Ergebnis, sondern führt auch exakt die gleichen Arbeitsschritte durch. Randomisierte Algorithmen sind daher immer nicht-deterministisch.
Ein gutes Beispiel dafür ist Micecraft, wo du beim gleichen Seed immer die gleiche Welt bekommst. Andere Spiele verstecken den Seed für den Nutzer und berechnen ihn zufällig im Hintergrund.
Damit lassen sich dann genug zufällige Ergebnisse erstellen. Nehmen mal wir eine nicht case-sensitive, alphanumerischen und 10 Zeichen lange Zeichenkette als Seed:
36 ^ 10 = 3.656.158.440.062.976 verschiedene Welten durch den selben deterministischen Algorithmus. Ich würde sagen, dass ist genügend
Ein Vorteil davon das so umzusetzen findet sich schon in der Entwicklung des Spiels.
kompletter Zufall:
Tester: "Ich hatte da einen Crash als ich in die eine Höhle links vom Spawn gegangen bin."
Entwickler: "Kann ich nciht reproduzieren, wühle mich mal durchs Crash-Log"
deterministisch mit Seed:
Tester: "Ich hatte da einen Crash als ich in die eine Höhle links vom Spawn gegangen bin."
Entwickler: "Gib mir den Seed und ich schau mir das direkt mal an."