IT-словарь › Программирование › Детерминированная симуляция

Детерминированная симуляция

Программирование Svenska → Обновлено: 2026-10-26

Игровой цикл, построенный так, чтобы на любой машине давать побитово одинаковый результат при одинаковых входных данных, — необходимое условие для lockstep-мультиплеера и повторов.

Если два компьютера получают одни и те же команды и приходят к одному состоянию, по сети достаточно передавать только команды, а не весь мир. На этом стоят lockstep-стратегии вроде Age of Empires и StarCraft. Добиться этого трудно: арифметика с плавающей точкой даёт чуть разные результаты на разных процессорах и компиляторах, порядок обхода хеш-таблиц меняется, а любая случайность без зерна расходится мгновенно.

Студии решают это арифметикой с фиксированной точкой или жёстко заданными настройками float, детерминированным порядком контейнеров и RNG с зерном. То же свойство даёт компактные файлы повторов (хранятся только команды, симуляция проигрывается заново) и сетевой код с откатом (rollback netcode). Одна недетерминированная строка вызывает «рассинхроны», которые мучительно отлаживать.

← Назад к словарю