Replication System

언리얼 거토
|2025. 3. 13. 21:10

3. Replication Systems (레플리케이션 시스템)

UE의 세 가지 레플리케이션 시스템:

  1. Generic Replication System (기본 복제 시스템)
  2. Replication Graph (대규모 네트워크 환경 최적화)
  3. Iris Replication System (최신 개선 시스템)

3-1. Generic Replication System (기본 동기화 시스템)

  • UE의 기본 네트워크 복제 시스템으로, 대부분의 문서가 이 시스템을 기준으로 작성됨.
  • Actor, 속성, RPC 복제를 지원.

🔹 주요 기능

기능 설명
Dormancy 특정 Actor가 클라이언트에 대한 복제 목록에서 제외되도록 설정 가능.
Priority 네트워크 대역폭이 제한될 경우, 어떤 Actor가 우선적으로 복제될지 결정.
Relevancy 특정 클라이언트에서 Actor가 중요하지 않을 경우 복제 제외 가능.

3-2. Replication Graph (대규모 동기화 시스템)

  • 많은 수의 Actor를 복제해야 하는 경우를 위한 확장 가능한 복제 시스템.
  • 복제할 Actor를 그룹화하여 네트워크 부하를 최적화함.
  • 예: 대규모 오픈월드 게임에서 사용.

3-3. Iris Replication System (최신 개선 시스템)

  • UE의 최신 네트워크 복제 시스템으로, 기존 복제 시스템을 보완하며 성능을 향상.
  • Generic Replication System과 함께 동작하지만, 일부 기능을 개선함.
  • 새로운 기능 제공 (예: 더 세밀한 복제 필터링, 동적 우선순위 설정).

🔹 주요 기능

기능 설명
Filtering 특정 클라이언트에 대해서만 Actor 복제 가능 (더 정밀한 네트워크 제어).
Prioritization Actor의 중요도를 동적으로 변경 가능하여 최적화 가능.

 

5. 네트워크 최적화 팁

네트워크 게임의 성능을 향상시키려면 다음과 같은 팁을 따르는 것이 좋습니다.

  • RPC 최소화: 가능한 RepNotify를 사용하고, RPC 호출 횟수를 줄입니다.
  • 멀티캐스트 RPC 절제: 네트워크 부하를 줄이기 위해 최소한으로 사용합니다.
  • 서버 전용 로직 구분: 불필요한 서버 RPC 대신 클라이언트가 실행할 필요가 없는 로직을 따로 처리합니다.
  • RPC 입력 제어: 플레이어가 빠르게 버튼을 눌러 서버를 과부하시키지 않도록 제한합니다.
  • 비신뢰성 RPC(Unreliable RPC) 사용: 자주 호출되는 RPC는 Unreliable로 설정해 네트워크 트래픽을 줄입니다.
  • 네트워크 역할(Role) 확인: HasAuthority() 또는 IsLocallyControlled()를 사용해 코드 실행 위치를 필터링합니다.
  • 네트워크 휴면 상태(Dormancy) 활용: 자주 변하지 않는 액터는 Dormant 상태로 두어 네트워크 사용량을 줄입니다.

6. 네트워크 디버깅과 테스트

멀티플레이어 게임의 복잡성을 고려하면, 디버깅과 테스트가 매우 중요합니다. 언리얼 엔진은 여러 가지 네트워크 디버깅 도구를 제공합니다.

  • Net Profiler: 네트워크 트래픽을 분석하는 도구.
  • Stat Net 명령어: 네트워크 성능을 모니터링.
  • LogNet: 네트워크 관련 로그를 출력하여 문제를 진단.
  • PIE(Play In Editor)에서 분할 실행: 클라이언트와 서버를 동시에 실행하여 테스트 가능.