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

게임 렉 백서 › 일부에게만 생기는 문제

시계 추정 오차로 개체 보류 Clock estimate error holds or discards entities

원인 ID pt-clock-hold · 주 담당 게임개발팀·클라이언트 개발

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

클라이언트가 추정한 서버 시각이 틀리면, 막 도착한 개체 정보를 “아직 미래”라며 보류하거나 “너무 옛날”이라며 버립니다.

왜 한쪽 클라이언트의 서버 시각 추정이 크게 어긋남(로딩 중 측정, 절전 복귀) → 그러면 보간 기준 시각과 개체 정보 시각이 맞지 않음 → 화면에서는 개체가 늦게 나타나거나 멈춘 채로 보임

증상
안 보임·유령 개체, 뚝뚝 끊김
요인
지연
누가 겪나
같은 PC의 한쪽 클라만
언제
가만히 있다가, 접속·점검 직후
담당
주 담당 게임개발팀·클라이언트 개발
게임개발팀 할 일
시간 동기화를 주기적으로 다시 하고 차이가 크면 즉시 재설정, 로딩 중이나 절전 복귀 직후에 잰 값은 쓰지 않기.
그래프에서는
일부만 높음 · 클라이언트별 서버 시각 추정 오차
확인할 곳
클라이언트에 추정한 서버 시각, RTT, 시간 동기화를 다시 한 시각, 개체 정보를 보류하거나 버린 횟수를 기록. 로딩 직후나 절전 복귀 직후에 재현해 봄
이러면 맞음
문제가 난 클라이언트만 추정 오차가 재설정 기준(Unity는 hardResetThresholdSec, 기본 0.2초)을 넘고 개체 정보를 미래라며 보류하거나 과거라며 버린 기록이 있으며 시간 동기화를 다시 하면 바로 정상
이러면 아님
추정 오차가 작은데 늦게 나타나면 연결별 전송 예산·우선순위나 로딩 쪽 원인
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
    시간 차이가 hardResetThresholdSec(기본 0.2초)를 넘으면 강제로 맞추고, 평소엔 adjustmentRatio로 조금씩 빠르게·느리게 조정
  2. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    LocalTime은 서버보다 앞서고 ServerTime은 뒤처짐. 늦게 도착한 메시지는 대기 시간이 음수가 될 수 있음

함께 보면 좋은 원인

같은 층: 일부에게만 생기는 문제

같은 증상(안 보임·유령 개체)의 다른 층 원인

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