오늘 학습한 내용 모두 중요하지만,

 

가장 어렵고, 중요하다고 생각하는 부분은 위치 동기화 이다.

 

 

 

우선, 레이턴시 ( Latency ) 란?

하나의 데이터 패킷이 출발지에서 출발하여 도착지에 도착할 때 까지 걸리는 시간을 말한다.

 

특히 게임 서버에서 현재의 기술력으로는, 무시하기 힘든 레이턴시가 발생 할 수 밖에 없다.

 

따라서, 우리는 이 레이턴시를 적절히 숨기거나, 피하는 기술을 배워야 한다 !

 

 

이러한 레이턴시를 유저가 느끼지 못하게 만드는 기술을 레이턴시 마스킹 이라고 부른다.

 

 

 

강의에서는 추측 항법에 대해서 말해주고 있다.

 

아래에 나올 이미지를 통해서 이해가 빠르게 되었기 때문에

이미지를 가져오도록 하겠다 !

 

기본적으로, 레이턴시가 곧이 곧대로 반영되는 상황에서

서버가 실시간 동기화를 시도한다면,

유저에게 보여지는 움직임은 위와 같이 표현할 수 있다.

글로 표현하면 순간이동을 하며 뚝뚝 끊겨 보일것 이라는 것이다.

 

 

 

선형 보간은,

밀려서 뚝뚝 끊어질 바에 아예 뒤로 밀어서 시작하는 것이다.

끊겨 보이는 현상은 없겠지만, 다 같이 느린 반응속도를 갖게 될 것이다.

 

 

 

 

 

대망의 추측 항법은,

레이턴시의 지연시간 만큼을 미리 계산해서 전송하는 방법이다.

가장 실시간 동기화에 부합하는, 한계를 극복하려는 노력이 보이는(?) 방법인 듯 하다.

 

쉽게 생각하면,

만약 지연시간이 1초로 고정이 되어있다는 가정을 해 보자.

 

이 1초 만큼을 뒤로 밀어서 반영하기 시작하는것을 선형 보간,

 1초를 미리 당겨서 반영하면 추측 항법이라는 것이다.

 

 

 

강의에서 소개한 방법을 적용한 코드 !!

 

각각 다른 레이턴시를 임의로 적용한 뒤, 

user 의 이동속도 =1 로 계산하여 

데이터를 미리 반영하는 추측항법의 결과를 보여주고 있다.

'내일배움캠프' 카테고리의 다른 글

24.11.01 TIL 멀티플레이 과제 트러블슈팅  (0) 2024.11.01
24.10.24 TIL 삼각함수  (0) 2024.10.30
24.10.23 TIL 기본 세팅  (0) 2024.10.23
24.10.18 TIL 버퍼 객체  (0) 2024.10.18
24.10.17 TIL 검증이 뭘까  (0) 2024.10.17

+ Recent posts