멀티 플레이어 게임 에서 대역폭을 절약하기 위해 모든 서버 틱마다 모든 객체를 업데이트하지는 않지만 각 객체에는 updateRate가 있어이 객체가 X 서버 틱마다 업데이트 될 것으로 게임에 알려줍니다.
객체에 대한 업데이트 메시지를 받으면 다음 업데이트가 올 것으로 예상되는 시간을 계산합니다.
origin = serverCurrentPosition
diff = serverNextPosition - origin
arriveTime = now + timeBetweenTicks * updateRate
객체를 그릴 때 다음 업데이트까지 남은 시간을 계산하고 그에 따라 위치를 보간합니다.
step = 100 / timeBetweenTicks * updateRate
delta = 1 - step * ((arriveTime - now) / 100)
position = origin + diff * delta
작동하지만 ... 그림에는 여전히 약간의 지터가 있지만, 내 이론에서는 스케일링이 약간 의 지연 을 처리해야하기 때문에 모든 것이 잘 작동 해야합니까?
여기서 질문은 이것이 최선의 접근입니까? 계산에 실제 지연을 두어야합니까? 그렇다면 어떻게해야합니까? 나는 약간의 experiements를했지만 지터가 악화되었습니다.