게임 렉 백서 › 일부에게만 생기는 문제
느린 파티원 한 명과 보스 기믹 One laggy member in a synchronized mechanic
원인 ID pt-raid-member · 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
그림과 실험이 있는 원본 카드로 열기 →
모두가 정해진 순간에 함께 반응해야 하는 레이드 기믹에서는, 느린 한 사람의 늦은 반응이 파티 전체의 실패가 됩니다.
왜 “모두 동시에 흩어지기”, “한 명이 버튼 누르기” 같은 공동 기믹 → 그러면 느린 사람은 예고를 늦게 보고 입력도 늦게 도착 → 화면에서는 그 사람 한 명 때문에 전멸, 다른 파티원은 “렉 걸린 사람 때문”이라고 느낌
- 증상
- 씹힘·롤백, 입력 지연
- 요인
- 지연
- 누가 겪나
- 특정 장소·채널, 특정 캐릭터만 이상해 보임
- 언제
- 사람이 몰릴 때, 특정 행동을 할 때
- 담당
- 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
- 게임개발팀 할 일
- 서버: 기믹 판정 구간을 핑만큼 여유 있게, 예고는 서버 시각으로 미리 보내기, 한 명 실패가 전멸로 이어지지 않는 설계. 클라이언트: 받은 예고를 서버 시각에 맞춰 재생.
- 그래프에서는
- 일부만 높음 · 기믹 실패를 부른 플레이어별 RTT
- 확인할 곳
- 서버 기믹 로그에 실패를 부른 플레이어, 그 사람의 입력 도착 시각, 판정 구간, 그 사람의 RTT·손실을 남김
- 이러면 맞음
- 전멸을 부른 입력이 대부분 같은 한 사람의 것이고 그 사람의 RTT가 파티 평균보다 뚜렷이 높으며 입력이 판정 구간 직후에 도착함
- 이러면 아님
- 실패가 파티원에게 고르게 나뉘면 판정 구간 자체가 짧은 문제(핑에 먹히는 짧은 판정 구간). 느린 사람의 입력이 판정 구간 안에 왔는데도 실패하면 서버 판정 코드
- 확인 수단
- 게임 서버·클라이언트의 로그·지표가 필요
출처
- NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
서버 시각에 맞춰 이벤트를 예약해 모두가 같은 순간에 재생하는 방법 - Factors influencing the latency of simple reaction time (Frontiers in Human Neuroscience, 2015) Frontiers
단순 반응 시간 평균 약 231ms
함께 보면 좋은 원인
같은 층: 일부에게만 생기는 문제
같은 증상(씹힘·롤백)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기