Version: jp

ping-sample

note

このサービスは、現在クローズドベータテスト中であり、現時点では一般提供されていません。

このチュートリアルでは、エンドツーエンドの開発フローを実演するために、付属の各種サンプルを展開して設定する方法について説明します。

アカウントと資格情報を準備する#

マッチメーカーのベータ版では、このサービスを使用するために必要な資格情報を取得するために、無料の Unity 開発者アカウントを作成する必要があります。

1.https://developer.cloud.unity3d.com に移動します。 2.Unity 開発者アカウントを作成します(または、既存のアカウントを使用します)。 3.組織を作成します(または既存の組織を使用します)。

  • 後で使うために組織の名前を保存します(これを Multiplay に送信する必要があるため)。 4.https://developer.cloud.unity3d.com/projects/ に移動します。 5.「Create New Project」をクリックします。 6.対象のプロジェクトの UPID(Unity プロジェクト ID)をコピーし、後で使うために保存します。 Unity dev dashboard UPID

サンプルの専用ゲームサーバーを Multiplay フリートにデプロイする#

提供されている Ping サンプルサーバーと Ping サンプルクライアントは、マッチメーカーベータ版のエンドツーエンドフローを示すものです(クライアントとサーバー間の基本的な通信や、Multiplay とマッチメイキングの各種機能など)。

マッチメーカーベータ版では、テスト用の Multiplay フリートを設定するプロセスと、専用サーバーのバイナリを展開するプロセスが、Multiplay チームによって処理されます。Ping サンプルサーバー用の統合をリクエストする場合は、Multiplay Integration チームまでお問い合わせください。

note

Multiplay にサーバーのサンプルを送信する前に、サンプル内の設定ファイルを、ご使用のプロジェクト ID で更新する必要があります。

サンプルサーバーを更新してデプロイ用に準備するには、次の手順を実行します。

1.Ping サンプルの .zip ファイルをダウンロードして抽出します。 2./Builds/Linux/server/server-linux_Data/StreamingAssets/ に移動します。 3.settings.json ファイルを開き、プロジェクト ID の値をご使用のクラウドプロジェクトの UPID に置き換えた後、ファイルを保存します。 4./Builds/Linux/server/ フォルダーのコンテンツを圧縮した後、その .zip ファイルを Multiplay Integration チームに送信します。

Multiplay マッチメイキングベータ版のワークフロー用に独自のサーバー実行ファイルを準備する方法については、「Multiplay - スタートガイド」を参照してください。

マッチメーカーのデプロイをリクエストする#

マッチメーカーベータ版では、最初のデプロイとマッチメーカーの設定は Multiplay チームによって処理されます。ご使用のテストフリートをターゲットとしたマッチメーカーのデプロイをリクエストするには、Multiplay Integration チームまでご連絡ください。なお、Multiplay にはプロジェクトの UPID(Unity プロジェクト ID)を提供する必要があります。

Multiplay チームからは、マッチメイキングに使用する外部 URL が次の形式で提供されます:cloud.connected.unity3d.com/**\<your UPID\>

コマンドラインインターフェースの入手#

マッチメーカーベータ版には、マッチメイキングシステムの管理や設定を行うためのコマンドラインインターフェース(CLI)が付属しています。ご使用のシステムに対応した CLI を、こちらからダウンロードしてください。

なお、場合によっては、ダウンロードした実行ファイルを機能させるために、権限を変更する必要があります(chmod +x)。

詳細については、コマンドラインインターフェースのドキュメントを参照してください。

マッチメーカーにサンプルのマッチ関数をデプロイする#

マッチメーカーベータ版では、デフォルトのマッチ関数がすでにいくつかアップロードされ、設定された状態でマッチメーカーが展開されるので、デフォルトで実行することができます。

  • Timeout-function - 設定された秒数が経過してもマッチが見つからないクライアントにタイムアウトエラーを返します(デフォルトは 60 秒です)。
  • Simple-function - この基本的なサンプル関数は、チケットごとの複数のプレイヤー(たとえば、一緒にマッチを探しているプレイヤーのグループ)を把握し、プレイヤー数の最小値と最大値の間のサイズでゲームのビルドを試行します。

これらの関数、サンプル設定、およびいくつかの追加サンプルは、次のリンクから入手できます。

提供されている API と CLI を使用すれば、デフォルトのマッチ関数の設定、無効化、削除が行えるほか、独自のカスタムマッチ関数をアップロードすることもできます。マッチ関数の開発に関する詳細については、ハウツードキュメントを参照してください。

note

csproj のサンプルからビルドした関数を zip 圧縮する際には、.zip 内のアセンブリがフラットであり、複数のサブディレクトリにネストされていないことを確認してください。詳細については、付属の Readme ファイルを参照してください。

Multiplay フリートからサーバーを割り当てるようマッチメーカーを設定する#

マッチメーカーベータ版では、Multiplay Integration チームが Multiplay 認証キーの生成方法をご説明します。それらのキーをマッチ関数の設定に追加して、マッチ関数から Multiplay を使用するように設定してください。

設定ファイルのサンプルは、Function Samples.zip ファイルに含まれており、mmbeta CLI で使用できます。

simple-function デプロイ用の関数設定サンプルは、/configs/ ディレクトリ内の Simple.json ファイルから利用できます。Simple.json を開き、multiplay セクションのフィールドと DefaultRegion フィールドを、ご使用のフリートと開始リージョンの値に置き換えてください。

{
"matchmaking": {
"name": "simple-sample",
"targetFunction": {
"name": "simple-function",
"version": "1"
},
"config": {
"MinMatchSize": 1,
"MaxMatchSize": 4,
"DefaultRegion": "<default multiplay regionid here>"
}
},
"multiplay": {
"Profile": "<multiplay profile id here>",
"Access": "<multiplay access key here>",
"Secret": "<multiplay secret key here>",
"FleetId": "<multiplay fleet id here>"
}
}

ご使用のプロジェクトに合った設定が用意できたら、コマンドラインインターフェースを使用して次のコマンドを実行します。

./mmbeta config set -n project -v {projectId}
./mmbeta matchmaking config create --path Simple.json
./mmbeta matchmaking config list

これにより、マッチが生成された際、展開された simple-function が指定の Multiplay フリートをターゲットとする設定になります。

マッチメイキング API と CLI を使用して、ターゲット先のフリートや関数のフリートキーを変更することもできます。詳細については、CLI 関連ドキュメントを参照してください。

ご自身のマッチメーカーを使用するサンプルのゲームクライアントを実行する#

Multiplay Ping サンプルをダウンロードする#

Multiplay Ping サンプルには、クライアントとサーバーの両方が含まれています。開発者はこれらを一緒に使用して、エンドツーエンドのセットアップを検証できます。Ping サンプルクライアントは Unity で構築されたゲームクライアントであり、GUI モードとコマンドラインモードの両方で使用できます。このサンプルでは、次のマッチメーカーベータ版機能をデモンストレーションできます。

  • サービス品質(QoS)プロトコル - QoS が有効化されていて、Multiplay フリートの ID が指定されている場合、クライアントは、ご使用のフリートが展開されているリージョンで利用可能な QoS サーバーの一覧をダウンロードし、それらのリージョンを ping した後、QoS 結果をマッチメイキングリクエストにアタッチします。これにより、マッチ関数で QoS データを消費できるようになります。
  • マッチメイキングサービス - サンプルクライアントは、マッチメイキング REST API を使用してマッチリクエストをサービスに送信し、マッチの完了をポーリングした後、マッチのキャンセルリクエストを発行します。
  • サーバーへの接続 - サンプルクライアントは、サンプルサーバーに ping を送信して、そのサーバーが実行中であることと、UDP 接続が確立可能であることを検証します。
  • サーバーの終了 - クライアントがサーバーに kill コマンドを送信します。これにより、Multiplay 側で即時の割り当て解除がトリガーされます。これは、最小限のサーバー数でマッチメイキングリクエストをイテレーションするのに有用です。

サンプルは Unity に組み込まれていますが、Multiplay サービスはエンジン非依存です。また、API とプロトコルは完全に文書化されています。詳細については、次のリソースを参照してください。

ping クライアントでエンドツーエンドのテストを検証する#

Ping クライアントの UI サンプルの画像

1.Builds フォルダー内の MultiplayPingClient 実行ファイルを起動します。お使いのプラットフォームに合った実行ファイルをお選びください。 2.「URL」フィールドに、マッチメーカーの公開 URL を次の形式で入力します:cloud.connected.unity3d.com/<your UPID> 3.ご使用のテストフリート ID を入力して QoS チェックを有効にします。 4.「Use Matchmaking to find a server」をクリックしてマッチの検索を開始します。 5.マッチングが完了してマッチが見つかると、そのマッチに割り当てられている専用ゲームサーバーの IP アドレスが「Ping Server Endpoint」フィールドに入力されます。

* オプション:「**Start pinging server**」をクリックして、リストされたエンドポイントにあるクライアントとサーバーの間に ping を送信します。
* オプション:「**Terminate server**」をクリックして、リモートシャットダウン信号をサーバーに送信します。

マッチメーカーベータ版では、Unity ベースの Ping サンプル(クライアントとサーバー)のソースが提供されています。また、サンプルによって使用される各種プレビューパッケージの、開発途中段階のコードも提供されています。サンプルに付属しているドキュメントには、Unity エディターを使用してソースからプロジェクトをビルドするための手順が記載されています。

サンプルに関する追加メモ

  • Ping サンプルサーバーでは、アクティブでない(クライアントが接続されていない)状態が 10 分続くと、自動的に割り当てが解除されます。
  • クライアントはヘッドレスなコンソールアプリとして実行することもできます。詳細については、サンプルに付属のドキュメントを参照してください。