Powiedziano mi, że większość współczesnych komputerów stosuje ten sam standard zmiennoprzecinkowy. Czy to oznacza, że wszystkie otrzymają tę samą odpowiedź zmiennoprzecinkową dla danej operacji matematycznej, jeśli dane wejściowe są takie same?
Pytam, ponieważ pracuję nad stworzeniem gry RTS w sieci, a zsynchronizowanie setek pozycji jednostek wydaje się kiepską drogą.
Więc jeśli przesyłam tylko dane wejściowe, muszę zagwarantować, że wszyscy klienci uzyskają ten sam wynik, uruchamiając symulację z tych danych wejściowych.
Czytałem, że starsze gry RTS używały arytmetyki stałoprzecinkowej, ale nie wiem, czy jest to nadal wymagane na nowoczesnych komputerach, jeśli wszystkie są zgodne z tym samym standardem? Powiedziano mi również, że chociaż nieprecyzyjny, wynik zmiennoprzecinkowy jest deterministyczny dla tego samego wejścia (co zakładam, że każdy komputer zgodny z tym samym standardem otrzymuje ten sam niedokładny wynik?).
Czy komputery nadal mają odchylenia, nawet jeśli są zgodne z tym samym standardem liczb zmiennoprzecinkowych?
Piszę tę grę w C #, nie jestem pewien, czy to ma znaczenie, pomyślałem, że i tak o tym wspomnę.