rpc lifecycle

RPC 실패는 호출 수명 주기와 소유권에서 먼저 갈린다

UFUNCTION 지정자는 함수 문법이 아니라 네트워크 경로 계약입니다. 호출자와 실행 대상을 고정한 뒤 신뢰성과 검증 위치를 붙입니다.

declare

지정자 선언

Server, Client, NetMulticast 중 실행 위치가 맞는 선언을 고릅니다.

caller

호출자 확인

입력은 소유 클라이언트, 결과 전파는 서버에서 시작하는지 봅니다.

통과 기준

소유권 게이트

Owner와 PlayerController 경로가 끊기면 Client RPC와 Server RPC가 도착하지 않습니다.

queue

전송 큐

Reliable은 누락을 줄이지만 빈번한 호출에서는 지연을 쌓을 수 있습니다.

execute

실행 함수

_Implementation 초입에서 권한, 거리, 탄약, 쿨다운 같은 서버 기준을 검증합니다.

Server RPC

요청을 권위 상태로 바꿈

출발

AutonomousProxy가 소유 액터에서 호출합니다.

실행

서버 _Implementation에서 데미지, 탄약, 점수를 확정합니다.

Client RPC

개별 클라이언트 표현 전달

출발

서버가 오너 연결로 HUD, 알림, 보정 명령을 보냅니다.

실행

해당 클라이언트 사본에서만 UI와 사운드를 처리합니다.

NetMulticast

관련 복제본에 이벤트 전파

출발

서버가 이미 복제된 액터의 모든 관련 사본으로 보냅니다.

실행

폭발, 짧은 이펙트, 공용 사운드처럼 상태가 아닌 표현에 맞습니다.

no owner

호출 로그만 있고 실행이 없다

SetOwner, Possessed Pawn, PlayerController 연결을 먼저 확인합니다.

spam reliable

지연이 누적된다

매 틱 Reliable RPC는 큐를 막습니다. 상태 복제나 Unreliable 이벤트로 나눕니다.

valid early

검증은 서버 초입에 둔다

거리, 속도, 쿨다운, 탄약은 클라이언트 믿음보다 서버 데이터로 판단합니다.