한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › L1 클라이언트 게임 프로세스

과도한 외삽(데드 레커닝) Over-extrapolation / dead reckoning

원인 ID cg-extrap · 주 담당 게임개발팀·클라이언트 개발

그림과 실험이 있는 원본 카드로 열기 →

패킷이 오지 않는 동안 마지막 속도로 계속 움직여 보여 주다가, 틀린 걸 알고 되돌립니다.

왜 패킷 수신이 끊겨 마지막 방향·속도로 계속 이동시킴 → 그러면 실제로는 상대가 멈추거나 방향을 바꿨음 → 화면에서는 상대 캐릭터가 한참 가다가 진짜 위치로 휙 옮겨지거나 벽을 뚫고 지나감. 패킷 도착 간격이 들쭉날쭉하면 앞서 나갔다 당겨지기를 반복해 떨리듯 움직임

증상
순간이동, 뚝뚝 끊김
요인
손실, 지터
누가 겪나
나만
언제
가끔 무작위로
담당
주 담당 게임개발팀·클라이언트 개발
게임개발팀 할 일
외삽 시간 상한(예: 200~250ms), 틀렸을 때 부드럽게 수렴.
수치 감각
속도 6m/s라면 300ms만 틀려도 1.8m 어긋납니다.
그래프에서는
가끔 무작위로 튐 · 외삽 시간, 위치 보정 거리
확인할 곳
다른 캐릭터를 외삽으로 그린 시간과, 새 패킷이 온 뒤 위치를 바로잡은 거리를 기록
이러면 맞음
패킷이 끊긴 구간마다 외삽 시간이 상한 없이 길어지고 그 뒤 보정 거리가 수 m로 커짐
이러면 아님
외삽이 짧게 끊기는데도 순간이동하면 패킷 손실·지연 자체가 커서 회선·경로 쪽을 봄
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. Interpolation and extrapolation (Netcode for Entities 6.5) Unity
    다음 스냅샷이 제때 안 오면 같은 방향·속도로 계속 움직이는 외삽은 자주 틀리므로 상한을 둠(유니티 기본 20틱, 60Hz에서 약 1/3초)
  2. Peeking into VALORANT's Netcode Riot Games
    늦거나 빠진 데이터를 추측으로 메우다 틀리면 서버와 어긋나 캐릭터가 튀거나 미끄러지듯 보정됨

함께 보면 좋은 원인

같은 층: L1 클라이언트 게임 프로세스

같은 증상(순간이동)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기