1:25 · input · packet · server tick · interpolation

내 스킬 하나가 상대 화면에 뜨기까지

이 영상에 나오는 용어 13개.

보간 버퍼
상대 클라가 서버 스냅샷을 일정 시간 모아 두고, 그 사이를 부드럽게 이어 그리기 위해 일부러 과거 상태를 보여주는 버퍼다. 영상 예시는 약 100ms다.
브로드캐스트
판정 결과를 AOI 안의 여러 플레이어에게 전송하는 일이다.
예측 실행 (Client-side Prediction)
클라이언트가 서버 승인을 기다리지 않고 입력 결과를 먼저 화면에 보여주는 기법이다. 내 화면이 서버 응답을 기다리지 않고 반응하는 이유다.
존 메시지 큐
존별로 들어온 요청을 로직 스레드가 다음 틱에 꺼내 처리하도록 쌓아 두는 대기열이다.
지터
패킷 도착 간격이 고르지 않게 흔들리는 정도다. 와이파이 구간에서 크게 나타나며, 크면 보간 버퍼를 늘려야 한다.
직렬화
메모리 안의 구조체를 네트워크로 보낼 바이트 열로 바꾸는 일이다. 영상에서는 protobuf를 쓴다.
틱 / 틱레이트
틱은 서버가 월드를 한 번 갱신하는 주기, 틱레이트는 초당 틱 횟수다. 20Hz면 틱 간격이 50ms다.
틱 대기
요청이 존 메시지 큐에 들어가 다음 틱이 시작될 때까지 기다리는 시간이다. 0~50ms 사이로, 평균은 틱 간격의 절반이다.
AOI
각 플레이어가 보는 범위, 즉 시야다. 서버는 이 범위 안의 플레이어에게만 스킬 시전 사실을 보낸다.
RTO
TCP가 ACK를 기다리다 타이머가 만료되어 재전송하는 방식이다. 리눅스 최솟값이 200ms라 손실 한 번이 큰 정지로 이어진다.
RTT
패킷이 상대에게 갔다가 응답이 돌아오는 왕복 시간이다. 편도 지연은 대략 RTT의 절반으로 본다.
UseSkillReq / SkillCastNoti
클라가 서버에 스킬 사용을 요청하는 패킷과, 서버가 주변 플레이어에게 스킬 시전을 알리는 패킷이다. 영상에서 쓰는 예시 메시지 이름이다.
vsync
모니터 갱신 주기에 맞춰 프레임을 출력하는 방식이다. 60Hz 화면이면 최대 약 16ms를 더 기다릴 수 있다.