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

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

느린 사람이 남의 화면에서 몰아서 움직임 Laggy player seen by others (bursty inputs)

원인 ID pt-slow-burst · 주 담당 게임개발팀·서버 개발 · 함께 외부·외부

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

회선이 나쁜 사람의 입력은 들쭉날쭉 몰려서 서버에 도착합니다. 서버가 틱마다 받은 만큼 적용하면, 다른 사람 눈에는 그 캐릭터가 멈칫했다가 한 번에 여러 걸음을 갑니다.

왜 느린 사람의 이동 명령이 어떤 틱엔 0개, 어떤 틱엔 2~3개씩 도착 → 그러면 서버가 받은 틱에 한꺼번에 적용해 그 캐릭터 위치가 계단처럼 변함 → 화면에서는 다른 사람 화면에서 그 캐릭터만 멈칫하다 한 번에 몰아서 이동. 나머지는 멀쩡

증상
몰아치기, 순간이동
요인
지터, 손실
누가 겪나
특정 캐릭터만 이상해 보임, 특정 지역·통신사
언제
항상, 이동 중·지역 전환 때
담당
주 담당 게임개발팀·서버 개발 · 함께 외부·외부
게임개발팀 할 일
플레이어별 입력 버퍼로 명령을 고르게 나눠 적용, 입력 시퀀스 번호를 보고 원래 간격대로 적용, 다른 사람 화면의 보간 버퍼만 늘리는 것으로는 부족(서버의 위치 기록 자체가 계단 모양이기 때문).
외부 할 일
느린 유저에게 유선 연결, 와이파이·공유기 점검 안내.
수치 감각
지터 80ms면 20틱(50ms) 서버에서 틱당 명령 수가 0~3개로 흔들립니다.
그래프에서는
일부만 높음 · 플레이어별 틱당 적용 명령 수, 플레이어별 지터
확인할 곳
서버 쪽 패킷 캡처에서 제보된 유저가 보낸 패킷만 걸러 틱 간격(예: 50ms)마다 몇 개씩 도착했는지 세고 다른 유저와 비교. 서버 로그가 있으면 플레이어별로 틱마다 적용한 이동 명령 수와 입력 시퀀스 번호를 봄
이러면 맞음
제보된 유저의 패킷만 틱마다 0개와 2~3개를 오가며 몰려 도착하고 그 유저의 지터·손실이 높으며, 다른 유저의 패킷은 고르게 도착함. 그 유저가 유선으로 바꾸면 줄어듦
이러면 아님
여러 캐릭터가 한꺼번에 몰아서 움직이면 서버 틱 지연이나 보는 사람 쪽 회선. 도착과 적용이 고른데도 그 캐릭터만 튀어 보이면 보는 쪽의 보간·표시 문제
확인 수단
인프라 도구로 확인(게임 코드 불필요)
더 알아보기
서버 권위 구조에서는 이것이 정상 동작입니다. 느린 한 사람의 렉은 “그 사람이 이상하게 움직이는 모습”으로만 남에게 보이고 다른 사람의 조작이나 몬스터 움직임에는 영향을 주지 않습니다. 다만 그 사람과 직접 주고받는 일(거래, 파티 기믹, PvP 판정)은 함께 늦어집니다.

출처

  1. Peeking into VALORANT's Netcode Riot Games
    서버는 플레이어별 이동 대기열에 도착한 입력을 틱 순서대로 넣고 비면 예측으로 채움. 보정은 그 플레이어에게만 보이고 나머지는 매끄럽게 봄
  2. State Synchronization Gaffer On Games
    초당 60번 보낸 패킷도 한 프레임에 2개, 다음 프레임에 0개처럼 몰려 도착
  3. Source SDK 2013: player.cpp Valve
    몰려 온 명령을 서버 틱에 나눠 처리(meter out)

함께 보면 좋은 원인

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

같은 증상(몰아치기)의 다른 층 원인

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