Gamebase Unreal SDKの使用環境および初期設定の説明を行います。
[参考]
Unrealサポートバージョン
- UE 4.27~UE 5.4
- 他のバージョンのサポートが必要な場合はサポートへお問い合わせください。
選択したプラットフォームでサポートしないGamebase APIを呼び出す時は、下記のエラーがコールバックで返り、コールバックがない場合はWarningログが出力されます。
各APIでサポートするプラットフォームは、下記のアイコンで区別します。
API
Supported Platforms ■ UNREAL_ANDROID ■ UNREAL_IOS ■ UNREAL_WINDOWS
Plugins
フォルダを作成し、ダウンロードしたSDK内部 NHNCloudフォルダを追加します。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が表示されます。
See below for relevant guides.
!重要
このプロセスを無視すると、以下のガイドリンクが正常に動作しなかったりGamebase SDK for Unrealを使用できません。
Path
Authentication
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
- (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を修正する必要があります。
Engine\Source\ThirdParty\EOSSDK\SDK
に該当バージョンをインストールしてアップグレードする必要があります。
エンジンに含まれているOnline Subsystem EOSを使用する場合、下記のコードのように設定できます。
#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);
}
}
OnlineSubsystemEOS.h
ヘッダーを含めるとビルドエラーが発生するので、OnlineSubsystemEOSプラグインのPrivateフォルダ内のHeaderファイルをPublicフォルダへ移動する必要があります。 (参考: EOSエラーに関するお問い合わせ) - SocketSubsystemEOS.h - EOSSettings.h - EOSHelpers.h - [Platform]/[Platform]EOSHelpers.h
[注意] Online Subsystem Steamを使用せずにSteamworksのみを使用する場合、Gamebase内部でSteamworksを使用した認証情報を受け取る作業のみを行い、Steamworks SDKプロセスは行われません。 Steamworks SDKを直接適用する場合、初期化、アップデート、終了などの必須的な処理については直接実装する必要があります。
GamebaseでサポートしないAPIはDeprecate処理します。 DeprecatedされたAPIは、次の条件を満たすと、事前告知を行わずに削除される場合があります。
5回以上のマイナーバージョンアップデート
5か月経過