Leksykon IT › Programowanie › Symulacja deterministyczna

Symulacja deterministyczna

Programowanie Svenska → Zaktualizowano: 2026-10-26

Pętla gry zaprojektowana tak, by z tych samych danych wejściowych dawać na każdej maszynie wynik identyczny co do bitu — warunek konieczny dla multiplayera w trybie lockstep i dla powtórek.

Jeśli dwa komputery dostają te same dane wejściowe i dochodzą do tego samego stanu, przez sieć wystarczy wysyłać same komendy, a nie cały świat — na tym opiera się lockstep w strategiach takich jak Age of Empires i StarCraft. Osiągnąć to trudno: arytmetyka zmiennoprzecinkowa daje nieco różne wyniki na różnych procesorach i kompilatorach, kolejność iteracji po mapach haszujących bywa inna, a każda losowość bez ziarna natychmiast się rozjeżdża.

Studia rozwiązują to arytmetyką stałoprzecinkową lub ściśle przypiętymi ustawieniami float, deterministyczną kolejnością kontenerów i generatorem losowym z ziarnem. Ta sama własność pozwala na zwarte pliki powtórek (zapisz komendy, odtwórz symulację) oraz na rollback netcode. Jedna niedeterministyczna linijka powoduje „desynchy”, których debugowanie jest koszmarem.

← Wróć do leksykonu