This document describes the environment and initial setting to enable Unreal Gamebase SDK.
[Note]
Support Versions for Unreal
- UE 4.27~UE 5.7
- To get support for another 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_ANDROID ■ UNREAL_IOS ■ 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",
}
);

Processing the authentication and payment for the Google Play service requires Distribution settings. To find out more, see the following document.
When using Sign in with Apple, enter the Application ID of GPGS by adding the following to the /Config/Android/AndroidEngine.ini file in the project.
[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings]
GamesAppID=
<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.
!ImportantIf you ignore this process, the following guide link does not properly work and the Gamebase SDK for Unreal will become unavailable.

AdditionalPlistData.FacebookAppId, FacebookClientToken, FacebookDisplayNameGoogleClientId, GoogleReservedClientIdWeiboAppKeyTo 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:

[Caution]
The NHNWebView plugin and the Web Browser plugin cannot be used concurrently, and if both are enabled, an error will occur at build time.
[OnlineSubsystemSteam]
bEnabled=True
[Caution]
When using Steamworks alone without the Online Subsystem Steam, Gamebase will only get the credentials for using Steamworks inside Gamebase and will not go through the Steamworks SDK process. When applying the Steamworks SDK directly, you need to implement your own processing for required processes like initialization, updates, and shutdowns.
If the Online Subsystem EOS plugin is enabled and OnlineSubsystemEOS.bEnabled is set to true in Engine.ini, the system will consider that Online Subsystem EOS is being used.
[OnlineSubsystemEOS]
bEnabled=True
The EOS SDK uses the module located at Engine/Source/ThirdParty/EOSSDK within the engine path.
To support PersistentAuth type among Login Credential Type in Online Subsystem EOS, code modification is required in UE 4.27.
FUserManagerEOS::Login method. You need to add code to support PersistentAuth login in that section.else if (AccountCredentials.Type == TEXT("persistentauth"))
{
// Use locally stored token managed by EOSSDK keyring to attempt login.
Credentials.Type = EOS_ELoginCredentialType::EOS_LCT_PersistentAuth;
Credentials.Id = nullptr;
Credentials.Token = nullptr;
}
A build error occurs when using Online Subsystem EOS with Unreal Engine 4.27, so modifications are required.
A build error occurs because including the
OnlineSubsystemEOS.hheader to obtain the EOS SDK handle causes issues. Therefore, it is necessary to move the header file from the Private folder to the Public folder within the OnlineSubsystemEOS plugin. (Note: Inquiry regarding EOS error) - SocketSubsystemEOS.h - EOSSettings.h - EOSHelpers.h - [Platform]/[Platform]EOSHelpers.h * If Online Subsystem EOS is not used, you must initialize EOS using the EOSSDK module and configure the platform handle for the EOS SDK. * Gamebase only calls the necessary functions based on Epic Games authentication and store settings, so the required EOS SDK lifecycle must be managed directly in the game. * Add a module for setting platform handles
PrivateDependencyModuleNames.AddRange(
new[]
{
"GamebaseSharedEOS"
}
);
#include "GamebaseSharedEOS.h"
void USample::SetEosPlatformHandle(UGameInstance* GameInstance, EOS_HPlatform PlatformHandle)
{
if (const auto GamebaseSharedEOS = UGameInstance::GetSubsystem<UGamebaseSharedEOS>(GameInstance))
{
// After initializing the EOS SDK, retrieve the platform handle and pass it to the Gamebase SDK
GamebaseSharedEOS->SetPlatformHandle(PlatformHandle);
}
}
When supporting Android, you must register the corresponding values in the EOSSDK_strings.xml file within the EOSSDK module in the engine, referring to the EOS SDK Guide in order to receive login responses.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- EOS SDK requires the Client ID to be in lowercase. -->
<string name="eos_login_protocol_scheme">eos.yourclientidhere</string>
</resources>
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