(딱 대충 설명할 수 있을 정도로만 찾아봤다)
Dead Reckoning(추측 항법) 알고리즘
네트워크 지연으로 인한 문제를 해결하기 위한 개념. 보통 네트워크 지연에 민감한 실시간 게임 등에 사용된다.
※ 지연(Latency) : 한 컴퓨터에서 다른 컴퓨터로 네트워크를 통해 정보의 패킷을 얻는데 걸리는 시간
비동기 게임(체스, 바둑 등)의 경우에는 별 문제 없다.
빠른 상호 작용을 필요로 하는 시스템(대표적으로 게임)에서는 LAN/WAN에서 발생하는 일반적인 지연으로도 치명적이다.
지연을 줄이기 위해 게임 제작사들이 개발한 상용 솔루션(보통 전용 네트워크 세그먼트에 의존)들은 지연을 예측하는 상황에는 약하다.
이론적으로는 매 프레임마다 이벤트와 상태를 전송하면 되지만, 이 경우 클라이언트가 증가할수록 전송 횟수가 기하급수적으로 치솟는다.
작동 방식을 요약하자면
-> 이벤트가 발생하면 패킷을 전송하고, 패킷이 새로 오기 전까지는 이전에 수신한 패킷의 내용(이벤트)에 따라 처리한다.
-> 각 클라이언트는 패킷을 통해 처리에 필요한 각종 데이터(수치값/벡터값)를 받는다.
-> 지연으로 인한 오차를 줄이기 위해 패킷을 통해 받은 데이터(이벤트/수치값/벡터값)로 인한 변화는 각 클라이언트(수신측)에서 처리한다
-> 각 클라이언트가 알아서 처리하기 때문에 종종 다른 개체의 움직임이 끊어져 보이거나 순간이동 하는 상황이 발생한다.
출처 :
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=loveful&logNo=50001261190
https://www.gamedeveloper.com/programming/dead-reckoning-latency-hiding-for-networked-games
'IT 지식' 카테고리의 다른 글
CAPEX / OPEX (0) | 2023.06.10 |
---|---|
게임 아키텍처 : 비동기/지속/세션 (0) | 2022.11.28 |
Lag Compensation (0) | 2022.11.28 |
Kafka 입문 (4) (0) | 2022.10.06 |
Kafka 입문 (3) (0) | 2022.09.20 |
댓글