게임 렉 백서 › L9 서버 게임 프로세스
밀집 지역 진입 시 스폰 폭주 Spawn burst when entering a crowd
원인 ID sp-spawn-burst · 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
그림과 실험이 있는 원본 카드로 열기 →
사람이 가득한 마을로 텔레포트하면, 서버는 새로 보이게 된 수백 명의 외형·장비·상태를 한꺼번에 보내야 합니다.
왜 텔레포트·접속·채널 이동으로 붐비는 곳에 갑자기 나타남 → 그러면 수백 명분의 전체 정보를 한 번에 만들어 보내고 내 PC도 한 번에 불러옴 → 화면에서는 도착 직후 잠깐 멈춤, 캐릭터가 늦게 하나씩 나타나고 입력이 늦음
- 증상
- 멈춤, 입력 지연, 몰아치기
- 요인
- 정체, 지연
- 누가 겪나
- 나만, 특정 장소·채널
- 언제
- 이동 중·지역 전환 때, 접속·점검 직후
- 담당
- 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
- 게임개발팀 할 일
- 서버: 가까운 순서로 여러 틱에 나눠 보내기, 외형 정보 캐시. 클라이언트: 로딩 화면 동안 미리 받기, 받은 캐릭터를 여러 프레임에 나눠 생성.
- 수치 감각
- 한 명의 외형·장비·버프 정보가 300바이트면 500명은 약 150KB. 평소 한 틱 전송량(수 KB)의 수십 배가 한순간에 몰립니다.
- 그래프에서는
- 접속·점검 직후 폭증 · 연결별 송신 바이트, 클라이언트 프레임 시간
- 확인할 곳
- 붐비는 곳에 도착한 직후 몇 초 동안 그 연결로 보낸 바이트·패킷 수(서버 로그)와 클라이언트 프레임 시간(넷그래프·클라이언트 로그)
- 이러면 맞음
- 도착 직후 그 연결의 송신량이 평소 한 틱의 수십 배로 솟았다가 가라앉고 같은 순간 클라이언트 프레임 시간도 튐
- 이러면 아님
- 한산한 곳으로 이동해도 똑같이 멈추면 존 이동(서버 간 이관)이나 클라이언트 로딩 쪽
- 확인 수단
- 게임 서버·클라이언트의 로그·지표가 필요
출처
- Detailed Actor Replication Flow in Unreal Engine Epic Games
액터 채널을 처음 열 때 초기 위치·회전 같은 정보를 함께 보내고 연결이 포화되면 남은 액터는 다음 틱으로 미룸 - Actor Priority in Unreal Engine Epic Games
거리와 시선 방향으로 우선순위를 매겨 가깝고 보이는 액터부터 보냄
함께 보면 좋은 원인
같은 층: L9 서버 게임 프로세스
같은 증상(멈춤)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기