Make Unreal REAL.
article thumbnail
Unreal Engine 5 C++ Multiplayer Shooter

 

아는 사람 몇 명과 즐기는 LAN 연결이 아닌, 불특정 다수와 인터넷을 통해 멀티 플레이를 하기 위해서는 다음과 같은 방법을 사용해야 한다.

1. Dedicated(전용) 서버를 구동해 모든 플레이어가 같은 서버에 접속하도록 한다.
2. 서버는 플레이어 목록을 관리하고 Listen 서버로 동작할 플레이어의 IP 주소를 알려준다.

 

두 방법 모두 결국에는 인터넷에서 동작하는 하나의 서버가 필요하다.

  • Steam
  • Xbox Live
  • Facebook Gaming
  • ...

 

각 플랫폼 서비스는 다음 기능들을 지원한다.

  • 친구 관리
  • 업적 관리
  • 세션 매칭
  • ...

 

 

언리얼 엔진의 온라인 서브 시스템은 이들을 이용하기 위한 인터페이스를 제공한다.

 

온라인 서브시스템은 이들 서비스와 멀티 플랫폼에 대해 이미 추상화되어 있다.

  • 사용할 서비스 제공자만 설정해주면, 서로 다른 코드를 작성하지 않아도 된다.
  • 같은 코드 베이스로 각 서비스의 기능을 사용할 수 있다.

 

Engine.ini 파일에서 서비스 프로바이더를 설정할 수 있다.

[OnlineSubsystem]
DefaultPlatformService=<Platform>


C++ 코드에서 다음과 같이 온라인 서브 시스템 인터페이스를 가져올 수 있다.

IOnlineSubsystem* IOnlineSubsystem::Get()

 


세션

서버에서 하나의 게임 실행을 의미하는 객체로 볼 수 있다.

 

세션 인터페이스 함수들에는 다음과 같은 것들이 있다.

  • 세션 생성: CreateSession()
  • 세션 찾기: FindSession()
  • 세션 참가: JoinSession()
  • 세션 시작: StartSession()
  • 세션 파괴: DestroySession()

 

  1. 서버는 세션을 생성하고 플레이어들을 기다린다.
  2. 세션에 플레이어를 등록하다가 세션을 시작하면 게임이 시작된다.
  3. 게임이 종료되면 세션을 종료하고 플레이어들을 등록 해제한다.
  4. 그리고는 세션을 파괴하거나 게임의 매치 방식 등을 변경해 새로운 게임을 열 수 있다.
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그