온라인 서브시스템 Steam API를 통해 언리얼 엔진 4 애플리케이션을 Valve의 Steam 플랫폼에 출시하는 것이 가능합니다. Steam 모듈의 주 목적은 Steam 사용자들에게 매치메이킹이나 리더보드같은 피처 세트가 포함된 애플리케이션을 쉽게 배포할 수 있도록 하기 위함입니다.
추가적으로 Steam 모듈은 온라인 서브시스템으로 노출된 인터페이스를 다수 구현하여 Steamworks Software Development Kit(SDK)에 제공된 것을 대부분 지원합니다.
사용가능한 Steam 인터페이스는 아래와 같습니다.
- 매치메이킹
- 리더보드
- 업적
- 음성
- 유저 클라우드
- 공유 클라우드
- 외부 UI
위의 지원되는 인터페이스를 사용하여 애플리케이션에 피처 세트를 포함시킬 수 있습니다.
1. Steamworks 다운로드
Steamworks SDK 최신 버전을 다운로드하여 /YourUnrealEnginePath/Engine/Source/ThirdParty/Steamworks/Steam[Current Version]/sdk 위치로 복사해줘야 합니다.
그런 다음 "Plugins\Online\OnlineSubsystemSteam\Source\Private\"에 위치한 "OnlineSubsystemSteamPrivatePCH.h" 파일을 엽니다.
#define STEAM_SDK_ROOT_PATH TEXT("Binaries/ThirdParty/Steamworks")
"OnlineSubsystemSteamPrivatePCH.h" 파일에서 Steamworks SDK 루트 위치를 정의하는 코드를 찾을 수 있는데,
#define STEAM_SDK_VER TEXT("Steam[Current Version]")
해당 코드를 위 예제 코드처럼 변경해주시면 됩니다.
2. 애플리케이션 세팅 환경설정
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
우선 애플리케이션의 DefaultEngine.ini 파일에 위와 같은 세팅을 추가합니다.
[OnlineSubsystem]
DefaultPlatformService=Steam
그리고 나서 언리얼 엔진 4가 온라인 서브시스템 Steam을 사용하도록 하려면, 위와 같은 세팅도 추가해줍니다.
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
애플리케이션에 온라인 서브시스템 Steam을 사용할 것이라 알렸으니, OnlineSubsystemSteam 모듈 환경설정은 위와 같은 세팅을 추가하면 됩니다.
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
마지막으로, 애플리케이션 연결을 위한 넷 드라이버에 Steam 클래스를 지정해주면 끝납니다.
최종 세팅
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
[OnlineSubsystem]
DefaultPlatformService=Steam
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
'언리얼 C++ 프로그래밍' 카테고리의 다른 글
[언리얼 C++] 게임 스테이트 (0) | 2021.08.19 |
---|---|
[언리얼 C++] 컨텐츠 애셋 유형 - 메시 (0) | 2021.08.18 |
[언리얼 C++] 게임플레이 프레임워크 (0) | 2021.08.16 |
[언리얼 C++] 게임 저장하기 (0) | 2021.08.15 |
[언리얼 C++] 온라인 서브시스템 데이터 타입 (0) | 2021.08.14 |