Дельта-тайминг

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Дельта-тайминг (дельта-время, дельта-синхронизация) - концепция, используемая в программной разработке (программировании) в отношении задержки, т.е. скорости отклика, оборудования и сети. В графическом программировании это переменная обновления декораций в зависимости от времени, прошедшего с момента последнего обновления игры, т.е. предыдущего «кадра», которое будет варьироваться в зависимости от скорости машины (компьютера), и сколько работы необходимо выполнить в программе в любой момент времени. Это также позволяет графике быть рассчитанной отдельно, если графика многопоточна. Т.о., это время, прошедшее с предыдущей итерации цикла отрисовки, т.е. с пред. кадра, обчн. в сек.

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

Это делается путем вызова таймера каждый кадр в секунду, который хранит время между текущим и последним вызовом в миллисекундах. После этого полученное число (дельта-время) используется для расчета, как далеко, напр., мог бы пройти персонаж видеоигры за это время. Это приводит к тому, что персонажу требуется одинаковое количество реального времени для перемещения по локации независимо от скорости обновления, а также от того, вызвана ли задержка нехваткой вычислительной мощности или медленным интернет-соединением.

В графическом программировании это позволяет избежать замедления или ускорения игрового процесса в зависимости от сложности того, что происходит в любой момент времени, что может привести к непоследовательному, резкому восприятию (напр., замедление времени по мере того, как больше персонажей выходит на экран или бегут. слишком быстро, потому что на экране отображается только один персонаж). В сетевом программировании это поддерживает синхронизацию игрового мира каждого компьютера с другими, гарантируя, что каждый клиент в конечном итоге видит одну и ту же активность в одно и то же время, даже если с момента последнего обновления для одних клиентов прошло больше времени, чем для других.

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

Непосредственно в тексте программы переменная в camelCase-нотации обычно называется так "deltaTime".