> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GSDK プロジェクトのクラウドデプロイメント

> Unreal Engine の GSDK Windows サーバービルドを PlayFab Multiplayer Servers (MPS) のクラウドにデプロイし、Linux に切り替える前に反復的にテストします。

# Windows サーバーをクラウドにデプロイして実行する

このガイドでは、Windows サーバービルドを PlayFab Multiplayer Server (MPS) のクラウドにデプロイする方法について説明します。これは、開発中のゲームサーバーのテストと迅速なイテレーションに最適です。多くのユーザーは、Windows でのテスト後、本番リリースには [Linux サーバー](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab) を使用します。

## 目標

* プロジェクトをクラウドにデプロイします。
* ローカルのゲームクライアントから接続します。

## 要件

* Visual Studio をダウンロードします。[Community 版](https://visualstudio.microsoft.com/vs/community/) は無料です。
  * 必要なワークロード: .NET デスクトップ開発と C++ によるデスクトップ開発
* Unreal Engine のソースコードをダウンロードします。手順については、[Unreal Engine ソースコードのダウンロード (外部)](https://docs.unrealengine.com/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/) を参照してください。
* [PlayFab Unreal GSDK](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-gsdk-project-setup) をインストールおよび構成した [完了済みの Unreal プロジェクト](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-setup)
* Visual Studio または Development Editor からビルドされたプロジェクトの [リリースサーバー](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project) 構成
* Visual Studio または Development Editor からビルドされたプロジェクトの [クライアント](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project) 構成
* [タイトルで MPS が有効化](/services/playfab/multiplayer/servers/enable-playfab-multiplayer-servers) されており、課金が設定されている
* \[オプション] [Docker for Windows](https://docs.docker.com/desktop/windows/install/) をインストールする

## 手順

### ゲームサーバーのパッケージ化

* \[オプション] このセクションでは、Unreal がプロジェクトにビルドするファイルを更新できます。ファイルを最近作成または削除した場合に便利です。
  * プロジェクトを最近「development editor」構成でビルドしていない場合は、今実行してください
  * Visual Studio を閉じます
  * プロジェクトの `{ProjectName}.uproject` ファイルに移動します
  * ファイルエディタで `{ProjectName}.uproject` ファイルを右クリックし、「Generate Visual Studio Project Files」を選択します
  * Visual Studio で \{ProjectName}.sln ファイルを再度開きます
* **Development Editor** 構成を選択します
* プロジェクトを実行します
* プロジェクトが読み込まれた Unreal Editor を確認します
* Unreal エディタメニューの左上で、**File** -> **Package** -> **Build Target** -> **\{ProjectName}Server** を選択します
* **File** -> **Package** -> **Build Configuration** -> **Shipping** を選択します
* **File** -> **Package** -> **Windowsx64** を選択します
* 出力場所 \{ShippingServerFolder} を選択して覚えておきます
* パッケージ化したゲームサーバーのバージョンを使用して、[LocalMultiplayerAgent でテスト](/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab) できるようになります
* LocalMultiplayerAgent で検証したら、[ビルド作成ガイド](/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds) を参照してください
  * この時点で MPS でテストするには、[PlayFab MpsAllocatorSample](https://github.com/PlayFab/MpsSamples/tree/main/MpsAllocatorSample) の中間ツールが必要です
  * このツールは現時点でいくつかのクライアント作業をバイパスし、ゲームクライアントからの直接リクエストなしでサーバーを割り当てることを可能にします
  * これをクライアントで正しく行う方法は別のトピックとして、[割り当てガイド](/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools) で扱われています。
* 上記の \{ShippingServerFolder} から Shipping Server ビルドを zip 化します
  * zip には \{ShippingServerFolder} 内のすべてを含め、必要に応じて zip ファイルのルートに配置します
  * \[オプション] つまり、zip のルートには \{ProjectName}Server.exe が含まれるべきです (exe は「WindowsServer」などのサブフォルダーにないほうが望ましいです。必要に応じて zip を再作成してください)
* [ビルド作成プロセスガイド](/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds) をよく理解してください
* 特定の構成の詳細については、以下で説明します:

### PlayFab 上で Windows 専用サーバーをセットアップする

このセクションでは、PlayFab MPS 内でのビルド作成、ゲームサーバーのアップロード、および初めての接続について説明します。より Unreal 固有ではない手順については、コアの MPS [サーバー作成ガイド](/services/playfab/multiplayer/servers/create-your-first-server) に従うこともできます。

* Game Manager -> Multiplayer に移動します
* **New Build** を選択します
* ビルドに名前を付けます
* 仮想マシンを選択します (これらのガイドで説明されているサンプルでは、最小のコア数のオプションで十分です)
* マシンあたりのサーバー数は約 1〜10 にできます
  * この数を改善/増加させることは、ゲームサーバーのパフォーマンスに基づきます
  * [VM メトリック](/services/playfab/multiplayer/servers/vm-metrics) を使用してゲームサーバーのパフォーマンスを測定し、最適化してこの数を増加させることができます
* **Server details** は今はスキップします (次のステップで扱います)
* Assets ブロックで、前のセクションから zip ファイルをアップロードボックスにドラッグします
  * 再起動している場合は、**Use existing assets** を選択できます
* アップロードが完了するのを待ちます
* **Start Command** は今はスキップします (次のステップで扱います)
* Network ブロックで、Port Name フィールドを `gameport` に設定します
  * ゲームサーバーへの接続に使用するポートを定義することは必須です
  * Unreal GSDK には、このポートを自動的に読み取り、この値に従って Unreal サーバーのホストポートを内部的にオーバーライドするコードが含まれています
  * このポートの名前は `gameport` である必要があります
* 構成したい「Server Details」に合致する次のステップに進みます

#### オプション 1: Windows プロセスモード

このオプションは、ゲームサーバーを VM 上で直接プロセスとして実行します。プロセスはポート、ドライブなど、マシン全体へのアクセスを共有します。このオプションはアセットアップロードを展開し、展開されたファイルの場所を作業ディレクトリとして「Start Command」を実行します。

* **Server Details** で **Process** と **Windows** を選択します
* **Assets** で、start command を次のように設定します:
  * `{ProjectName}Server.exe`、またはログファイルを生成したい場合は `{ProjectName}Server.exe -log`
  * start command は、展開されたアセットファイルを作業ディレクトリとしてコマンドラインから実行されます
  * zip ファイルをサブフォルダーでパックすることを選択した場合、相対パス (例: `WindowsServer/{ProjectName}Server.exe`) を指定して相対サブパスでプロジェクトにアクセスできます
* **Add Build** を選択します
* 以下の **Configure Regions** セクションに進みます

#### オプション 2: Windows コンテナモード

このオプションは、ゲームサーバーを docker コンテナで実行し、それらを互いに分離します。各サーバープロセスには、個別の仮想ドライブ、仮想ネットワークポートなどが割り当てられます。このオプションでは、定義した Mount Path にアセットを展開し、start command が Mount Path に基づく完全パスであることを期待します。

前提条件: Windows コンテナを実行するよう Docker を構成すること

* **Server Details** で **Process** と **Windows** を選択します
* **Assets** で
  * ゲームサーバーの zip ファイルの **Mount Path** を `C:\assets` に設定します (または同様のもの。\{MountPath} と表記)
  * start command を次のように設定します: `{MountPath}\{ProjectName}Server.exe`、またはログファイルを生成したい場合は `{MountPath}\{ProjectName}Server.exe -log`
  * start command は、-Server.exe ファイルへのコンテナ内の完全パスを表す必要があります
  * zip ファイルをサブフォルダーでパックすることを選択した場合、絶対パス (例: `{MountPath}\WindowsServer\{ProjectName}Server.exe`) を指定して絶対サブパスでプロジェクトにアクセスできます
* **Add Build** を選択します
* 以下の **Configure Regions** セクションに進みます

## 次のステップ

多くのユーザーは [ゲームクライアントを接続する](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build) ことでサーバーをテストしたいと考えるでしょう。

他のユーザーは、オプションで [Linux コンテナ](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab) を使用してサーバーを再ビルド・再デプロイすることに進むこともできます。Linux は大規模デプロイメントにおけるサーバーホスティングコストを削減します。

そうでなければ、メインの [Unreal GSDK Plugin](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk) ガイドに戻ることもできます。


## Related topics

- [GSDK プロジェクトのテストとデバッグ](/ja-jp/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-local-deployment-and-debugging.md)
- [Linux Unreal サーバーの MPS クラウドへのデプロイ](/ja-jp/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab.md)
- [クラウドホスト型 Unreal サーバーへの接続](/ja-jp/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build.md)
- [Unreal サンプルプロジェクトのビルド](/ja-jp/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project.md)
- [GSDK サンプルプロジェクトの作成](/ja-jp/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-setup.md)
