내일배움캠프 77일차 - 언리얼 엔진 C++ 멀티플레이어: Property Replication

Replication

생성된 액터의 정보를 네트워크 내 다른 클라이언트에게 복제하는 작업을 말한다.

서버-클라이언트 모델 기준 서버→클라이언트복제되는 것이 기본 규칙이다.

레플리케이션하는 방법에는 두 가지가 있다.

1) RPC (Remote Procedure Call)

2) Property Replication

프로퍼티 레플리케이션항상 AuthorityProxy 방향으로만 가능하다.

Property Replication

액터의 모든 속성의 변경된 값모든 클라이언트에게 복제하는 것은 비효율적이다.

우리가 원하는 속성만다른 클라이언트에게 복제하는 것을 프로퍼티 레플리케이션이라고 한다.

프로퍼티 레플리케이션 설정 방법

1) 액터의 bReplicates 속성을 true로 설정한다.

2) 네트워크로 복제할 액터의 속성을 키워드로 지정
 - UPROPERTY(Replicated)

3) GetLifetimeReplicatedProps() 함수에 네트워크로 복제할 속성을 추가한다.
 - #include "Net/UnrealNetwork.h" 헤더 추가한다.
 - DOREPLIFETIME() 매크로를 사용해 복제할 속성을 명시한다.



프로퍼티 레플리케이션 가능여부

1) 액터가 클라이언트에 존재할 때, 클라이언트서버프로퍼티 레플리케이션이 가능한가?


정답: 불가능
 - 프로퍼티 레플리케이션서버클라이언트로의 단방향성만을 가짐. 서버에 액터가 없어서 불가능.

2) 액터가 서버에 존재할 때, 서버클라이언트프로퍼티 레플리케이션이 가능한가?

정답: 불가능
 - 서버의 액터가 클라이언트에도 복제가 되어있어야 함(bReplicates == true). 복제되어있지 않아서 불가능

3) 액터가 서버에 있고, 클라이언트로 복제가 되어있을 때 서버클라이언트프로퍼티 레플리케이션이 가능한가?

정답: 가능
 - 서버의 액터가 클라이언트에 복제되어있음(bReplicates == true)

댓글

이 블로그의 인기 게시물

내일배움캠프 사전캠프 - 사전캠프설 연휴 커피 파밍 이벤트 작품 [ EXTREMITY ]

내일배움캠프 29일차 - 커리어데이 2일차 : 클라이언트 프로그래머로서 포트폴리오, 입사준비팁