게임 렉 백서 › 일부에게만 생기는 문제
퇴장 알림 유실 (유령 개체) Missed despawn (ghost entity)
원인 ID pt-ghost · 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
그림과 실험이 있는 원본 카드로 열기 →
“사라졌다”는 알림을 놓치면, 이미 죽었거나 떠난 NPC·플레이어가 내 화면에만 남습니다.
왜 죽음·퇴장·시야 이탈 알림이 손실되거나 순서가 꼬임 → 그러면 클라이언트는 그 개체가 아직 있다고 판단 → 화면에서는 때려도 반응 없는 몬스터, 이미 나간 플레이어가 서 있음
- 증상
- 안 보임·유령 개체
- 요인
- 손실
- 누가 겪나
- 같은 PC의 한쪽 클라만, 나만
- 언제
- 가끔 무작위로, 사람이 몰릴 때
- 담당
- 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
- 게임개발팀 할 일
- 서버: 주기적으로 “지금 보이는 목록” 보내기. 클라이언트: 목록에 없는 개체는 지우기, 움직여야 할 개체가 오래 갱신이 없으면 숨기기.
- 그래프에서는
- 가끔 무작위로 튐 · 클라이언트에만 남은 개체 수
- 확인할 곳
- 서버가 보내는 “지금 보이는 목록”과 클라이언트가 가진 개체 목록을 비교해 클라이언트에만 있는 개체를 세고 퇴장 알림의 발송·수신 로그를 개체 ID로 대조
- 이러면 맞음
- 유령 개체의 퇴장 알림을 서버는 보냈는데 클라이언트 수신 기록이 없거나, 퇴장이 등장보다 먼저 도착해 순서가 뒤집혀 있음
- 이러면 아님
- 서버의 보이는 목록에도 그 개체가 남아 있으면 서버 쪽 개체 정리 누락. 같은 ID로 새 개체가 나타난 직후라면 개체 ID 재사용 혼동
- 확인 수단
- 게임 서버·클라이언트의 로그·지표가 필요
출처
- Actor Relevancy in Unreal Engine Epic Games
관련성이 없어진 동적 액터는 클라이언트에서 삭제됨 - Object visibility (Netcode for GameObjects 2.5) Unity
개체를 숨기면 그 클라이언트는 개체를 despawn·삭제
함께 보면 좋은 원인
같은 층: 일부에게만 생기는 문제
같은 증상(안 보임·유령 개체)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기