This document describes the environment and initial setting to enable Unreal Gamebase SDK.
[Note]
Support Versions for Unreal
- UE 4.26 ~ UE 5.0
- To get support for a lower version of Unreal, please contact Customer Center.
When unsupported Gamebase API is called on a selected platform, errors like below are returned as callback; if a callback is not available, warning logs show as output.
Platforms supported by each API can be categorized by the following icon:
API
Supported Platforms ■ UNREAL_IOS ■ UNREAL_ANDROID ■ UNREAL_WINDOWS
Plugins
in the project path and add NHN Cloud Folder in the downloaded SDK.From the Unreal editor, display the Settings > Plugins
window, and find and enable Project > NHN Cloud > Gamebase Plugin
.
PrivateDependencyModuleNames.AddRange(
new[]
{
"Gamebase",
"GamebaseInterface"
}
);
Processing the authentication and payment for the Google Play service requires Distribution settings. To find out more, see the following document.
<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>
To use the Gamebase SDK for Unreal, UE4 Github source code
has to be used, and the Github account must be linked after joining the Epic games in order to expose the UnrealEngine repository.
See below for relevant guides.
!Important
If you ignore this process, the following guide link does not properly work and the Gamebase SDK for Unreal will become unavailable.
To compile frameworks developed in swift from the Gamebase Unreal SDK and external authentication SDKs, you need to add the code below in the Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSToolChain.cs file.
// need to tell where to load Framework dylibs
Result += " -rpath /usr/lib/swift"; // Additional code
Result += " -rpath @executable_path/Frameworks";
When using Sign in with Apple, add the following to the /Config/IOS/IOSEngine.ini file in your project
[/Script/IOSRuntimeSettings.IOSRuntimeSettings]
bEnableSignInWithAppleSupport=True
To receive the Foreground push notification, the code shown below must be removed from the Engine/Source/Runtime/ApplicationCore/Private/IOS/IOSAppDelegate.cpp file, or
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
{
// Received notification while app is in the foreground
HandleReceivedNotification(notification);
completionHandler(UNNotificationPresentationOptionNone);
}
modify it as follows:
// AS-IS
completionHandler(UNNotificationPresentationOptionNone);
// TO-BE
completionHandler(UNNotificationPresentationOptionAlert);
Cannot use the Rich Push Notification function due to the following issues:
If a warning message from iOS SDK is converted as error for Unreal build, leading into failure in the buildup, handle the clang compile option code of the following file as footnotes: Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSToolChain.cs
// Result += " -Wall -Werror";
There is an issue where the device using the architecture cannot get the memory address because the PLCrashReporter used by UE4 does not support the arm64e
architecture.
Game developers using the crash analysis of the NHN Cloud Log & Crash Search must refer to the following guide to modify the UE4 internal PLCrashReporter:
Engine\Source\ThirdParty\EOSSDK\SDK
.
If you're using the Online Subsystem EOS included in the engine, you can set it up like the code below.
#include "OnlineSubsystemEOS.h"
#include "IEOSSDKManager.h"
#include "GamebaseStandalonePurchaseEpicAdapterModule.h"
void UGamebasePurchaseEpicSupportTestCase::SetEosPlatformInstance()
{
IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld());
if (const FOnlineSubsystemEOS* EosSubsystem = static_cast<FOnlineSubsystemEOS*>(Subsystem))
{
EOS_HPlatform PlatformHandle = *EosSubsystem->EOSPlatformHandle;
FGamebaseStandalonePurchaseEpicAdapterModule::SetEosPlatformInstance(*Handle);
}
}
Including the
OnlineSubsystemEOS.h
header causes a build error, so you must move the header file from the OnlineSubsystemEOS plugin's private folder to the public folder. (Reference: EOS Error-related Inquiry) - SocketSubsystemEOS.h - EOSSettings.h - EOSHelpers.h - [Platform]/[Platform]EOSHelpers.h
APIs that are no longer supported by Gamebase are to be deprecated. Once deprecated, APIs might be deleted without previous notice if they fulfill the following conditions:
Updated more than 5 times for a minor version
At least 5-month old