AGS Game SDKをインストールする - 初期設定 - (Unreal Engine モジュール)
注釈:本資料はAI技術を用いて翻訳されています。
概要
Unreal Engine向けのAccelByte Gaming Services (AGS) Game Software Development Kit (SDK)は、AGSをゲームに統合します。AGS Game SDKは、ゲームのクライアントビルドとサーバービルドの両方で使用できます。
AccelByte Game SDKは3つの部分で構成されており、それぞれ独自のリポジトリを持っています。
- AGS Unreal Online Subsystem (OSS) GitHubリポジトリ
- AGS Unreal Game SDK GitHubリポジトリ
- AGS Network Utilities GitHubリポジトリ
AGS Unreal Online Subsystem (OSS)は、AGSと連携するための高レベルAPIとして機能し、ゲームへの統合をより迅速かつ簡単にします。Byte Warsのチュートリアルに沿って進めるには、AGS Unreal OSSを使用する必要があります。
AccelByte Unreal OSSは、UnrealのOnline Subsystemインターフェースを実装しています。Online Subsystemの詳細については、UnrealのOnline Subsystemドキュメントを参照してください。
AGS Unreal SDKとNetwork Utilitiesは、より低レベルなサポートAPIです。Byte Warsではこれらと直接やり取りすることはありませんが、これらが存在することを知っておくと役立ちます。Unreal SDKとNetwork Utilitiesの詳細については、以下を参照してください。
-
AccelByte Unreal SDK: ゲームクライアントとゲームサーバーがAGSにリクエストを送信するためのAPI群からなるライブラリです。
-
AccelByte Network Utilities: ピアツーピア(P2P)ネットワーキングのためにゲームクライアント間で通信するネットワーク機能からなるライブラリです。
プロジェクトのセットアップ
Byte Wars UnrealプロジェクトをAGS実装用に準備するために、完了する必要のあるいくつかのセットアップ作業があります。
オプション: tutorialmodulesブランチでセットアップをスキップする
初期プロジェクトのセットアップ要件を自動的に完了させたい場合は、前のチュートリアルでクローンしたローカルのByte Wars Unrealリポジトリでtutorialmodulesブランチに切り替えて、パブリックIAMクライアントのセットアップに直接進むことができます。
git switch -f tutorialmodules
自分のプロジェクトでAGS SDKをセットアップする方法を知りたい場合は、次のサブセクションに進んでください。
AGS Unreal OSSをクローンする
-
Byte Wars Unrealプロジェクトフォルダ(
.uprojectファイルが含まれているフォルダ)をターミナルで開きます。 -
次のコマンドを使用してAGS Unreal OSSサブモジュールを追加します。
git submodule add git@github.com:AccelByte/accelbyte-unreal-oss.git Plugins/AccelByte/OnlineSubsystemAccelByte -
次のコマンドを使用してAccelByte Unreal OSSサブモジュールをチェックアウトします。
cd Plugins/AccelByte/OnlineSubsystemAccelByte
git checkout 0.12.6
AGS Unreal Game SDKをクローンする
-
Byte Warsプロジェクトフォルダに戻り、次のコマンドを使用してAGS Unreal SDKサブモジュールを追加します。
git submodule add git@github.com:AccelByte/accelbyte-unreal-sdk-plugin.git Plugins/AccelByte/AccelByteUe4Sdk -
次のコマンドを使用してAGS Unreal Game SDKサブモジュールをチェックアウトします。
cd Plugins/AccelByte/AccelByteUe4Sdk
git checkout 25.0.0
AGS Network Utilitiesをクローンする
-
Byte Warsプロジェクトフォルダに戻り、次のコマンドを使用してAGS Network Utilitiesサブモジュールを追加します。
git submodule add git@github.com:AccelByte/accelbyte-unreal-network-utilities.git Plugins/AccelByte/AccelByteNetworkUtilities -
次のコマンドを使用してAccelByte Network Utilitiesサブモジュールをチェックアウトします。
cd Plugins/AccelByte/AccelByteNetworkUtilities
git checkout 4.3.1
プラグインのセットアップを確認する
すべてのプラグインがサブモジュールとして正しくセットアップされていることを確認するには、%PROJECTPATH%/.gitmodulesファイルに、以下の例のようにすべてのサブモジュールの設定が含まれていることを確認します。
[submodule "Plugins/AccelByte/OnlineSubsystemAccelByte"]
path = Plugins/AccelByte/OnlineSubsystemAccelByte
url = git@github.com:AccelByte/accelbyte-unreal-oss.git
[submodule "Plugins/AccelByte/AccelByteUe4Sdk"]
path = Plugins/AccelByte/AccelByteUe4Sdk
url = git@github.com:AccelByte/accelbyte-unreal-sdk-plugin.git
[submodule "Plugins/AccelByte/AccelByteNetworkUtilities"]
path = Plugins/AccelByte/AccelByteNetworkUtilities
url = git@github.com:AccelByte/accelbyte-unreal-network-utilities.git
プラグインを使用するようにプロジェクトを設定する
プラグインがPlugins/AccelByteに正しくクローンされたので、Byte WarsプロジェクトがAGS Game SDKプラグインを使用するように設定する必要があります。
-
すべてのプラグインを
AccelByteWars.uprojectファイルに追加します。"Plugins": [
...
{
"Name": "AccelByteUe4Sdk",
"Enabled": true
},
{
"Name": "OnlineSubsystemAccelByte",
"Enabled": true
},
{
"Name": "AccelByteNetworkUtilities",
"Enabled": true
}
] -
プラグインを
/Source/AccelByteWars.Target.csファイルに追加します。ExtraModuleNames.AddRange(
new string[]
{
"AccelByteWars",
"AccelByteUe4Sdk",
"OnlineSubsystemAccelByte",
"AccelByteNetworkUtilities"
}
); -
プラグインを
/Source/AccelByteWarsEditor.Target.csファイルに追加します。ExtraModuleNames.AddRange(
new string[]
{
"AccelByteWars",
"AccelByteUe4Sdk",
"OnlineSubsystemAccelByte",
"AccelByteNetworkUtilities"
}
); -
プラグインを
/Source/AccelByteWars/AccelByteWars.Build.csファイルのPublicDependencyModuleNamesに登録します。PublicDependencyModuleNames.AddRange(
new string[]
{
...
"AccelByteUe4Sdk",
"AccelByteNetworkUtilities",
"OnlineSubsystemAccelByte",
...
}
); -
Visual Studioのプロジェクトファイルを再生成してコンパイルします。
-
Unreal Editorを実行し、Edit > Pluginsに移動して、プロジェクトでAGS Game SDKプラグインが有効になっていることを確認します。

パブリックIAMクライアントをセットアップする
AGS Game SDKがクライアント環境にアクセスできるようにするには、Admin PortalでパブリックのIAMクライアントを追加する必要があります。
- AGS Public Cloud
- AGS Private Cloud
-
Admin Portalにログインし、ゲームネームスペースのダッシュボードに移動します。
-
Foundations > Identity & Access > IAM Clientsに移動し、Create IAM Clientsをクリックします。
-
新しいページで、以下の設定を使用してフィールドを入力します。
- Create Options: 新しいIAMクライアントを作成するための利用可能なオプションです。テンプレートから新しいIAMクライアントを作成するには、Create from Templateオプションを選択します。
- Select Template: 新しいIAMクライアントを作成するためのテンプレートです。Game Clientオプションを選択します。
- Client Name: IAMクライアントの名前です。ByteWars-GameClientに設定します。
- Client Type: IAMクライアントの機密性(Confidentiality)の種別です。Publicオプションを選択します。
-
他のフィールドは変更せず、Createをクリックして新しいIAMクライアントを作成します。
-
Admin Portalにログインし、ゲームネームスペースのダッシュボードに移動します。
-
Foundations > Identity & Access > IAM Clientsに移動し、Create Newをクリックします。
-
新しいウィンドウで、以下の設定を使用してフィールドを入力します。
- Client Type: IAMクライアントの機密性(Confidentiality)の種別です。IAMクライアントをパブリックにするため、Publicに設定します。
- Client Name: IAMクライアントの名前です。ByteWars-GameClientに設定します。
- Redirect URI: IAMクライアントの認可が成功した後にリダイレクトするために使用されるURIです。
https://127.0.0.1に設定します。
-
他のフィールドは変更せず、下にスクロールしてCreateをクリックし、新しいIAMクライアントを作成します。
IAMクライアント用にAGS Game SDKを設定する
AGS Game SDKを使用する前に、先ほど作成したIAMクライアントを使用するように設定する必要があります。
-
/Config/DefaultEngine.iniをテキストエディタで開きます。 -
DefaultEngine.ini内の[/Script/AccelByteUe4Sdk.AccelByteSettings]セクションを見つけ、Client IDをパブリックIAMクライアントの情報に置き換えます。また、他のプレースホルダーの値も、ゲームネームスペースとAGS環境に合わせて置き換えます。- AGS Public Cloud
- AGS Private Cloud
[/Script/AccelByteUe4Sdk.AccelByteSettings]
ClientId=<game_iam_client_id>
ClientSecret=
Namespace=<game_namespace_id>
PublisherNamespace=
BaseUrl="https://<game_namespace_id>.prod.gamingservices.accelbyte.io"
[OnlineSubsystem]
DefaultPlatformService=AccelByte備考- ClientIdはランダムに生成され、パブリックIAMクライアントを一意に識別するために使用されます。
- NamespaceはゲームネームスペースのネームスペースIDです。
- BaseUrlは、ゲームネームスペースIDとAdmin Portal環境を組み合わせて作成されたベースURLです。
[/Script/AccelByteUe4Sdk.AccelByteSettings]
ClientId=<game_iam_client_id>
ClientSecret=
Namespace=<game_namespace_id>
PublisherNamespace=accelbyte
BaseUrl="https://<studio_name>.accelbyte.io"
[OnlineSubsystem]
DefaultPlatformService=AccelByte備考- ClientIdはランダムに生成され、パブリックIAMクライアントを一意に識別するために使用されます。
- NamespaceはゲームネームスペースのネームスペースIDです。
- PublisherNamespaceはパブリッシャーネームスペースのパブリッシャーIDです。デフォルト値は
accelbyteです。 - BaseUrlはAdmin Portal環境のURLです。
ヒント-
ゲームネームスペースIDを見つけるには、Admin Portalにアクセスし、ゲームネームスペースが一覧表示されているNamespaceページに移動します。次に、GAMESセクションでゲームネームスペースを見つけて、gearアイコンをクリックします。新しいページでNamespace IDプロパティを見つけると、そこでゲームネームスペースIDの値を確認できます。
-
同様に、パブリッシャーネームスペースIDを見つけるには、Admin Portalにアクセスし、ゲームネームスペースが一覧表示されているNamespaceページに移動します。次に、PUBLISHERセクションでパブリッシャーネームスペースを見つけて、gearアイコンをクリックします。新しいページでNamespace IDプロパティを見つけると、そこでパブリッシャーネームスペースIDの値を確認できます。
-
DefaultEngine.iniファイルを保存し、Byte Warsプロジェクトを再ビルドします。
AGS Game SDKの設定を確認する
-
Config/DefaultEngine.ini内のLogAccelByteOSSのログレベルがLog以上に設定されていることを確認します。[Core.Log]
LogAccelByteOSS=Log -
DefaultEngine.iniファイルを保存して閉じます。 -
Unreal Engineエディタを実行し、Window > Output Logに移動してOutput Log Windowを表示します。ログに
AccelByte API initialized!が表示されれば、SDKは正しく設定されています。LogAccelByteOSS: Starting OnlineSubsystemAccelByte module!
...
LogAccelByteOSS: AccelByte API initialized! -
Unreal Editorでゲームを実行して、SDKが正しく設定されているかどうかを確認することもできます。
-
SDKが正しく設定されている場合、メインメニューにリダイレクトされます。
-
SDKが正しく設定されていない場合、メインメニューの代わりにエラーメッセージが表示されます。
-
この段階では、DefaultEngine.iniがまだ正しく設定されていないことを示すLogAccelByteからのエラーがいくつか表示されることがあります。これらのチュートリアルを継続し、専用サーバーを使用する予定がある場合は、これらのメッセージは後で解決され、チュートリアルの流れを妨げることはないため、無視してください。それ以外の場合は、DefaultEngine.iniを開き、[/Script/AccelByteUe4Sdk.AccelByteServerSettings]に移動して、ClientId、Namespace、BaseUrlの値を" "に設定してください。