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

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

시야 등록 순서 꼬임 Interest-management race on enter/leave

원인 ID pt-aoi-race · 주 담당 게임개발팀·서버 개발

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

캐릭터가 시야 격자에 등록되는 순간과 NPC가 격자를 옮기는 순간이 겹치면, 그 NPC의 등장 알림이 누락될 수 있습니다.

왜 입장·채널 이동·순간이동 처리와 NPC 이동이 같은 순간에 겹침 → 그러면 “새로 보이게 된 개체” 계산에서 그 NPC가 빠짐 → 화면에서는 특정 NPC 몇 마리만 안 보이거나 이미 떠난 NPC가 남아 있음

증상
안 보임·유령 개체
요인
손실
누가 겪나
같은 PC의 한쪽 클라만, 나만
언제
이동 중·지역 전환 때, 가끔 무작위로
담당
주 담당 게임개발팀·서버 개발
게임개발팀 할 일
시야 갱신을 한 스레드·한 순서로 처리, 주기적으로 “보이는 목록” 전체를 다시 맞추기.
그래프에서는
가끔 무작위로 튐 · 서버 보이는 목록과 클라이언트 개체 목록의 차이 수
확인할 곳
서버에 시야 격자 등록, 개체의 셀 이동, 등장·퇴장 알림 발송을 틱 번호와 함께 남기고 주기적으로 서버의 “보이는 목록”과 클라이언트가 가진 목록을 비교
이러면 맞음
빠진 NPC가 그 캐릭터의 입장·순간이동 처리와 같은 틱에 셀을 옮겼고 그 NPC의 등장 알림 발송 기록이 없음
이러면 아님
등장 알림은 보냈는데 클라이언트가 못 받았거나 버렸으면 전달 쪽(입장 직후 몰리는 등장 정보 유실, 로딩 중 도착한 등장 알림 폐기). 늘 같은 NPC만 빠지면 페이즈나 표시 옵션 차이
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. Replication Graph in Unreal Engine Epic Games
    MMORPG 등은 월드를 격자로 나눠 셀마다 액터 목록을 두고 클라이언트가 있는 셀 기준으로 전송
  2. Actor Relevancy in Unreal Engine Epic Games
    관련성은 연결마다 판단하고 관련 없어진 액터는 클라이언트에서 지워짐

함께 보면 좋은 원인

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

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

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