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

게임 렉 백서 › 동기화 설계

스킬 선입력 없음 No input/spell queue

원인 ID sy-no-queue · 주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발

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

앞 스킬이 서버에서 끝났다는 확인을 받아야 다음 스킬을 누를 수 있으면, 연계마다 왕복 시간이 끼어듭니다.

왜 다음 스킬 입력을 “이전 스킬 확정 후”에만 받음 → 그러면 스킬 사이마다 핑만큼 빈 시간이 생김 → 화면에서는 연계 사이마다 빈틈이 생기고 핑이 높을수록 DPS가 줄어듦

증상
입력 지연, 씹힘·롤백
요인
지연
누가 겪나
나만, 특정 기능만
언제
특정 행동을 할 때
담당
주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발
게임개발팀 할 일
클라이언트: 쿨다운 끝나기 전 일정 시간(예: 0.3~0.4초) 안의 입력도 받아 바로 서버에 보내는 선입력 허용 시간. 서버: 조금 일찍 도착한 입력을 거절하지 말고 쿨다운이 끝나는 순간 실행.
수치 감각
쿨다운 1초짜리 연계에서 핑 150ms면 스킬 사이마다 0.15초 이상 비어, 같은 시간에 쓰는 스킬이 13% 넘게 줄어듭니다.
그래프에서는
처음부터 늘 높음 · 스킬 사이 빈 시간, RTT(핑)
확인할 곳
서버 로그에 캐릭터별로 스킬 쿨다운이 끝난 시각, 다음 스킬 요청이 도착한 시각, 실행 시각을 남기고 그 사이 빈 시간을 유저 RTT와 비교
이러면 맞음
쿨다운이 끝나고 다음 스킬이 실행되기까지 늘 RTT 정도가 비고 핑이 높은 유저일수록 빈 시간이 길고 같은 시간에 쓴 스킬 수가 적음
이러면 아님
빈 시간이 핑과 상관없이 일정하면 공통 쿨다운이나 애니메이션 길이 설계. 빈 시간이 가끔만 크게 튀면 지터·손실이나 틱 예산 초과를 봄
확인 수단
게임 서버·클라이언트의 로그·지표가 필요
더 알아보기
예를 들어 월드 오브 워크래프트는 선입력 허용 시간을 두고 플레이어가 설정에서 조절할 수 있게 했습니다. 허용 시간이 왕복 시간보다 길면 연계 사이에 핑이 거의 끼지 않습니다.

출처

  1. Latency and Player Actions in Online Games (Communications of the ACM, 2006) ACM
    에버퀘스트 2에서 지연이 커질수록 캐릭터가 주는 피해가 줄어 전투가 길어짐(0→500ms에서 약 2분 전투에 5초 추가)

함께 보면 좋은 원인

같은 층: 동기화 설계

같은 증상(입력 지연)의 다른 층 원인

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