언리얼5

[UE5 Multiplayer Shooting-7] Network Role에 관해

TIN9 2023. 8. 1.
반응형

언리얼 엔진 Network Role은 게임 오브젝트가 네트워크에서 어떤 동작을 할 수 있는지를 결정하는 방식입니다

 

ENetRole

  • ROLE_None : 객체가 네트워크 통신에 참여하지 않음을 의미합니다.

  • ROLE_SimulatedProxy : 서버에서 상태 업데이트를 받아들이는 객체에 부여됩니다. 이 객체들은 상태 업데이트를 받아들이는 것은 가능하지만, 자신의 상태를 변경하거나 네트워크 상태를 변경하지는 않습니다.

  • ROLE_AutonomousProxy : 서버에 상태 변경을 보고하고, 자신의 상태를 직접 제어할 수 있는 객체에 부여됩니다. 일반적으로 플레이어가 직접 제어하는 캐릭터나 게임 오브젝트가 이 역할을 가집니다.

  • ROLE_Authority : 객체가 네트워크 상태를 결정하고, 모든 클라이언트에 상태 변경을 Broadcast할 수 있음을 의미합니다. 일반적으로 이 역할은 서버에서 실행되는 객체에 부여됩니다.

 

Local Role

서버

클라

Remote Role

서버

클라

 

 

  • Local Role에서의 Authority: 객체가 Local Role로서 Authority 역할을 가지고 있다는 것은 해당 시스템(클라이언트 또는 서버)이 해당 객체의 상태를 결정하고 제어한다는 것을 의미합니다. 일반적으로 서버는 게임의 상태와 게임 내의 모든 네트워크 객체를 제어하기 때문에, 서버에서는 대부분의 객체가 Local Role로서 Authority 역할을 가지게 됩니다. 서버는 이러한 권한을 가지고 게임의 상태 변경을 클라이언트에게 전달하고, 클라이언트의 상태 업데이트를 처리하며, 게임 규칙을 실행하고, AI를 제어하게 됩니다.
  • Remote Role에서의 Authority: 객체가 Remote Role로서 Authority 역할을 가지고 있다는 것은 해당 객체의 상태가 원격 시스템(즉, 다른 클라이언트 또는 서버)에 의해 결정되고 제어된다는 것을 의미합니다. 클라이언트가 서버에게서 상태 업데이트를 받을 때, 클라이언트는 받은 상태 업데이트를 바탕으로 해당 객체의 동작을 시뮬레이션합니다. 이 경우, 클라이언트에서 해당 객체는 Remote Role로서 Authority 역할을 가지게 됩니다. 다시 말해, 클라이언트는 서버로부터 받은 상태 업데이트에 따라 해당 객체의 상태를 갱신하게 됩니다.

 

 

반응형

댓글