Детерминированная симуляция
Игровой цикл, построенный так, чтобы на любой машине давать побитово одинаковый результат при одинаковых входных данных, — необходимое условие для lockstep-мультиплеера и повторов.
Если два компьютера получают одни и те же команды и приходят к одному состоянию, по сети достаточно передавать только команды, а не весь мир. На этом стоят lockstep-стратегии вроде Age of Empires и StarCraft. Добиться этого трудно: арифметика с плавающей точкой даёт чуть разные результаты на разных процессорах и компиляторах, порядок обхода хеш-таблиц меняется, а любая случайность без зерна расходится мгновенно.
Студии решают это арифметикой с фиксированной точкой или жёстко заданными настройками float, детерминированным порядком контейнеров и RNG с зерном. То же свойство даёт компактные файлы повторов (хранятся только команды, симуляция проигрывается заново) и сетевой код с откатом (rollback netcode). Одна недетерминированная строка вызывает «рассинхроны», которые мучительно отлаживать.