게임 렉 백서 › 동기화 설계
스킬 선입력 없음 No input/spell queue
원인 ID sy-no-queue · 주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발
그림과 실험이 있는 원본 카드로 열기 →
앞 스킬이 서버에서 끝났다는 확인을 받아야 다음 스킬을 누를 수 있으면, 연계마다 왕복 시간이 끼어듭니다.
왜 다음 스킬 입력을 “이전 스킬 확정 후”에만 받음 → 그러면 스킬 사이마다 핑만큼 빈 시간이 생김 → 화면에서는 연계 사이마다 빈틈이 생기고 핑이 높을수록 DPS가 줄어듦
- 증상
- 입력 지연, 씹힘·롤백
- 요인
- 지연
- 누가 겪나
- 나만, 특정 기능만
- 언제
- 특정 행동을 할 때
- 담당
- 주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발
- 게임개발팀 할 일
- 클라이언트: 쿨다운 끝나기 전 일정 시간(예: 0.3~0.4초) 안의 입력도 받아 바로 서버에 보내는 선입력 허용 시간. 서버: 조금 일찍 도착한 입력을 거절하지 말고 쿨다운이 끝나는 순간 실행.
- 수치 감각
- 쿨다운 1초짜리 연계에서 핑 150ms면 스킬 사이마다 0.15초 이상 비어, 같은 시간에 쓰는 스킬이 13% 넘게 줄어듭니다.
- 그래프에서는
- 처음부터 늘 높음 · 스킬 사이 빈 시간, RTT(핑)
- 확인할 곳
- 서버 로그에 캐릭터별로 스킬 쿨다운이 끝난 시각, 다음 스킬 요청이 도착한 시각, 실행 시각을 남기고 그 사이 빈 시간을 유저 RTT와 비교
- 이러면 맞음
- 쿨다운이 끝나고 다음 스킬이 실행되기까지 늘 RTT 정도가 비고 핑이 높은 유저일수록 빈 시간이 길고 같은 시간에 쓴 스킬 수가 적음
- 이러면 아님
- 빈 시간이 핑과 상관없이 일정하면 공통 쿨다운이나 애니메이션 길이 설계. 빈 시간이 가끔만 크게 튀면 지터·손실이나 틱 예산 초과를 봄
- 확인 수단
- 게임 서버·클라이언트의 로그·지표가 필요
- 더 알아보기
- 예를 들어 월드 오브 워크래프트는 선입력 허용 시간을 두고 플레이어가 설정에서 조절할 수 있게 했습니다. 허용 시간이 왕복 시간보다 길면 연계 사이에 핑이 거의 끼지 않습니다.
출처
- Latency and Player Actions in Online Games (Communications of the ACM, 2006) ACM
에버퀘스트 2에서 지연이 커질수록 캐릭터가 주는 피해가 줄어 전투가 길어짐(0→500ms에서 약 2분 전투에 5초 추가)
함께 보면 좋은 원인
같은 층: 동기화 설계
같은 증상(입력 지연)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기