このガイドの目的は、Linux 専用サーバーのビルドと検証に必要なすべての手順を説明することです。 次の手順は、Unreal Engine 5 (早期アクセスと公式リリースの両方) に固有です。 同じ一連の手順がテストされ、UE 4.26 と UE 4.27 にも適用されています。Unreal Engine UI のパッケージ 化オプションの場所に関連するいくつかの小さな違いがあります。これは UE 4.27 と UE5 の早期アクセスでは異なります。
Linux のデプロイに関するその他の情報については、 こちらを参照してください
要件
- Unreal Linux の前提条件をインストールする
- Docker for Windows のインストール
Instructions
-
Unreal Linux の前提条件から、インストールされている Unreal Engine のツールチェーンをダウンロードし、実行可能ファイルを実行します。 これらのガイドの多くの部分と同様に、これらの手順は Unreal Engine がソースからビルドされている場合にのみ機能することに注意してください。
- インストールが完了したら、Windows 環境変数を調べ、次のシステム変数が存在することを確認します: LINUX_MULTIARCH_ROOT。
- Unreal Engine ソース ディレクトリで、次の手順を実行します。
- Rerun:
Setup.bat
- Rerun:
GenerateProjectFiles.bat
- Rerun:
- 独自のプロジェクトに戻ります。
-
{ProjectName}.uproject
ファイルを右クリックし、プロジェクト ファイルVisual Studio生成する - {ProjectName}.sln ファイルを Visual Studio で開きます。
- 構成を開発エディターに設定する
- Unreal エディターをビルドして実行する
-
- この時点で、Linux サーバー用のプロジェクトを任意のディレクトリにパッケージ化できます。
- Unreal Engine 5 の場合、エディターで画面の右上にある [パッケージ化] をクリックすると、Linux オプションを選択できるようになります。 UE 4.26 および UE 4.27 の場合、パッケージ化オプションは [ファイル] タブにあります。
- サーバーおよび配布の構成を確認し、ビルドする Linux を選択して、出力ディレクトリを選択します。
Linux サーバーの Docker イメージを作成する
このセクションでは、Linux Server を含む Docker イメージを設定します
- Linux サーバーを作成したので、そのディレクトリ (Windows エクスプローラー、または任意のターミナル) に移動します。
- 次の名前の新しいファイルを作成します:
Dockerfile
- 任意のエディター (メモ帳、vim、emacs など) でファイルを編集します
- 以下に示す内容をコピーし、貼り付けます。 [YourProjectNameServer].sh を独自の Linux サーバー実行可能ファイルの名前 (同じディレクトリ内) に置き換えてください
FROM ubuntu:18.04
# Unreal refuses to run as root user, so we must create a user to run as
# Docker uses root by default
RUN useradd --system ue
USER ue
EXPOSE 7777/udp
WORKDIR /server
COPY --chown=ue:ue . /server
USER root
CMD chown -R ue.ue $PF_SERVER_LOG_DIRECTORY && su ue -c ./YourGameNameServer.sh
注: chown コマンドは、サーバー プロセスからアクセスできるように $PF_SERVER_LOG_DIRECTORY を修正し、&& でコマンドをチェーンしてサーバーを実行します
- 任意のターミナルを使用して、Linux サーバー ディレクトリに移動します
- Windows ユーザーは通常、cmd または powershell を使用しますが、サード パーティ製ツールまたは WSL による bash も使用できます
- Mac と Linux のユーザーは通常、bash を使用します
- 実行:
docker build -t "[imageName]:[tag]" .
(imageName とタグは任意のオプションです。)- これらの名前を覚えておいてください。もう一度使用します
- 例として、 YourProjectNameServer と 01 があります。
- タグ 要素は、通常、サーバー インスタンスのバージョン管理に使用されます
- これらのタグは、後の手順で使用されます
- 忘れた場合は、ターミナルで Docker images と入力して imageName とタグを取得できます
- ターミナルで Docker images と入力して、Docker イメージの正常な作成を検査します。
- このターミナル ウィンドウを開いたままにしておき、後でコマンドを追加する予定なので、保存しておきます
- (後の手順では [Docker ターミナル] として示されます)
PlayFab Azure レジストリにコンテナー イメージをアップロードする
この時点で、PlayFab Azure Container Registryで Docker イメージをプッシュする準備が整い、PlayFab でビルドを起動するために使用できるようになります。
- PlayFab 開発者ポータルに移動する
- タイトルを選択します
- 左側の [マルチプレイヤー] タブを選択します
- 画面の右側にある [新しいビルド] を選択します。
- 名前を選択してください
- VM の種類を選択します。ThirdPersonMP プロジェクトの場合、Dasv4 (2 コア) で十分です
- [サーバーの詳細] で、[サーバーの種類] を [コンテナー] に、オペレーティング システムを [Linux] に設定します。
- [コンテナー レジストリにアップロード] ボタンをクリックします。
- ポップアップ表示されるウィンドウで、次の手順を実行します:
- このウィンドウに表示される [AzureUsername] を記憶してください。次の手順で複数回使用します
- Docker ログイン コマンドのコピー を選択します
- {Docker terminal} ウィンドウに戻る
- [Docker ターミナル] に Docker Login コマンドを貼り付けます。 このコマンドを実行すると、PlayFab で使用される Azure Registry にログインします。
- タイプ:
docker tag [imageName]:[tag] [AzureUsername].azurecr.io/[imageName]:[tag]
- タイプ:
docker push [AzureUsername].azurecr.io/[imageName]:[tag]
- PlayFab 開発者ポータルに表示されたAzureUsername と以前に設定した imageName およびタグを思い出してください。
- PlayFab Web サイトに戻り、[新しいビルド] ページの [サーバーの詳細] で、[コンテナー イメージ] の横にある [最新の情報に更新] をクリックします。
- 矢印ボタンをクリックすると、アップロードした Docker イメージとそれぞれのタグを表示して選択できます。
- [リージョン] ブロックで、近くのリージョンを選択し、スタンバイと最大の両方を 1 に設定します (テスト用のみ)
- [ネットワーク] ブロックで、[ポート名] フィールドを
gameport
に設定します- ゲームサーバーへの接続に使用されるポートを定義することが必須です
- Unreal GSDK には、このポートを自動的に読み取り、この値に従って Unreal Server のホスト ポートを内部的にオーバーライドするコードが含まれています
- このポートの名前は次の名前にする必要があります
gameport
- [ビルドの追加] を選択し、ビルドの状態が [配置済み] になるまで待ちます
次の手順
多くのユーザーは、ゲーム クライアントを接続してサーバーをテストする必要があります。
それ以外の場合は、Unreal GSDK プラグイン のメイン ガイドに戻ることができます。