Tworzę grę wieloosobową w czasie rzeczywistym, która działa na tej samej pętli „fizyki” na kliencie i serwerze. Używam zachowania „kierowania”, które jest niezbędnym przypadkowym ruchem. Klient i serwer generują różne liczby losowe podczas uruchamiania algorytmów wędrówki.
Zastanawiam się, jak mogę zachować naturalnie losowy ruch, ale używam stałej, która zapewni klientowi i serwerowi ten sam wniosek.
Odpowiedzi:
Możesz użyć losowego materiału siewnego . Wybierz tę samą 32-bitową wartość na serwerze i kliencie (lub serwer może wysłać ją do klienta na początku). Użyj go jako nasionka dla generatora losowego. Możesz przesłać rzeczywiste ziarno z serwera do klienta z aktualizacją stanu gry. Jeśli nie chcesz go wysyłać, musisz mieć pewność, że klient i serwer wygenerują tę samą liczbę liczb losowych przez ten generator losowy.
Co powinieneś wiedzieć, zanim zdecydujesz się nie wysyłać faktycznego materiału siewnego do klienta:
źródło
Jeśli zarówno serwer, jak i klient zgadzają się na ziarno, większość algorytmów losowych wygeneruje te same wartości.
źródło