Gamebase Unreal SDK 사용 환경 및 초기 설정에 대해 설명합니다.
[참고]
Unreal 지원 버전
- UE 4.27~UE 5.4
- 다른 버전의 지원이 필요하면 고객 센터로 문의해 주시기 바랍니다.
선택한 플랫폼에서 지원하지 않는 Gamebase API를 호출할 때는 아래와 같은 오류가 콜백으로 반환되며 콜백이 없는 경우에는 Warning 로그가 출력됩니다.
API별 지원하는 플랫폼은 아래와 같은 아이콘으로 구분합니다.
API
Supported Platforms ■ UNREAL_ANDROID ■ UNREAL_IOS ■ UNREAL_WINDOWS
Unreal 에디터에서 Settings > Plugins 창을 띄우고, Project > NHN Cloud > Gamebase Plugin 플러그인을 찾아 활성화합니다.
PrivateDependencyModuleNames.AddRange(
new[]
{
"Gamebase"
}
);
Google Play 서비스에 인증과 결제를 진행하려면 Distribution 설정이 필요합니다. 상세한 내용은 아래 문서를 참고하시기 바랍니다.
<gradleProperties>
<insert>
android.useAndroidX=true
android.enableJetifier=true
</insert>
</gradleProperties>
<buildGradleAdditions>
<insert>
android {
defaultConfig {
multiDexEnabled true
}
}
</insert>
</buildGradleAdditions>
<androidManifestUpdates>
<addAttribute tag="application" name="android:name" value="androidx.multidex.MultiDexApplication"/>
</androidManifestUpdates>
Gamebase SDK for Unreal을 사용하려면 UE4 Github 소스 코드
를 사용해야 하며, Epic games 회원 가입 후 Github 계정을 연결해야 UnrealEngine repository가 노출됩니다.
관련 가이드는 아래 문서를 참고하시기 바랍니다.
!중요
이 과정을 무시할 경우, 아래 가이드 링크가 정상 작동하지 않거나 Gamebase SDK for Unreal 사용이 불가합니다.
Gamebase Unreal SDK 및 외부 인증 SDK에서 swift로 개발된 프레임워크를 컴파일하려면 Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSToolChain.cs 파일에서 아래 코드를 추가해야 합니다.
// need to tell where to load Framework dylibs
Result += " -rpath /usr/lib/swift"; // 추가 코드
Result += " -rpath @executable_path/Frameworks";
Sign in with Apple 사용 시 프로젝트에서 /Config/IOS/IOSEngine.ini 파일에 아래 내용을 추가합니다.
[/Script/IOSRuntimeSettings.IOSRuntimeSettings]
bEnableSignInWithAppleSupport=True
Foreground 푸시 알림을 받기 위해서는 Engine/Source/Runtime/ApplicationCore/Private/IOS/IOSAppDelegate.cpp 파일에서 아래 코드를 제거하거나,
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
{
// Received notification while app is in the foreground
HandleReceivedNotification(notification);
completionHandler(UNNotificationPresentationOptionNone);
}
다음과 같이 수정해야 합니다.
// AS-IS
completionHandler(UNNotificationPresentationOptionNone);
// TO-BE
completionHandler(UNNotificationPresentationOptionAlert);
다음과 같은 이슈로 인해 Rich Push Notification 기능을 사용할 수 없습니다.
iOS SDK에서 발생하는 Warning 메시지가 Unreal 빌드 시 오류로 변환되어 빌드에 실패하는 현상이 발생하면 Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSToolChain.cs 파일에서 clang 컴파일 옵션 코드를 주석 처리하십시오.
// Result += " -Wall -Werror";
UE4에서 사용 중인 PLCrashReporter가 arm64e
architecture를 지원하지 않아, 해당 architecture를 사용하는 디바이스에서 메모리 주솟값을 획득하지 못하는 이슈가 있습니다.
NHN Cloud Log & Crash Search에서 크래시 분석을 사용하는 게임 개발사는 다음 가이드를 참고하여 UE4 내부 PLCrashReporter를 수정해야 합니다.
[주의] NHNWebView 플러그인과 Web Browser Widget 플러그인은 동시의 사용이 불가능하며, 두 플러그인이 모두 활성화 되어 있는 경우 빌드 시 오류가 발생합니다.
Gamebase에서 사용하는 EOS의 최소 버전은 1.15.5으로 1.16.3 버전까지 확인이 완료되었습니다.
Online Subsystem EOS를 사용하지 않고 EOSSDK 모듈을 이용해 따로 EOS 초기화를 진행한 경우 EOS의 핸들을 설정해야 합니다.
#include "GamebaseStandalonePurchaseEpicAdapterModule.h"
void USample::SetEosPlatformHandle(EOS_HPlatform PlatformHandle)
{
// EOS SDK 초기화 후 핸들을 가져와 Gamebase SDK로 전달
FGamebaseStandalonePurchaseEpicAdapterModule::SetEOSPlatformHandle(PlatformHandle);
}
UE 4.27에서 Online Subsystem EOS를 사용 시 빌드 오류가 발생하므로 수정이 필요합니다.
EOS SDK의 핸들을 가져오기 위해
OnlineSubsystemEOS.h
헤더를 포함하게 되어 빌드 오류가 발생하므로 OnlineSubsystemEOS 플러그인의 Private 폴더 내 헤더 파일을 Public 폴더로 이동해 주는 과정이 필요합니다. (참고: EOS 오류 관련 문의) - SocketSubsystemEOS.h - EOSSettings.h - EOSHelpers.h - [Platform]/[Platform]EOSHelpers.h
[OnlineSubsystemSteam]
bEnabled=true
[주의] Online Subsystem Steam 없이 Steamworks만 사용 시 Gamebase 내부에서 Steamworks를 사용한 인증 정보를 받아 오는 작업만 진행하며 Steamworks SDK 프로세스를 진행하지 않습니다. Steamworks SDK를 직접 적용 시 초기화, 업데이트, 종료 등 필수적인 처리에 대해서는 직접 구현해야 합니다.
Gamebase에서 더 이상 지원하지 않는 API는 Deprecate 처리합니다. Deprecated된 API는 다음 조건 충족 시 사전 공지 없이 삭제될 수 있습니다.
5회 이상의 마이너 버전 업데이트
최소 5개월 경과