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

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

로딩 중 도착한 등장 알림 폐기 Spawn messages dropped before the client is ready

원인 ID pt-loading-drop · 주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발

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

존에 들어가자마자 서버가 주변 NPC 등장 알림을 보내는데 클라이언트가 아직 맵을 불러오는 중이라 그 알림을 버립니다.

왜 서버가 입장 처리 직후 주변 개체 등장 알림을 발송 → 그러면 클라이언트는 로딩 중이라 메시지 핸들러가 아직 없어 알림을 버림 → 화면에서는 서버는 이미 보낸 것으로 처리해 다시 안 보냄. 시야를 벗어났다 오기 전까지 NPC가 안 보임

증상
안 보임·유령 개체
요인
손실
누가 겪나
같은 PC의 한쪽 클라만, 나만
언제
접속·점검 직후, 이동 중·지역 전환 때
담당
주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발
게임개발팀 할 일
클라이언트: 로딩이 끝나면 “준비 완료” 보내기, 또는 로딩 중 받은 패킷을 보관했다가 처리. 서버: “준비 완료”를 받은 뒤에 주변 정보 전송.
수치 감각
같은 PC에서 두 클라이언트가 동시에 로딩하거나 로딩하는 쪽이 백그라운드 창이면, CPU·디스크를 나눠 쓰고 처리도 제한되어 그쪽 로딩이 몇 배 길어질 수 있습니다. 서버 입장 처리가 빨라져도 같은 버그가 드러납니다.
그래프에서는
일부만 높음 · 클라이언트별 로딩 시간, 로딩 중 버린 메시지 수
확인할 곳
클라이언트가 로딩 중 받아서 버린 메시지의 수·종류와 로딩 완료 시각을, 서버가 등장 알림을 보낸 시각과 비교. 같은 PC에서 두 클라이언트를 동시에 로딩하거나 로딩하는 쪽을 백그라운드 창으로 두면 재현하기 쉬움
이러면 맞음
안 보이는 NPC의 등장 알림을 서버는 보냈고 도착 시각이 로딩 완료 전이며, 그 시간에 버린 메시지 수가 늘어 있음. 로딩이 긴 쪽 클라이언트에서만 생김
이러면 아님
등장 알림이 로딩 완료 뒤에 도착했는데도 안 보이면 기준 스냅샷 유실이나 개체 ID 재사용 혼동. 서버가 그 NPC 알림을 아예 보내지 않았으면 시야 등록 순서 꼬임이나 채널·페이즈 차이
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. NetworkConfig class (Netcode for GameObjects 2.5) Unity
    SpawnTimeout: 아직 생성되지 않은 개체의 메시지는 보류했다가, 시간 안에 생성되지 않으면 버림
  2. Actor Relevancy in Unreal Engine Epic Games
    관련성이 없어진 액터는 클라이언트에서 지워지고 다시 관련되면 새로 복제

함께 보면 좋은 원인

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

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

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