- 개요
Replication은 언리얼 엔진에서 네트워크 통신을 위한 서버 - 클라이언트간의 데이터를 동기화하는 방법입니다.
오직 Actor를 대상으로 동작하며 서버에서 클라이언트로만 수행하는 단방향의 특성을 지니고 있습니다.
1) Replication을 위한 ActorChannel
1 - 1) NetworkChannl의 ActorChannel

언리얼 엔진에서 클라이언트와 서버가 연결되면 Player마다 NetworkChannel을 생성합니다.
NetworkChannel 내부에는 여러개의 SubChannel이 존재하는데, 다양한 목적으로 사용할 수 있습니다.
이중에서 ActorChannel은 서버와 클라이언트가 Actor를 대상으로 정보를 교환하는 용도로 사용합니다.
따라서 Replication 역시 ActorChannel을 통해 동작합니다.
1 - 2) Actor의 Relevancy

하나의 Actor에 대한 ActorChannel이 생성되면, 인접한 다른 Actor에 대한 ActorChannel도 같이 생성합니다.
이때 Actor에 대해 다른 Actor들이 얼마나 인접해있는지 판단하는 기준이 바로 Relevancy입니다.
Relevancy는 Actor의 관심범위를 의미하는데, 다른 용어로 AOI(Area of Interests)라고 표현할 수 있습니다.
그 안에 다른 Actor가 들어오면 해당 Actor에 대한 ActorChannel이 로컬의 NetworkChannel에 추가됩니다.
인접한 Actor가 추가되는 경우의 동작은 서버와 클라이언트 모두에서 동일하게 수행합니다.
하지만 인접한 Actor가 떠나는 경우의 동작은 서버와 클라이언트에서 다르게 수행합니다.
- 클라이언트의 NetworkChannel : 해당 Actor의 ActorChannel 제거
- 서버의 NetworkChannel : 해당 Actor의 ActorChannel 캐싱하여 재사용
2) GameFramework 클래스별 Replication의 동작
기본적으로 게임을 동작시키는 GameFramework의 클래스마다 Replication은 다르게 동작합니다.
정리하면 각각 다음과 같습니다.
- GameMode : GameMode는 서버에만 존재하는 개념, 따라서 Replication되지 않음
- GameState : 게임의 상태를 관리하는 클래스이므로 같은 공간의 모든 클라이언트에게 Replicate함
- PlayerController : 해당 PlayerController를 소유하고 있는 클라이언트에게만 Replicate함
- PlayerState : 플레이어의 상태를 관리하는 클래스이므로 같은 공간의 모든 클라이언트에게 Replicate함
- Pawn : 해당 Pawn의 Relevancy안에 존재하는 Pawn을 소유한 클라이언트들에게만 Replicate함
'언리얼 엔진 > 언리얼 엔진 이모저모' 카테고리의 다른 글
| RPC 심화 (0) | 2025.09.25 |
|---|---|
| 소유권(Ownership) (0) | 2025.09.21 |
| RPC(Remote Procedure Call) (0) | 2025.09.21 |
| 플레이어 인덱스 (0) | 2025.09.18 |
| 서버와 클라이언트의 구분 방법 (0) | 2025.09.18 |