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