본문으로 건너뛰기
Unreal Engine 멀티플레이LESSON 18

Reliable과 Unreliable RPC 선택 기준

난이도입문 → 초급
예상 시간65분
선수지식17강의 순간 Multicast 효과

18강. Reliable과 Unreliable RPC 선택 기준

1. 이번 강의에서 해결할 문제​

모든 RPC에 Reliable을 붙이면 안전해 보이지만 입력 반복이 신뢰 큐를 채워 이후 중요한 호출까지 지연시키거나 연결을 불안정하게 만들 수 있습니다. 반대로 매치 참가 승인처럼 한 번 빠지면 진행할 수 없는 요청을 Unreliable로 보내고 복구 경로도 없으면 사용자가 멈춥니다.

2. 학습 목표​

3. 핵심 개념​

Reliable RPC는 연결이 유지되는 동안 순서 있는 전달을 위해 재전송되지만 무제한 용량이 아닙니다. “확실히 중요”하다는 이유로 매 프레임 호출하면 앞선 패킷을 기다리는 동안 큐와 지연이 커집니다. Unreliable RPC는 손실될 수 있으므로 다음 업데이트나 Replicated 상태로 회복 가능한 고빈도·순간 사건에 적합합니다.

사례기본 선택이유·복구
준비 버튼 1회Reliable Server RPC사용자가 명시적으로 상태 전환 요청
상호작용 1회Reliable + 서버 중복 방지놓치면 UX가 멈춤
자동 무기 발사 샘플Unreliable다음 입력·서버 상태로 회복, Rate Limit 필수
총구 효과 MulticastUnreliable손실돼도 게임 상태 유지
체력·점수RPC가 아니라 Property최신 상태 수렴이 목적

4. 단계별 실습​

CaptureArenaPlayerController.h
UFUNCTION(Server, Reliable)
void Server_SetReady(bool bNewReady, uint32 RequestId);

UFUNCTION(Server, Unreliable)
void Server_UpdateAim(FVector_NetQuantizeNormal AimDirection, uint16 Sequence);
CaptureArenaPlayerController.cpp
void ACaptureArenaPlayerController::Server_SetReady_Implementation(
bool bNewReady, uint32 RequestId)
{
ACaptureArenaPlayerState* PS = GetPlayerState<ACaptureArenaPlayerState>();
if (!PS || RequestId <= PS->GetLastReadyRequestId()) return;

PS->SetReadyOnServer(bNewReady, RequestId);
}

void ACaptureArenaPlayerController::Server_UpdateAim_Implementation(
FVector_NetQuantizeNormal AimDirection, uint16 Sequence)
{
if (!AimDirection.IsNormalized()) return;
if (!IsNewerAimSequence(Sequence)) return;

LatestServerAim = AimDirection;
}

Reliable도 UI 중복 클릭이나 재시도 구조 때문에 서버에서 RequestId를 기준으로 멱등성을 확보합니다. Unreliable Aim은 오래된 Sequence를 버리고 최신 방향만 보관합니다. 실제 CharacterMovement 입력을 이 RPC로 대체하지 않습니다.

5. 코드가 동작하는 이유​

Ready는 낮은 빈도의 중요한 상태 전환이지만 최종 상태는 PlayerState에도 복제해 늦은 참가와 UI 재생성을 복구합니다. Aim 샘플은 최신 값만 의미 있으므로 손실된 과거 샘플을 기다리는 것보다 새 Sequence를 받아 갱신하는 편이 낫습니다. 신뢰도와 권위 검증은 별개라 두 RPC 모두 서버 검사를 거칩니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Reliable과 Unreliable RPC 선택 기준 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Reliable과 Unreliable RPC 선택 기준” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2‘중요 상태를 Reliable RPC만으로 유지’ 상태에 관한 “Reliable과 Unreliable RPC 선택 기준” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

18강. Reliable과 Unreliable RPC 선택 기준 미완료 상태