インテグレーションの要件
Learn the requirements your game server must meet to integrate with Multiplay Hosting.
読み終わるまでの所要時間 4 分最終更新 25日前
ゲームは、Multiplay Hosting サービスを使用してゲームをホストおよびスケールできるようにするという特定の要件を満たす必要があります。以下のガイドラインで、ゲームを Multiplay Hosting 用に準備する方法について説明します。 ほとんどの要件はビルドに関するものです。より具体的には、実行可能ビルドに関するものです。ビルド には、ゲームの実行に必要なすべてのファイルがカプセル化されます。実行可能ビルド は、ビルド内の実行ファイルです。実行可能ビルドは、ビルドの作成時に指定する必要があります。
一般要件
このセクションでは、Multiplay Hosting を使用するためにビルドが満たす必要のある一般要件について説明します。詳細については、以下の要件を参照してください。OS
実行可能ビルドは、Linux (Ubuntu 20.04) 上での実行をサポートする必要があります。ビルドの作成 時に、ビルドでサポートする OS を指定できます。 Multiplay Hosting でサポートされるのは 64 ビット Linux アプリケーションのみです。パラメーター化された値
ビルドでは、パラメーター化された値からの情報の使用をサポートする必要があります。Multiplay Hosting は、構成変数、server.json fileserver.jsonserver.json起動条件
ビルドでは、server.jsonallocatedID""ネットワークアダプターバインディング
ビルドでは、ゲームサーバーポートとクエリプロトコルサーバーポートの両方に0.0.0.0動的ポート番号
ビルドでは、ゲームデータの送信に動的ポート番号の使用をサポートする必要があります。Multiplay Hosting では、サーバーインスタンスごとにポート番号が生成されます (サーバー起動時にポートが競合しないようにオフセットが使用されます)。
実行可能ビルドでは、
$$port$$$$port$$-port $$port$$
ログディレクトリ
ビルドでは、サーバーインスタンスごとにログを生成する機能をサポートする必要があります。Multiplay Hosting では、Unity Dashboard を介して サーバーログ が表示されます。ここで、ログを表示、検索、ダウンロードできます。 起動パラメーターと構成変数を使用して、ビルドがログファイルを保存する場所をコントロールできます。例えば、-logFile$$log_dir$$ログディレクトリ要件は任意です。ログディレクトリを設定しない場合、Unity Dashboard を通じてログとクラッシュダンプにアクセスする方法はありません。-logFile $$log_dir$$/engine.log
クエリプロトコル
要件ではありませんが、SQP などの サーバークエリプロトコル からのクエリへの応答をサポートすることはビルドのベストプラクティスです。 サーバークエリプロトコルは、サーバー状態や割り当て済みプレイヤーの数など、サーバーインスタンスからの情報のクエリを促進するプロトコルです。通常、レスポンスには動的な (継続的に更新される) 値が格納された静的変数があります。 Multiplay Hosting は、クエリプロトコルのレスポンスに依存して、サーバーインスタンスの健全性を判断します。ビルドでクエリプロトコルがサポートされていないか、クエリプロトコルを間違って設定した場合、Multiplay Hosting はサーバーインスタンスが無反応であると判断する可能性があります。 また、クエリプロトコルにより、同時接続プレイヤー (CCU)、アクティブな割り当て、失敗した割り当て、プラットフォームごとの接続プレイヤー、サーバーイベント など、各サーバーに関するリアルタイムデータを Multiplay Hosting がレポートおよび監視できます。割り当て後のクリーンアップ
ビルドでは、ゲームサーバーで次の割り当てを準備するために何らかの形式の割り当て後 (セッション後) クリーンアップをサポートする必要があります。 2 つのオプションがあります。- ゲームセッションの終了後にロビーまたは準備完了状態に戻すことができます。
- プロセスを正常に終了できます (例えば、終了コード 0 など)。
コンテナビルドの要件
Multiplay Hosting ビルドを作成する場合、ビルドファイルをアップロードするためのいくつかのオプションがあります。 1 つのオプションは、Docker と Multiplay Hosting コンテナレジストリを使用してビルドのコンテナ化バージョンをアップロードすることです。コンテナビルド を使用する前に、ビルドコンテナが (一般要件 に加えて) 特定の要件を満たす必要があります。ベースイメージを使用したコンテナビルドの作成
linux-build-image テンプレートコンテナは、コンテナビルドの使用に関するほとんどの追加要件に対処します。ほとんどの場合に、ベースイメージを使用します。これを使用するには、以下の行を Dockerfile の一番上に追加します。FROM unitymultiplay/linux-base-image:<tag>
<tag>ゼロからのコンテナビルドの作成
Dockerfile をゼロから作成する場合は、コンテナが以下の要件を満たしていることの確認に責任を負うことになります。| 要件 | 説明 |
| コンテナでは、 |
| コンテナには、mpukgame ユーザーが起動した |
# ========================================================##========================================================-# Unity base image stuff##unity-base-image-stuff------------------# ========================================================##========================================================-FROM ubuntu:20.04 AS mpukRUN addgroup --gid 2000 mpukgame && \ useradd -g 2000 -u 2000 -ms /bin/sh mpukgame && \ mkdir /game && \ chown mpukgame:mpukgame /game && \ apt update && \ apt upgrade && \ apt install -y ca-certificatesUSER mpukgame# ========================================================##========================================================-# Custom game stuff##custom-game-stuff---------------------# ========================================================##========================================================-FROM mpuk AS game# copy game files here##copy-game-files-here# for example:##for-example:WORKDIR /gameCOPY --chown=mpukgame . .# set your game binary as the entrypoint##set-your-game-binary-as-the-entrypointENTRYPOINT [ "./gamebinary" ]