초당 프레임 (FPS, Frames Per Second) - 1초에 게임의 현재 상태를 몇 번 Update 해주는가?
아래의 25/50/100 FPS 비교 자료가 있다. FPS가 높을수록 실시간의 위치와 가깝게 동기화 가능하다는 게 여실히 느껴진다. Unity에서는 deltaTime 변수를 곱하는 것으로 매순간 변동되는 프레임률에도 일정하게 화면에 업데이트 되도록 돕는다.
왕복 시간 (RTT, Round Trip Time) - 클라이언트에서 서버로 패킷을 보내고 다시 되돌려받을 때까지 걸린 시간. 서버에서 클라이언트에 전달한 패킷은 패킷이 전달되는 시간(대략 $\frac{1}2$RTT) 만큼 과거의 데이터를 의미한다. RTT를 구한 다음 $\frac{1}2$RTT만큼 extrapolation해주면 대략적으로 실시간의 서버의 데이터와 일치하게 된다.
패킷 주기 (PP, Packet Period) - 서버가 클라이언트에게 월드 상태를 replication 해주기 위한 주기.얼마나 데이터의 실시간성을 정확히 보여주어야 하는가에 따라 패킷 주기는 달라질 수 있다.
반응 속도가 중요한 FPS와 같은 게임은 60Hz~100Hz를 사용, MMORPG는 패킷이 많기 때문에, 4~10Hz를 사용. 공격, 이동과 같은 특정 Action과 PvP와 같이 빠른 업데이트가 필요한 상황에서는 패킷 주기도 사용한다.
보간 주기 (IP, Interpolation Period)
보간은 클라이언트에서 replication되는 객체의 움직임을 부드럽게 해주기 위해서, 패킷으로 업데이트 되는 위치 위치 위치를 부드럽게 보여주는 것. IP ≥ PP가 되면 된다. 패킷 주기보다 보간 주기가 빠르다면, 움직임이 멈췄다 가다 멈췄다 가다 … 뚝뚝 끊어질 것이기 때문.