본문 바로가기

Unreal/언리얼 엔진 5로 개발하는 멀티플레이어 게임(Book)

[Unreal] 액터의 롤과 원격 롤 프로퍼티를 사용해 권한 제어

언리얼 엔진에는 액터를 복제할 때 중요한 정보를 반환하는 2개의 프로퍼티가 있다. 바로 롤(Role)과 원격 롤(Remote Role)이다. 이 두 프로퍼티는 액터의 제어 권한, 액터의 복제 여부 및 복제 방법에 대한 정보를 제공한다.

언리얼 엔진에서 네트워크 플레이 중에 액터는 다음 네 가지 역할 중 하나를 가질 수 있다.

  • ROLE_Authority: 실행 중인 인스턴스가 해당 액터에 대한 권한을 가진다.
  • ROLE_AutonomousProxy: 실행 중인 인스턴스가 해당 액터의 자율 프록시(autonomous proxy)다.
  • ROLE_SimulatedProxy: 실행 중인 인스턴스가 해당 액터의 로컬 시뮬레이티드 프록시(simulated proxy)다.
  • ROLE_None: 이 경우 해당 역할은 연관성이 없다.

Role 프로퍼티는 로컬 컴퓨터에서 액터의 역할을 지정하는 반면에 RemoteRole 프로퍼티는 원격 컴퓨터에서 액터의 역할을 지정한다.

 

예를 들어, Role이 ROLE_Authority로 설정되고 RemoteRloe이 ROLE_SimulatedProxy나 ROLE_AutonomousProxy로 설정되면 현재 게임 인스턴스는 이 액터를 원격 연결에 복제하는 일을 담당한다.

 

여기서 유의할 점은, 서버만이 연결된 클라이언트에 액터를 복제하며 클라이언트는 절대 서버에 액터를 복제하지 않는다는 것이다. 즉, 서버에서만 Role을 ROLE_Authority로 설정하고 RemoteRole은 ROLE_SimulatedProxy나 ROLE_AutonomousProxy로 설정할 수 있다.