[UE/Network] Replication과 RPC

2025. 3. 24. 23:53·Unrael/Network

1. 개요

멀티플레이어 게임에서

클라이언트와 서버가 데이터를 주고 받기 위해 사용하는

복제 (Replication)과 원격 함수 호출(RPC)에 대해 살펴보자.

 

2. 복제 (Replication)

복제는 서버 -> 클라이언트 단방향으로 데이터를 동기화한다.

클라이언트에서 서버 방향으로는 데이터를 동기화할 수 없다.

 

복제는 Actor나 Property의 Replicates = true로 설정하면

해당 데이터가 변경되었을 때

언리얼 엔진에서 제공하는 기능을 통해 자동으로 Client들에게 보내지게 된다.

 

예를 들어 캐릭터의 위치, 체력, 문이 열렸는지 닫혔는지 등 데이터를 동기화하는데 적합하다.

 

3. 원격 함수 호출 (RPC)

RPC는 외부 인스턴스의 함수를 호출하는 것을 말한다.

  • 서버에서 클라이언트의 함수를 호출하는 것
  • 클라이언트에서 서버의 함수를 호출하는 것

RPC는 호출 방향에 따라 3가지 종류가 있다.

RPC 종류 UF 설명 방향
Server RPC UFUNCTION(Server) 클라이언트에서 서버의 함수를 호출 Client -> Server
Client RPC UFUNCTION(Client) 서버에서 클라이언트에서 함수를 호출 Server -> Client
Multicast RPC UFUNCTION(NetMulticast) 서버에서 모든 클라이언트 및 자기 자신(서버)의 함수를 호출 Server -> 모든 Client 및 Server

 

 

4. 복제와 RPC 차이

복제는 특정 데이터를 주기적으로 업데이트 해야할 때 사용하며

RPC는 특정 순간에 상대 인스턴스의 함수를 호출하여 로직을 처리할 때 사용된다.

 

예를 들어 FPS 게임에서 플레이어의 총알 갯수(지속적으로 변하는 값)는 복제로 전송하고

플레이어가 총을 쐈다는 행위는 RPC로 Server에 보내게 된다.

'Unrael > Network' 카테고리의 다른 글

[UE/Network] 멀티플레이 게임 - 네트워크 개념  (0) 2025.03.28
'Unrael/Network' 카테고리의 다른 글
  • [UE/Network] 멀티플레이 게임 - 네트워크 개념
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Animation
    게임동기화
    내일배움캠프
    액터
    AI
    Til
    tsoftobjectptr
    알고리즘
    퀘스트
    레벨디자인
    assetmanager
    사전캠프
    KPT회고
    gas
    DesignPattern
    디자인패턴
    소프트 레퍼런신
    Algorithm
    Implement
    actor
    unreal
    Design Pattern
    본캠프
    component
    하드 레퍼런싱
    unrealengine
    basic
    디자인 패턴
    GameplayEffect
    c++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[UE/Network] Replication과 RPC
상단으로

티스토리툴바