Replication
네트워크 세션에서 서버가 확정한 게임 상태를 클라이언트와 동기화하는 프로세스
- 서버는 월드 상태에 대한 최종 결정 권한(authority)을 가짐
- 클라이언트는 서버에 상태 변경을 요청한 뒤 서버가 확정한 상태를 받아(Replication) 재현(Simulation)
- 동기화는 월드 구성요소인 Actor 단위로 진행
- 모든 Replication은 서버상태를 클라이언트에 복제하는 단방향으로 발생
Replication의 종류
Actor는 Replicated 여부와 Replication 할 옵션을 다음과 같이 설정 가능
- Creation and Destruction: Actor가 서버에 생성 및 파괴될 때 클라이언트에도 생성 및 파괴.
- Movement Replication: Actor의 위치, 회전, 속도를 등 이동 관련 데이터를 Replication 함.
- Variable Replication: Actor에서 Replicated된 변수를 Replication 함.
- Component Replication: Actor에서 Replicated된 Component를 Replication 함.
Actor의 네트워크 역할 및 권한
Actor 는 네트워크 세션에서 최종 상태를 결정할 권한을 갖거나, 권한 있는 Actor의 상태를 복제받은 대리자(Proxy) 역할을 가짐.
| 역할 | 설명 |
| None | 네트워크에서 아무런 역할을 하지 않으며 복제되지 않음 |
| Authority | 서버에 존재하며 최종 상태를 결정 하고, 클라이언트의 프록시에게 상태를 복제(Replication) |
| Simulated Proxy | 권한 있는 Actor로 부터 상태를 복제(Replication) 받는 프록시. |
| Autonomous Proxy | 플레이어 입력을 기반으로 서버에 상태 변경을 요청할 수 있고, 권한 있는 Actor로 부터 보정을 수신 하는 프록시 |