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

게임 렉 백서 › 동기화 설계

서버 응답 후에만 연출 (요청-응답 방식) Request-response (no client-side feedback)

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

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

버튼을 누르면 서버 답이 올 때까지 애니메이션도 소리도 없습니다. 핑이 곧 반응 속도가 됩니다.

왜 스킬·이동·줍기를 서버 확인이 온 뒤에 재생 → 그러면 누른 순간부터 왕복 시간 + 틱 대기만큼 아무 반응 없음 → 화면에서는 핑 150ms면 모든 행동이 0.2초씩 굼뜸

증상
입력 지연
요인
지연
누가 겪나
나만
언제
항상, 특정 행동을 할 때
담당
주 담당 게임개발팀·클라이언트 개발 · 함께 게임개발팀·서버 개발
게임개발팀 할 일
클라이언트: 애니메이션·소리·이펙트는 누르는 즉시 시작(선연출), 결과(데미지·보상)만 서버 확정 뒤 표시, 이동·기본 공격은 예측해 바로 반영, 서버의 위치 보정을 받으면 그 위치에서 아직 확인받지 못한 입력을 다시 적용. 서버: 받은 입력으로 이동을 직접 계산해 클라이언트가 예측한 위치와 차이가 기준을 넘을 때만 보정 값 보내기.
수치 감각
반응 시간 ≈ 핑 + 틱 간격의 절반 + 한 프레임. 20틱·핑 150ms면 약 190ms.
그래프에서는
처음부터 늘 높음 · 입력에서 연출 시작까지 걸린 시간, RTT(핑)
확인할 곳
개발 빌드의 클라이언트 로그에 버튼 입력 시각, 첫 애니메이션·소리 시작 시각, 서버 응답 도착 시각을 남기고 게임 안 RTT와 나란히 봄. 엔진의 네트워크 에뮬레이션(Unreal NetEmulation.PktLag)이나 시험 서버의 리눅스 tc netem으로 지연을 넣어 핑을 바꿔 가며 잼
이러면 맞음
연출 시작이 늘 서버 응답 도착과 같은 순간이고 입력에서 연출까지 걸린 시간이 RTT + 틱 대기만큼이며 넣은 지연만큼 그대로 늘어남
이러면 아님
연출은 누르는 즉시 시작하고 데미지 숫자 같은 결과만 늦으면 정상 설계. 핑이 낮은 곳에서도 틱 간격 이상 늦으면 이중 틱 대기나 클라이언트 프레임 문제
확인 수단
게임 서버·클라이언트의 로그·지표가 필요
더 알아보기
턴제, 카드, 방치형처럼 빠른 반응이 필요 없는 게임은 이 방식이 가장 단순하고 안전합니다. 실시간 조작이 있는 게임에서 이동이나 기본 공격까지 이렇게 만들면 문제가 됩니다.

출처

  1. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    서버 결과만 기다리는 클라이언트는 지연이 500ms면 모든 행동이 500ms 뒤에야 보임. 클라이언트 예측과 서버 보정으로 해결
  2. Using Gameplay Abilities in Unreal Engine Epic Games
    Local Predicted는 누르는 즉시 실행하고 서버가 최종 결정, Server Initiated는 예측이 없어 쓰는 사람에게 지연이 보임
  3. Understanding Networked Movement in the Character Movement Component for Unreal Engine Epic Games
    클라이언트가 이동을 예측·저장해 두고 서버 오차가 허용치(MAXPOSITIONERRORSQUARED)를 넘을 때만 보정하며 보정 뒤 저장한 이동을 다시 적용
  4. Using Network Emulation in Unreal Engine Epic Games
    서버·클라이언트에 최소·최대 지연과 패킷 손실 비율을 넣어 시험, 콘솔에서는 NetEmulation.PktLag처럼 설정
  5. tc-netem(8) — Linux manual page iproute2
    나가는 패킷에 지연·지터(delay TIME JITTER)와 손실(loss random PERCENT)을 넣어 실제 네트워크를 흉내 내는 시험 도구

함께 보면 좋은 원인

같은 층: 동기화 설계

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

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