Мне сказали, что большинство современных компьютеров следуют одному и тому же стандарту с плавающей запятой, означает ли это, что все они получат один и тот же ответ с плавающей запятой для данной математической операции, если входные данные одинаковы?
Я спрашиваю, потому что я исследую создание игры RTS в сети, и синхронизация сотен позиций юнитов звучит как плохой путь.
Поэтому, если я отправляю только входные данные, мне нужно гарантировать, что все клиенты получат одинаковый результат, если они запустят симуляцию с этих входных данных.
Я читал, что в старых играх RTS использовалась арифметика с фиксированной запятой, но я не знаю, требуется ли это на современных компьютерах, если они все придерживаются одного и того же стандарта? Мне также сказали, что, хотя неточный, результат с плавающей запятой является детерминированным для одного и того же ввода (что, я предполагаю, означает, что любой компьютер, следующий тому же стандарту, получает тот же неточный результат?).
Есть ли у компьютеров отклонения, даже если они следуют одному и тому же стандарту с плавающей запятой?
Я пишу эту игру на C #, но не уверен, что это имеет значение, но я все равно упомяну об этом.