LeeTaes 공부노트

[Unreal Engine 5] ENetRole 본문

Game Programming/UE_Multiplayer

[Unreal Engine 5] ENetRole

리태s 2024. 8. 6. 11:00
728x90
반응형

개요

ENetRole은 멀티플레이어 게임 개발에서 중요한 역할을 하는 개념입니다. 이 개념은 네트워크에서 각 플레이어나 오브젝트가 어떤 역할을 하는지를 정의하며, 주로 서버와 클라이언트 간의 역할을 구분하는 데 사용됩니다.

 

예를들어 플레이어 2명이 연결된 멀티플레이어 게임의 경우 다음과 같이 여러 버전의 캐릭터가 존재합니다.

 

1. Client Controlling the Pawn(내가 조종 가능한 Pawn)

2. Server(서버에 복사된 Pawn)

3. Client Not Controlling the Pawn(상대방이 조종하는 Pawn)

 

특별하게 서버에서만 처리해야 하는 로직들이 있으며, 이를 구별하기 위해 ENetRole이라는열거형 타입이 존재합니다.

ENetRole

ENetRole::ROLE_None

  • 객체가 네트워크에서 역할이 없는 상태로, 복제되지 않습니다.

ENetRole::ROLE_Authority

  • 객체가 네트워크 상에서 권한(authority)을 가지고 있는 상태로, 주로 서버가 이러한 역할을 가지게 됩니다.
  • 객체의 상태와 동작을 결정하는 주체가 됩니다.

ENetRole::ROLE_SimulatedProxy

  • 객체가 원격 클라이언트에서 시뮬레이션된 프록시임을 나타냅니다.
  • 즉, 다른 클라이언트의 원격 제어를 받는 액터라고 생각할 수 있습니다.

ENetRole::ROLE_AutonomousProxy

  • 객체가 로컬 플레이어가 제어하는 클라이언트에 의해 자율적으로 제어되고 있음을 나타냅니다.
  • 즉, 내가 직접 컨트롤이 가능한 액터입니다.

참고 자료

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/actor-role-and-remoterole?application_version=4.27

https://www.udemy.com/course/unreal-engine-5-cpp-multiplayer-shooter/?couponCode=KRLETSLEARNNOW

 

 

728x90
반응형