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

게임 렉 백서 › 일부에게만 생기는 문제

플레이어별 입력 버퍼 크기 Per-player server input buffer (jitter buffer)

원인 ID pt-input-buffer · 주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발

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

서버가 사람마다 입력을 조금 모아 두었다가 한 틱에 하나씩 꺼내 쓰면, 다른 사람 눈에는 매끄럽지만 본인 행동이 서버에서 확정되는 시점은 그만큼 늦어집니다.

왜 서버가 느린 사람의 입력을 버퍼에 모아 한 틱에 하나씩 적용 → 그러면 버퍼가 작으면 자주 비어 그 캐릭터가 제자리에 서거나 서버가 마지막 입력으로 추측해 움직이고, 크면 본인 입력이 늦게 확정 → 화면에서는 작으면 남 눈에 멈칫, 크면 본인의 스킬 결과가 늦게 나옴(입력 지연)

증상
뚝뚝 끊김, 입력 지연
요인
지터
누가 겪나
특정 캐릭터만 이상해 보임, 나만
언제
항상
담당
주 담당 게임개발팀·서버 개발 · 함께 게임개발팀·클라이언트 개발
게임개발팀 할 일
서버: 사람마다 회선 상태에 맞춰 버퍼 크기를 자동 조절, 밀리면 두 개씩 꺼내 따라잡기, 버퍼가 자주 비는 사람의 클라이언트에는 입력을 앞당겨 보내라고 지시. 클라이언트: 서버 지시에 맞춰 입력을 조금 더 앞당겨 보내기(클라이언트 시간 조절).
수치 감각
게임마다 다르지만 보통 1~3틱 분량입니다. VALORANT는 128틱 서버에서 서버 버퍼를 평균 반 프레임(약 4ms)으로 더 짧게 유지합니다. 지터가 큰 사람만 버퍼를 늘리는 적응형이 흔합니다.
그래프에서는
일부만 높음 · 플레이어별 입력 버퍼 길이·빈 횟수
확인할 곳
서버에 플레이어별로 틱마다 입력 버퍼에 남은 입력 수, 버퍼가 비어 마지막 입력으로 추측해 채운 횟수, 입력 도착에서 적용까지 걸린 시간을 남김
이러면 맞음
버퍼가 작은 사람은 빈 횟수가 많고 그 순간 남 화면에서 짧게 멈추며 버퍼가 큰 사람은 입력에서 적용까지 걸린 시간이 버퍼 길이만큼 늘어 있음
이러면 아님
버퍼가 거의 비지 않는데 남 화면에서 뚝뚝 끊김이 보이면 보는 쪽의 보간 문제. 버퍼가 짧은데도 입력 지연이 크면 RTT 자체나 이중 틱 대기
확인 수단
게임 서버·클라이언트의 로그·지표가 필요

출처

  1. Peeking into VALORANT's Netcode Riot Games
    서버가 클라이언트 시간 기준을 조정해 입력 대기열을 지연이 최소이면서 고르지 않은 도착을 흡수할 만큼만 유지. 서버 버퍼링 목표는 평균 반 프레임
  2. NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
    LocalBufferSec: 서버가 클라이언트 메시지를 버퍼링할 시간. 클라이언트 시간을 앞당겨 메시지가 서버에 더 일찍 도착
  3. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    회선이 나쁜 플레이어는 버퍼 값을 늘릴 수 있음

함께 보면 좋은 원인

같은 층: 일부에게만 생기는 문제

같은 증상(뚝뚝 끊김)의 다른 층 원인

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