76 번재 TIL

이원창·2026년 10월 8일

2026년 10월 8일 휴일을 위해 달려가기 위해서 VOD 강의와 숫자 야구 게임 과제를 하는중이다.

VOD 강의에서 본 것

속성 복제를 더 깊게 본다. RPC와 속성 복제 모두 “얼마나 자주 네트워크를 쓰는지”에 이 값이 걸린다.

NetUpdateFrequency

  • Actor 복제 빈도의 최대치
  • 1초에 복제를 몇 번 시도할지
  • 기본값 100 → 이론상 서버는 0.01초마다 한 번 시도

최대치일 뿐, 그 간격을 보장하지 않는다.

  • 실제 복제는 서버 Tick Rate와 서버 성능에 맞춰 줄어든다
  • 서버가 100번을 못 돌리면, 그 성능만큼만 복제된다
  • 그래픽을 그리지 않는 데디케이티드 서버가 같은 머신에서 더 자주 복제할 수 있다

기본값

움직이는 폰·컨트롤러는 자주, 킬 수·남은 시간처럼 천천히 바뀌는 상태는 드물게 보낸다.

부하를 줄이는 두 방법

서버 위치와 클라이언트 위치가 맞아야 할 때.

  1. 매 틱 위치 복제. 정확하지만 패킷이 많다.
  2. 처음 위치와 속도만 보내고, 클라이언트가 예측. 이번 실습은 이쪽.

빈도를 낮춘 뒤, 받은 값 사이를 보간해서 뚝뚝 끊기지 않게 한다.

DXBox에서 하는 일:

  • 생성자에서 NetUpdateFrequency를 낮춘다
  • 서버 위치·속도를 복제한다
  • 클라이언트는 마지막 수신 위치에서 속도만큼 진행하며 사이를 보간한다

노션 코드 토글은 펼쳐지지 않아 DXBox.h / DXBox.cpp 원문은 여기 넣지 않았다.

앞 강의와 연결

100으로 둔다고 100번 도착하는 것이 아니다. 자주 안 바뀌는 Actor는 값을 내리고, 움직임은 예측·보간으로 메운다.

오늘 정리

  • 100은 상한이다. 서버가 느리면 그보다 적다
  • Pawn 100, GameState 10, PlayerState 1이 기본 감각이다
  • 위치를 매 틱 보내지 말고, 위치+속도로 클라이언트가 이어 가게 한다

0개의 댓글