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

게임 렉 백서 › 동기화 설계

핑에 먹히는 짧은 판정 구간 Timing window too short for latency + reaction

원인 ID sy-short-window · 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발, 인프라팀·서버 인프라

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

회피·패링·가드처럼 반응해야 하는 시간이 짧으면, 핑이 그 시간을 먹어 버려 피할 수 없는 공격이 생깁니다.

왜 보스 공격 예고 0.5초, 패링 판정 0.2초처럼 짧은 판정 구간 → 그러면 예고를 늦게 보고(내려오는 지연 + 보간), 내 입력도 늦게 도착(올라가는 지연 + 틱 대기) → 화면에서는 분명 피했는데 맞음, 패링이 씹힘

증상
씹힘·롤백, 입력 지연
요인
지연
누가 겪나
나만, 특정 기능만
언제
특정 행동을 할 때
담당
주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발, 인프라팀·서버 인프라
게임개발팀 할 일
서버: 공격 예고를 서버 시각으로 예약해 미리 보내기, 판정 구간을 핑만큼 늘리기(지연 보상). 클라이언트: 받은 예고를 예약된 서버 시각에 맞춰 재생.
인프라팀 할 일
유저가 많은 지역 가까이에 서버 배치(지역 서버)해 핑 자체를 줄이기.
수치 감각
핑 150ms, 보간 100ms면 예고가 내 화면에 뜨기까지 약 0.18초, 내 입력이 서버에 닿기까지 약 0.1초가 듭니다. 사람 반응 0.25초를 더하면 0.5초 예고는 피하기가 거의 불가능합니다.
그래프에서는
일부만 높음 · 회피·패링 실패율(핑 구간별)
확인할 곳
서버 로그에 판정 구간의 시작·끝 시각, 유저 입력의 서버 도착 시각, 그 유저의 RTT를 남기고 실패율을 핑 구간(예: 50ms 단위)별로 나눠 봄
이러면 맞음
핑이 높은 구간일수록 실패율이 뚜렷이 높고 실패한 입력이 판정 구간이 끝나고 조금 뒤(RTT와 보간 시간을 더한 값 이내)에 도착함
이러면 아님
핑 구간과 상관없이 실패율이 비슷하면 패턴 난이도 문제. 입력이 판정 구간 안에 도착했는데도 실패로 나오면 판정 코드나 서버 검증을 봄
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. Factors influencing the latency of simple reaction time (Frontiers in Human Neuroscience, 2015) Frontiers
    단순 반응 시간 평균 약 231ms(장비 지연 보정 시 213ms), 최근 대규모 연구들은 233~400ms
  2. Latency and Player Actions in Online Games (Communications of the ACM, 2006) ACM
    정밀하고 마감 시간이 짧은 행동일수록 지연에 민감(1인칭 약 100ms, 3인칭 약 500ms, 전지적 시점 약 1,000ms에서 한계)
  3. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    서버 시각(ServerTime)에 맞춰 이벤트를 예약해 모든 클라이언트가 같은 순간에 재생하는 방법

함께 보면 좋은 원인

같은 층: 동기화 설계

같은 증상(씹힘·롤백)의 다른 층 원인

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