게임 렉 백서 › L9 서버 게임 프로세스
한 대상에 몰린 전투 (월드 보스) Hot entity / combat event fan-out
원인 ID sp-hot-entity · 주 담당 게임개발팀·서버 개발
그림과 실험이 있는 원본 카드로 열기 →
수백 명이 보스 하나를 동시에 때리면, 보스 한 마리의 계산이 한곳에 몰리고 타격 정보가 보는 모두에게 전송됩니다.
왜 수백 명이 한 보스에게 스킬·버프·디버프를 쉬지 않고 사용 → 그러면 보스의 체력·어그로 목록·디버프 계산이 한곳에 몰리고 타격마다 데미지 숫자·이펙트 패킷을 보는 모두에게 전송 → 화면에서는 스킬이 늦게 들어가고 데미지 숫자가 몰아서 뜸, 보스 주변만 슬로우모션
- 증상
- 입력 지연, 몰아치기, 슬로우모션
- 요인
- 정체, 지연
- 누가 겪나
- 특정 장소·채널
- 언제
- 사람이 몰릴 때
- 담당
- 주 담당 게임개발팀·서버 개발
- 게임개발팀 할 일
- 남의 데미지 숫자·이펙트는 묶거나 생략, 한 대상에 걸리는 디버프 수 상한, 타격 처리를 여러 틱에 나누기.
- 수치 감각
- 800명이 초당 2번씩 때리면 초당 1,600번의 타격. 이를 보는 800명에게 모두 알리면 초당 128만 개의 메시지입니다.
- 그래프에서는
- 인원·부하를 따라 오름 · 서버 틱 시간, 송신 메시지 수
- 확인할 곳
- 보스전 시각의 틱 시간과 송신 패킷 수를 보스 주변 인원과 함께 보고 가능하면 대상별 초당 이벤트(타격·버프·디버프) 수
- 이러면 맞음
- 보스 주변 인원이 늘 때 틱 시간과 송신량이 가파르게 늘고 보스 한 마리의 초당 이벤트 수가 다른 대상보다 수십 배 많음
- 이러면 아님
- 보스와 상관없이 한곳에 모이기만 해도 똑같이 느려지면 시야 계산이나 브로드캐스트 폭증 쪽
- 확인 수단
- 게임 서버·클라이언트의 로그·지표가 필요
출처
- HED-GP Technical Retrospective: What a HED-ache CCP Games
공격 한 번도 보는 모든 클라이언트에 알려야 해서 n명이 n명에게 알리는 O(n²) 부담이 생기고, 메시지가 많은 드론 공격은 이 부담이 더 빨리 커짐
함께 보면 좋은 원인
같은 층: L9 서버 게임 프로세스
같은 증상(입력 지연)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기