永続的なセッションを設定する
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services(AGS)セッションには、永続的なセッションを作成する機能があります。永続的なセッションは、プレイヤーの不在、専用サーバーのクラッシュ、セッションタイムアウトなどのイベント中もセッションがアクティブなままであることを保証します。
たとえば、サバイバルゲームでは、サーバーは継続的に出入りするプレイヤーの流れに対応するために、頻繁に継続的に稼働します。しかし、専用サーバーの長期間の稼働は、しばしばパフォーマンスの低下をもたらします。専用サーバーは継続的な稼働で最適に動作しますが、一貫したパフォーマンスを維持することが不可欠です。ゲーム開発者は、専用サーバーのパフォーマンスを最大化しながら、プレイヤーに中断のない24時間365日のセッション可用性を保証するソリューションを必要としています。
永続的なセッションは、AGS 管理者ポータルまたは AGS CLI で設定できます。AGS CLI を使用するには、AGS CLI をインストールし、これらの機能へのアクセス権を持つアカウントでサインインしてください。詳細は インストールとサインイン を参照してください。なお、例では Bash シェルを使用しています。
仕組み
永続的なセッション設定は動的に変更できません。テンプレートが設定された際の初期化時に設定された永続的な構成に厳密に従います。
AGSで永続的なセッションがどのように機能するかを示すフローチャートを次に示します。
永続的なセッションに関する考慮事項は次のとおりです。
- セッションサービスは、プレイヤーをリストから削除する前に、セッション内のプレイヤー履歴を24時間(デフォルト)保持します。データサイズはプレイヤーのリストの増加とともに増加し、クエリパフォーマンスに影響を与える可能性があります。これを防ぐために、AccelByteではセッション内のアクティブプレイヤー数を制限することを推奨します。
- 専用サーバーがパフォーマンスの低下やハングを経験する可能性を下げるために、サーバーライフサイクルを管理することが重要です。
永続的なセッションを設定する
永続的なセッションをアクティブに使用していないときは、削除することが不可欠です。長期間の非アクティブ状態は、セッションが数日または数か月にわたって専用サーバーを繰り返し生成する可能性があるため、大きなリソース消費につながる可能性があります。
- Admin Portal
- AGS CLI
-
管理者ポータルのサイドバーで、マルチプレイヤー > マッチメイキング > セッション設定に移動します。
-
セッションテンプレートタブで、+ セッションテンプレートを追加をクリックします。新しいセッションテンプレートを追加するための「セッションテンプレートの作成」ページにリダイレクトされます。
-
「セッションテンプレートの作成」ページ >「一般」タブ内で、セッション設定を入力し、「サーバー」オプションにDS - AMSを選択します。
-
次へボタンをクリックして「追加」セッション設定タブに移動し、永続的に設定を切り替えて、このテンプレートを永続的なセッション用に有効にします。
-
「概要」タブまで残りのセッション設定データを入力します。
-
設定を確認し、追加ボタンをクリックしてセッションテンプレートの作成を完了します。
-
セッションテンプレートの設定を含む JSON ファイルを作成します。ファイル名は任意です。この例では
persistent-template.jsonを使用します。{
"name": "<YourTemplateName>",
"type": "DS",
"dsSource": "AMS",
"persistent": true,
"joinability": "OPEN",
"minPlayers": 1,
"maxPlayers": 10,
"inviteTimeout": 60,
"inactiveTimeout": 60,
"maxActiveSessions": -1,
"requestedRegions": ["<YourRegion>"],
"textChat": false,
"partyCodeLength": 4
}プレースホルダーを置き換え、その他の値はゲームに合わせて変更してください。
typeとdsSource:DSとAMSは DS - AMS サーバーオプションに対応します。永続的なセッションでは、typeをDSに設定する必要があります。persistent:trueは 永続的に設定 トグルをオンにした状態に対応します。requestedRegions: このセッションで使用できる AMS リージョンです。
その他のセッションテンプレート設定については、セッションテンプレートを作成および設定するを参照するか、
ags session templates create --skeletonを実行して全フィールドを確認してください。 -
セッションテンプレートを作成します。
ags session templates create --namespace <YourNamespace> --json @persistent-template.json
AccelByte Multiplayer Serversでの永続的なセッション
AccelByte Multiplayer Servers(AMS)は、AccelByteの動的専用サーバー管理サービスです。専用サーバー管理にAMSを使用している場合、設定された期間後にサーバーが自動的にクリーンアップされるのを防ぐために、サーバーのセッションタイムアウトを定期的にリセットしてセッション期間を延長する必要があります。
SDKを使用する場合
AGS Game SDKを使用して専用サーバーをAMSと統合している場合は、ResetDSTimeout関数を使用する必要があります。
- Unreal
- Unreal OSS
- Unity
auto ServerApiClient = AccelByteOnlineSubsystemPtr->GetServerApiClient();
ServerApiClient->ServerAMS.ResetDSTimeout();
SessionInterface->ResetServerTimeout();
AccelByteSDK.GetServerRegistry().GetAMS().ResetDSTimeout();
SDKを使用しない場合
あるいは、専用サーバーがAGS Game SDK以外でAMSと統合されている場合は、WebSocket接続を介してwatchdogに直接reset_session_timeoutメッセージを送信する必要があります。詳細については、AMSウォッチドッグプロトコルを参照してください。