replication 소유권 지도

Actor와 Component 복제

서버가 존재를 만들고, 액터가 네트워크 채널을 열며, 컴포넌트는 그 안에서 자기 상태만 복제 대상으로 등록합니다.

01 server

존재 확정

게임 규칙은 서버에서 액터를 만들고 파괴합니다. 클라이언트 Spawn은 권위 있는 복제가 아닙니다.

02 channel

액터 채널

관련성, 소유자, 컬링 거리가 맞아야 클라이언트에 액터 사본이 생깁니다.

03 layout

속성 목록

복제할 값은 GetLifetimeReplicatedProps에서 엔진의 복제 레이아웃에 들어갑니다.

04 apply

클라이언트 반영

값 적용 뒤 OnRep가 UI, 사운드, 애니메이션 같은 표현 책임을 처리합니다.

05 close

종료와 휴면

Destroy, dormancy, relevancy 변화는 채널을 닫거나 업데이트 빈도를 낮춥니다.

Actor

존재, 소유권, 이동

액터는 네트워크 정체성입니다. bReplicates, Owner, SetReplicatesMovement가 채널의 큰 틀을 결정합니다.

Component

기능 단위 상태

컴포넌트는 액터 안의 모듈입니다. 자기 변수는 등록하지만, 존재 전파는 소유 액터에 기대고 있습니다.

Property / RPC

상태와 이벤트 분리

지속 상태는 Replicated 변수, 순간 행동은 RPC로 나눕니다. 조건부 복제는 대상 범위를 줄이는 장치입니다.

not spawned

클라이언트에 액터가 없다

서버 생성, bReplicates, 관련성, NetCullDistanceSquared를 먼저 확인합니다.

stale value

값만 갱신되지 않는다

서버에서 값을 바꾸는지, UPROPERTY와 DOREPLIFETIME이 같은 멤버를 가리키는지 봅니다.

visual only

표현만 어긋난다

서버 권위 상태와 클라이언트 OnRep 후처리를 분리하면 재현 로그가 짧아집니다.