AMS を始める
注釈:本資料はAI技術を用いて翻訳されています。
概要
このドキュメントでは、専用サーバー(DS)プロバイダーとして AccelByte Multiplayer Servers (AMS) を使用してゲームを起動するためのシンプルなアプローチについて説明します。
AMS を DS プロバイダーとして使用するには、AccelByte Shared Cloud にサインアップしてフリートを管理し、マッチメイキングやセッションサービスが専用サーバーをクレームできるよう承認する必要があります。Unity または Unreal ベースのゲームの場合は、DS に AccelByte ゲームソフトウェア開発キット(SDK)を統合して、準備ができたことを AMS に通知し、フリートのスケールインが必要なときのドレインシグナルに応答できるようにする必要があります。ゲームが別のエンジンを使用している場合は、ローカルの WebSocket 経由で AMS ウォッチドッグプロトコル を実装する必要があります。このガイドの残りの部分では、AccelByte ゲーム SDK でサポートされているゲームエンジンを使用していることを前提としています。
AccelByte Shared Cloud と DS のセットアップ
セットアップの手順:
- AccelByte Shared Cloud でアカウントを登録します。
- アカウントを作成してログインし、AMS トライアルを有効化したら、「Set up My Game」をクリックします。
- namespace を作成したら、AMS ドキュメントに従って以下を実行します:
- AMS アカウントを作成する。
- Admin Portal から AMS コマンドラインインターフェース(CLI)ツールをダウンロードする。
- AccelByte ゲーム SDK を使用して 専用サーバーを AMS と統合する。
- AMS CLI を使用して専用サーバービルドをアップロードする。
上記の手順を完了すると、ゲームサーバーは AMS で実行する準備が整います。
専用サーバーのクレーム
専用サーバーをクレームするには 2 つのオプションがあります。
- セッション管理サービスが DS をクレームする: セッション管理またはマッチメイキングサービスが、ゲームセッションが作成されたときに AMS サーバークレームエンドポイントを呼び出します。
- DS がセルフクレームする: DS がアクティブになったときに自身をクレームします。
どちらの方法でも、AMS は DS をクレーム済みとしてマークし、バッファー設定に従ってフリートを適切にスケールできるようにします。
AGS で専用サーバーをクレームする
バックエンドとして AGS を使用している場合、セッションが作成されると AGS セッションサービスがそれぞれの DS のクレームを処理します。AMS から専用サーバーをクレームするようにセッションを設定する を参照してください。
AGS なしで専用サーバーをクレームする
オプション 1: セッション管理サービスが DS をクレームする
ゲームが AGS を使用せず、別のマッチメイキングまたはセッション管理ソリューションを使用している場合は、利用可能な AGS Extend SDK の 1 つをセッション管理ソリューションに統合して、AMS からの専用サーバーのクレームを容易にすることができます。
SDK の 1 つを使用する場合、またはクレーム API に直接 REST 呼び出しを行う場合は、認証トークンが必要です。認証トークンは OAuth クライアント ID とシークレットを使用して取得します。
サービスが使用する IAM クライアントを設定するには:
- AccelByte Admin Portal のサイドバーで、Game Setup > IAM Clients に移動します。
- Create IAM Clients をクリックし、Create from Template を選択して Custom Backend Tooling テンプレートを選択します。
- 使用したいシークレットを入力します。
- Permission セクションで、AMS グループの Dedicated Server Claim オプションを見つけ、update パーミッションのチェックボックスにチェックを入れます。
- 作成をクリックします。
ゲームのセッション管理サービスは、このクライアント ID とシークレットを使用してトークンを取得し、AMS から専用サーバーをクレームできます。Accelbyte Python Extend SDK を使用してマッチが成立したときに DS をクレームするシンプルなマッチメーカーを構築する例は、matchmaking-server AMS サンプルリポジトリにあります。
マッチメーカーやセッション管理サービスは、悪意のあるユーザーが過剰なクレームリクエストを引き起こすのを防ぐ必要があります。例えば、プレイヤーのログインを必須にし、ログインしたプレイヤーを同時に 1 つのアクティブなマッチメイキングリクエストに制限します。
オプション 2: DS がセルフクレームする
サードパーティのセッション管理サービスを使用している場合、DS をクレームするための変更が難しい場合があります。そのような場合は、以下のようにセルフクレームアプローチを使用できます。
- 起動時に、DS はセッションプロバイダーにセッションを登録します(例:Epic Online Services セッションサービスを使用する)。あるいはサーバーブラウザに利用可能なサーバーとして自身を登録します(例:Steam ゲームサーバー)。
- プレイヤーが特定の DS でプレイすることを選択して接続すると、サーバーはローカルウォッチドッグにクレームメッセージを送信します(AccelByte SDK を使用する場合は SDK 経由)。これにより DS がセッション中/クレーム済みとしてマークされ、AMS がフリートのバッファー設定に従って新しい DS インスタンスを起動できるようになります。
このアプローチでは、DS がアクティブになったときに自身をクレームするため、外部サービスによるクレーム呼び出しを必要とせずに AMS がフリートを適切にスケールできます。
DS をセッション対応にする
DS は、ドレインシグナルを受信した場合に適切に動作できるよう、アクティブなゲームセッション(アイドル状態に対して)を提供しているかどうかを認識する必要があります。期待される動作は ドレインシグナルのリッスン に記載されています。ゲームサービスの設定とゲームロジックの必要に応じて、以下のいずれかの方法で DS にセッション情報を認識させることができます。
- ゲームがバックエンドとして AGS を使用している場合、DS は AGS セッションサービスからの通知をサブスクライブする必要があります。
- プレイヤーが接続されている場合、アクティブなセッションがあると判断します。
- DS を正常にクレームした後、セッション管理サービスは DS の IP とポート情報を使用して DS にメッセージを送信し、クレームされたことを通知してセッションの詳細を共有できます。
- DS はセッション管理サービスがセッション詳細とともに通知を送信できる通知システムをサブスクライブできます。
- DS セルフクレームアプローチ(オプション 2)を使用している場合、DS はプレイヤーが接続したときにクレームを開始するため、自身のセッション状態をすでに認識しています。