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

게임 렉 백서 › L9 서버 게임 프로세스

밀집 지역 진입 시 스폰 폭주 Spawn burst when entering a crowd

원인 ID sp-spawn-burst · 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발

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

사람이 가득한 마을로 텔레포트하면, 서버는 새로 보이게 된 수백 명의 외형·장비·상태를 한꺼번에 보내야 합니다.

왜 텔레포트·접속·채널 이동으로 붐비는 곳에 갑자기 나타남 → 그러면 수백 명분의 전체 정보를 한 번에 만들어 보내고 내 PC도 한 번에 불러옴 → 화면에서는 도착 직후 잠깐 멈춤, 캐릭터가 늦게 하나씩 나타나고 입력이 늦음

증상
멈춤, 입력 지연, 몰아치기
요인
정체, 지연
누가 겪나
나만, 특정 장소·채널
언제
이동 중·지역 전환 때, 접속·점검 직후
담당
주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
게임개발팀 할 일
서버: 가까운 순서로 여러 틱에 나눠 보내기, 외형 정보 캐시. 클라이언트: 로딩 화면 동안 미리 받기, 받은 캐릭터를 여러 프레임에 나눠 생성.
수치 감각
한 명의 외형·장비·버프 정보가 300바이트면 500명은 약 150KB. 평소 한 틱 전송량(수 KB)의 수십 배가 한순간에 몰립니다.
그래프에서는
접속·점검 직후 폭증 · 연결별 송신 바이트, 클라이언트 프레임 시간
확인할 곳
붐비는 곳에 도착한 직후 몇 초 동안 그 연결로 보낸 바이트·패킷 수(서버 로그)와 클라이언트 프레임 시간(넷그래프·클라이언트 로그)
이러면 맞음
도착 직후 그 연결의 송신량이 평소 한 틱의 수십 배로 솟았다가 가라앉고 같은 순간 클라이언트 프레임 시간도 튐
이러면 아님
한산한 곳으로 이동해도 똑같이 멈추면 존 이동(서버 간 이관)이나 클라이언트 로딩 쪽
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. Detailed Actor Replication Flow in Unreal Engine Epic Games
    액터 채널을 처음 열 때 초기 위치·회전 같은 정보를 함께 보내고 연결이 포화되면 남은 액터는 다음 틱으로 미룸
  2. Actor Priority in Unreal Engine Epic Games
    거리와 시선 방향으로 우선순위를 매겨 가깝고 보이는 액터부터 보냄

함께 보면 좋은 원인

같은 층: L9 서버 게임 프로세스

같은 증상(멈춤)의 다른 층 원인

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