セッションテンプレートを作成および設定する
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services(AGS)セッションを使用すると、ゲームにセッションを実装できます。セッションは、特にオンラインマルチプレイヤーを備えた多くのゲームにとって重要なコンポーネントであり、プレイヤーが互いに接続できるようにします。
AGSのセッションテンプレートにより、ゲーム開発者はセッションの参加可能性、許可されたプレイヤー、リーダー選出、その他のオプションを設定できます。この記事では、AGS管理者ポータルまたは AGS CLI でセッションテンプレートを作成および設定する方法について説明します。
前提条件
- AGSマッチメイキングに精通していること。
- AGS管理者ポータルへのアクセス権があること。
- AGS CLI の手順に従う場合は、AGS CLI をインストールし、これらの機能へのアクセス権を持つアカウントでサインインしてください。詳細については、インストールとサインインを参照してください。例では Bash シェルを使用しています。
セッションテンプレートを作成および設定する
- Admin Portal
- AGS CLI
-
管理者ポータルで、目的のネームスペースに移動します。
-
サイドバーで、マルチプレイヤー > マッチメイキング > セッション設定に移動します。セッションテンプレートタブで、+ セッションテンプレートを追加をクリックします。
-
セッションテンプレートの作成ページの一般セクションで、次のガイドを使用して必要な情報を入力します。
- セッションテンプレート名: セッションテンプレートの名前を入力します。
- 最小プレイヤー数: セッションで許可されるプレイヤーの最小数を設定します。
- 最大プレイヤー数: セッションで許可されるプレイヤーの最大数を設定します。
- プレイヤーアクティブセッション制限: プレイヤーごとに許可される同時セッションの最大数を設定します(無制限の場合は
-1を使用)。 - 参加可能性: 参加可能性設定を選択します。
- 招待タイムアウト: セッション招待がタイムアウトするまでの制限時間(秒単位)を設定します。たとえば、これを60に設定すると、セッションに参加していたがAGSロビーから60秒以上切断されたプレイヤーがドロップされます。
- 非アクティブタイムアウト: AGSロビーから切断され、再接続していないプレイヤーをタイムアウトする前にセッションが待機する時間制限(秒単位)を設定します。
- リーダー選出猶予期間: 現在のリーダーが切断されたときに新しいリーダーを選択する期間(秒単位)を設定します。これはパーティーセッションにのみ適用されます。
- サーバー: 使用する接続に基づいてセッションタイプを選択します。これをNONEに設定し、参加可能性を招待のみに設定すると、セッションはパーティーセッションのように動作し、新しいプレイヤーは招待された場合にのみ参加できます。
- リクエストされたリージョン: サーバーとしてDS - AMSが選択されている場合にのみ表示されます。このセッションを使用できるリージョンを選択します。
-
次へをクリックします。セッションテンプレートの作成ページの追加セクションで、次のガイドを使用してオプションを設定します。
- 自動セッション承認: 有効にすると、マッチが形成されるとプレイヤーは自動的にセッション招待を承認し、直接セッションに参加します。
- チャットルームを有効化: 有効にすると、セッション内のプレイヤーが互いにチャットするためのチャットルームが提供されます。
- シークレット検証を有効化: 有効にすると、セッションは接続中のプレイヤー検証用のシークレットキーを生成します。
- コード生成: 有効にすると、セッションはセッションコードを生成します。
- 不変セッションストレージ: 有効にすると、セッション内のプレイヤーがセッションストレージを変更できなくなります。
- 専用サーバー(DS)の手動準備完了設定: 有効にすると、専用サーバーは特定のエンドポイントを呼び出す必要があり、専用サーバーがゲームセッションのクライアント接続を受け入れる準備ができていることを通知します。
- チームセッションライフタイムの紐付け: 有効にすると、チーム内のパーティーセッションのライフタイムがゲームセッションにリンクされます。
- 自動ゲームセッション退出: 有効にすると、プレイヤーは新しいゲームセッションに参加する際に現在のゲームセッションを退出します。これにより、プレイヤーのアクティブなゲームセッションは常に1つに制限されます。この設定が有効な場合、プレイヤーアクティブセッション制限は無視されます。
-
次へをクリックします。セッションテンプレートの作成ページのサードパーティ同期セクションで、必要に応じてセッション同期を有効化を有効または無効にします。このオプションを有効にすると、セッションがサードパーティプラットフォームと同期するようになります。
-
次へをクリックすると、カスタム属性を適用するオプションがあるページに移動します。必要に応じて設定するか、空白のままにします。
-
次へをクリックして、セッションテンプレートの概要を確認します。設定に満足したら、作成をクリックし、ポップアップでOKをクリックして確認します。新しいセッションテンプレートは、マルチプレイヤー > マッチメイキング > セッション設定ページのセッションテンプレートリストに表示されます。
-
テンプレートの設定を記述した JSON ファイルを作成します。ファイル名は任意です。この例では
session-template.jsonを使用します。{
"name": "<YourTemplateName>",
"minPlayers": 2,
"maxPlayers": 4,
"maxActiveSessions": -1,
"joinability": "OPEN",
"inviteTimeout": 60,
"inactiveTimeout": 60,
"type": "NONE",
"autoJoin": false,
"textChat": false,
"partyCodeLength": 4
}次の表は、管理者ポータルのフィールドとリクエストボディのフィールドの対応を示しています。省略したフィールドにはサービスのデフォルト値が適用されます。すべてのフィールドを確認するには、
ags session templates create --skeletonを実行します。管理者ポータルのフィールド リクエストボディのフィールド セッションテンプレート名 name最小プレイヤー数 minPlayers最大プレイヤー数 maxPlayersプレイヤーアクティブセッション制限 maxActiveSessions参加可能性 joinability:OPEN、INVITE_ONLY、CLOSED、FRIENDS_OF_MEMBERS、FRIENDS_OF_LEADER、またはFRIENDS_OF_FRIENDS招待タイムアウト inviteTimeout非アクティブタイムアウト inactiveTimeoutリーダー選出猶予期間 leaderElectionGracePeriodサーバー typeとdsSource(下記の注記を参照)リクエストされたリージョン requestedRegions自動セッション承認 autoJoinチャットルームを有効化 textChatシークレット検証を有効化 enableSecretコード生成 disableCodeGeneration(値の意味が逆になります。falseを指定するとコードが生成されます)不変セッションストレージ immutableStorage専用サーバー(DS)の手動準備完了設定 dsManualSetReadyチームセッションライフタイムの紐付け tieTeamsSessionLifetime自動ゲームセッション退出 autoLeaveSessionパーティーコードの長さ partyCodeLength(管理者ポータルは4を送信します。省略した場合、サービスは6を使用します)セッション同期を有効化 NativeSessionSetting.ShouldSyncカスタム属性 attributes注記管理者ポータルのサーバーオプションは、2 つのフィールドを設定します。
- NONE:
typeをNONEに設定します。 - P2P:
typeをP2Pに設定します。 - DS - AMS:
typeをDSに、dsSourceをAMSに設定します。必要に応じて、requestedRegionsにデフォルトのリージョンを指定します (例:["us-east-2"])。 - DS - Custom:
typeをDSに、dsSourceをcustomに設定します。次に、appNameに Extend アプリの名前を設定するか、customURLGRPCに gRPC サーバーのアドレスを設定します。また、deploymentを設定し、requestedRegionsに少なくとも 1 つのリージョンを指定します。
dsSourceを指定せずにtypeをDSに設定した場合、テンプレートは AMS を使用しません。 - NONE:
-
テンプレートを作成します。
@の後に JSON ファイルのパスを指定します。<YourNamespace>をネームスペースに置き換えてください。ags session templates create --namespace <YourNamespace> --json @session-template.json
セッションサーバーをDS(DS-AMSまたはDS-Custom)を使用するように設定すると、セッションサービスは最小数のプレイヤーが参加した時点でプロバイダーからDSをリクエストします。最小プレイヤー数が0に設定されている場合、セッションサービスはセッションが作成された直後にDSをリクエストします。
セッションテンプレートを編集する
作成したセッションテンプレートを次の手順で変更できます。
- Admin Portal
- AGS CLI
-
管理者ポータルで、目的のネームスペースに移動します。
-
サイドバーで、マルチプレイヤー > マッチメイキング > セッション設定に移動します。セッションテンプレートタブで、変更したいテンプレートを見つけて、その名前をクリックします。
-
セッションテンプレートに必要な調整を行います。完了したら、保存をクリックし、ポップアップでOKをクリックして確認します。変更が保存されます。
-
変更したいテンプレートの名前を確認します。
ags session templates list --namespace <YourNamespace> -
テンプレートの現在の設定をファイルに保存します。
ags session templates get --namespace <YourNamespace> --name <YourTemplateName> --format json > session-template.json -
session-template.jsonで、変更したい値を編集します。その他のフィールドはそのままにしてください。テンプレートの名前は変更できません。 -
編集したファイルを送信します。
ags session templates update --namespace <YourNamespace> --name <YourTemplateName> --json @session-template.json警告更新ではテンプレート全体が置き換えられるため、省略したフィールドはサードパーティ同期設定やカスタム属性も含めてリセットされます。必ず保存したファイルをもとに編集してください。
セッションテンプレートを削除する
セッションテンプレートは次の手順で削除できます。
- Admin Portal
- AGS CLI
-
管理者ポータルで、目的のネームスペースに移動します。
-
サイドバーで、マルチプレイヤー > マッチメイキング > セッション設定に移動します。セッションテンプレートリストタブで、削除したいテンプレートを見つけます。
-
削除アイコンをクリックし、現在のアクティブセッション(ゲームとパーティーの両方)に影響を与えるため、削除を確認してください。
-
削除したいテンプレートの名前を確認します。
ags session templates list --namespace <YourNamespace> -
テンプレートを削除します。
ags session templates delete --namespace <YourNamespace> --name <YourTemplateName>
セッションテンプレートを削除すると、関連するすべてのセッション(ゲームまたはパーティー)が直ちに無効化されます。セッションでアクティブなユーザーには通知されます。このアクションは元に戻すことができず、セッションは非アクティブになります。セッションテンプレートを削除する前に、進行中のセッションへの潜在的な影響を認識していることを確認してください。