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

 

Online Subsystem Steam 플러그인을 활성화하고 에디터를 재시작한다.

 

 

빌드 설정에 OnlineSubsystem과 OnlineSubsystemSteam 모듈을 추가하고 컴파일한다.

  • OnlineSubsystem은 온라인 서브 시스템을 사용하기 위한 것이고, OnlineSubsystemSteam은 온라인 서브 시스템을 스팀에 연결해 사용하기 위한 것이다.

 

 

공식 문서를 참고하여 DefaultEngine.ini 파일 하단에 다음 내용을 추가한다.

  • bEnabled는 온라인 서브 시스템 활성화 여부이다.
  • SteamDevAppId는 원래 스팀에서 별도로 할당받아야하지만, 등록 없이 연결 테스트 용으로 사용할 수 있도록 스팀에서 480을 공식적으로 제공한다.
  • 나중에 세션 생성에 실패하는 등 오류가 발생하면, 주석 처리되어 있는 bInitServerOnClient는 주석을 해제해준다.
    5.0.3 버전에서는 주석 되어 있는 상태에서 진행했다.

 

 

Online Subsystem Steam

An overview of Online Subsystem Steam, including how to set up your project for distribution on Valve's Steam platform.

docs.unrealengine.com

 

Binaries, Intermediate, Saved 폴더를 삭제한 후 uproject 파일을 우클릭해 VS 파일을 재생성한다.

 

그리고 언리얼 에디터를 켜면 프롬프트가 뜨는데 모듈을 다시 빌드해준다.

 

 

이제 Steam에 온라인 서브시스템을 통해 연결할 수 있는지 테스트하기 위해 캐릭터 클래스에 임의로 작성한다.

 

세션 인터페이스를 저장하기 위해서는 IOnlineSessionPtr 타입의 변수를 사용한다.

  • 이 타입은 TSharedPtr 스마트 포인터 타입이라서 클래스 전방 선언을 사용할 수 없다.

 

 

헤더를 포함하지 않고 아래와 같이 다시 쪼개어 클래스 전방 선언을 해줄 수 있다.

 

 

필요한 헤더를 포함한다.

 

 

IOnlineSubsystem::Get() 정적 함수를 통해 온라인 서브 시스템 인터페이스를 가져올 수 있다.

 

IOnlineSubsystem::GetSessionInterface() 함수를 통해 세션 인터페이스를 가져올 수 있다.

 

IOnlineSubsystem::GetSubsystemName() 함수를 통해 현재 연결된 온라인 서브 시스템의 이름을 가져올 수 있다.

 

GEngine->AddOnScreenDebugMessage() 함수는 블루프린트의 Print String 노드와 같은 기능을 한다.

 

 

이제 연결을 테스트해본다.

 

온라인 서브시스템을 Steam으로 사용하기 위해서는 Steam 데스크톱 앱에 로그인하여 실행 중인 상태여야 한다.

 

 

Standalone, Listen Server, Client 모드 어떤 것으로 실행시켜도 NULL이라는 온라인 서브 시스템에 연결되었다고 뜬다.

 

NULL은 온라인 서브 시스템 연결에 실패했다는 뜻이 아니다.

 

언리얼 엔진에는 NULL이라는 온라인 서브 시스템이 존재하고 LAN 연결로 연결되었다는 뜻이다.

 

 

Steam에 연결을 테스트하기 위해서는 프로젝트를 패키징한 후에 빌드된 파일을 실행시켜야 한다.

 

'Unreal Engine > UE5 C++ Multiplayer Shooter' 카테고리의 다른 글

세션 검색  (0) 2023.03.25
세션 생성  (0) 2023.03.25
온라인 서브시스템(Online Subsystem)  (0) 2023.03.24
프로젝트를 패키징하는 방법  (0) 2023.03.23
C++로 멀티 플레이 테스트하는 방법  (0) 2023.03.23
profile

Make Unreal REAL.

@diesuki4

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

검색 태그