Unreal 네트워크 최적화

멀티플레이 최적화 축

네트워크 성능 문제는 서버 권한을 유지하면서 어떤 Actor를 누구에게 얼마나 자주 보낼지 결정하는 작업이다. NetUpdateFrequency, relevancy, dormancy, RPC payload, 프로파일 지표를 분리해 본다.

01

증상 측정

Network Profiler와 Unreal Insights로 actor channel, bunch size, packet loss, saturation을 먼저 확인한다.

감으로 줄이지 않기
02

대상 축소

거리, 소유자, 팀, 시야 기준으로 Net Relevancy와 Replication Graph를 조정한다.

안 보이면 보내지 않기
03

빈도 조정

빠른 움직임과 느린 상태를 나눠 NetUpdateFrequency와 MinNetUpdateFrequency를 다르게 둔다.

Actor별 주기
04

상태 절전

변화가 드문 Actor는 dormancy로 채널 트래픽을 줄이고 깨우는 조건을 명확히 한다.

FlushNetDormancy
RPC
이벤트성 명령만 매 프레임 값 전달은 RPC가 아니라 property replication이나 client prediction을 검토한다.
payload 작게
Property
상태 동기화 RepNotify는 변경 시 반응을 묶되 큰 struct 전체 복제를 피한다.
delta 고려
Movement
빈도와 보간 중요 Pawn은 갱신 빈도와 interpolation을 조정하고 장식 Actor는 낮춘다.
체감 우선
Security
클라이언트 요청 검증 트래픽 감소를 이유로 서버 검증을 빼면 치트 표면이 커진다.
권한은 서버

채널 수 · RPC 크기 · 절전 해제 점검

채널 수 동시에 열린 actor channel이 플레이어 수에 비례해 폭증하지 않는지 확인한다.
RPC 크기 배열, 문자열, transform 목록을 RPC로 반복 전송하지 않는지 본다.
절전 해제 Dormant Actor가 상태 변경 후 클라이언트에 깨워져 복제되는지 테스트한다.