Ich baue ein Echtzeit-Multiplayer-Spiel, das auf Client und Server dieselbe "Physik" -Schleife ausführt. Ich benutze ein Lenkverhalten, das eine wesentliche zufällige Bewegung ist. Der Client und der Server generieren beim Ausführen der Wander-Algorithmen unterschiedliche Zufallszahlen.
Ich frage mich, wie ich eine natürlich zufällig aussehende Bewegung beibehalten kann, aber eine Konstante verwende, die sicherstellt, dass Client und Server zu demselben Ergebnis kommen.
Antworten:
Sie können zufälligen Samen verwenden . Wählen Sie denselben 32-Bit-Wert in Server und Client aus (oder der Server kann ihn beim Start an den Client senden). Verwenden Sie es als Startwert für den Zufallsgenerator. Sie können den tatsächlichen Startwert vom Server an den Client senden, indem Sie den Spielstatus aktualisieren. Wenn Sie es nicht senden möchten, müssen Sie sicherstellen, dass Client und Server von diesem Zufallsgenerator die gleiche Anzahl von Zufallszahlen generieren.
Was Sie wissen sollten, bevor Sie sich entschieden haben, kein Saatgut an den Kunden zu senden:
quelle
Wenn sowohl der Server als auch der Client sich auf den Startwert einigen, geben die meisten Randomisierungsalgorithmen dieselben Werte aus.
quelle