Unreal Engine Networking - 2

Taegang Yun·2023년 7월 31일

언리얼에서는 멀티플레이가 기본으로 제공된다.
그래서 항상 멀티플레이를 염두로 두고 게임을 제작하는 것이 좋다.

멀티플레이어 게임에서는 동일한 게임의 여러 인스턴스가 나란히 실행된다.
동일한 시스템의 다른 프로세스, 인터넷을 통해 서로 다른 대륙의 플레이어가 될 수도 있다.
다양한 게임 인스턴스는 서로 대화하고 공유된 세계에 대한 일관된 그림을 구축해야 한다.

Unreal의 네트워크 시스템에서는 서버에서 무엇인가 변경되고, 필요에 따라 Replication이라는 방법으로 클라이언트로 전파된다.

Unreal Replicated 시스템은 아주 유용한 기능이다.

먼저 Net Mode에 대해 이야기해보자.

Net모드는 World의 속성이며

ENetMode UWorld::GetNetMode() const;
  • NM_Standalone
  • NM_DedicatedServer
  • NM_ListenServer
  • NM_Client

중에 하나다. 이 들은 세 가지 질문으로 구분지을 수 있는데,

  1. 게임을 플레이 할 수 있습니까?
    게임 인스턴스에 로컬 플레이어가 있고, 해당 플레이어의 입력을 처리하고 세계를 뷰표트로 렌더링하고 있습니까?

  2. 우리는 서버입니까?
    게임 인스턴스에 게임 모드 액터가 포함된 World의 정식 사본이 있습니까?

  3. 클라이언트에게 열려있습니까?
    플레이어가 클라이언트로 참여하여 플레이할 수 있습니까?

  • NM_Standalone O O X
  • NM_DedicatedServer X O O
  • NM_ListenServer O O O
  • NM_Client O X X

각 세 질문에 대해 각 NetMode의 특징은 이렇다.

Unreal 게임이 실행될 수 있는 세 가지 네트워킹 시나리오는 다음과 같다.

  • Single Player
  • Multiplayer (Listen)
  • Multiplayer (Dedicated)

Single Player의 경우

Game.exe
NM_Standalone

Multiplayer (Listen) 의 경우

Game.exe
NM_ListenServer

Game.exe
NM_Client

Game.exe
NM_Client

Multiplayer (Dedicated) 의 경우

GameServer.exe
NM_DedicatedServer

Game.exe
NM_Client

Game.exe
NM_Client

profile
언젠간 전문가가 되겠지

0개의 댓글