Как синхронизировать физику сетевой игры без передачи состояния объектов
При детерминированной синхронизации lockstep по сети отправляют только действия игрока, а не позиции и скорости тел. Поэтому миллион объектов требует столько же трафика, сколько один. Но одинаковые данные и команды должны давать побитно одинаковый результат на каждом кадре.
Получатель ждёт ввод для кадра n, а буфер выравнивает приход пакетов ценой задержки. TCP при потере пакета останавливает симуляцию до повторной доставки. Альтернатива: UDP повторяет неподтверждённые команды.
Схема с буфером и сжатием команд упирается в вычисления с плавающей точкой: результат может различаться между компиляторами, ОС и архитектурами. Подход годится для множества объектов и малого ввода, если совпадение подтверждено на целевых сборках.
Post #2089
272

- ❤ 1