はじめに
とりあえず素人ながらUnrealEngine5を触ってみたいとなりサーバーを立てて見ました。今回のゴールは、TPSのテンプレートをAWSに立ててオンライン通信をするところまでです。
まず以下のリンクをとても参考にしたので興味のある方は一緒に読んでいただけると良いと思います。
環境
- Windows11 21H2
- UnrealEngine 5.0.2
- Visual Stadio 2019 (UE5が推奨しているバージョンのため2019)
Epic LauncherからインストールしたUEだと専用サーバーはたてられない罠
実はEpicLauncherからインストールしたUnreal Enigineからだと専用サーバーをビルドできません。Epicのgithubからソースをダウンロードしてきてビルドする形になります。
まずは以下からEpicのgithub Organizationに参加しましょう。
Epicのサイト
それができたら以下のリポジトリが閲覧可能になるはずなので、クローンしてReadmeの手順通りにファイルを実行していけばビルド版のUEが使えます。
UEのソース
AWSなどに乗っけることも踏まえてLinuxでのクロスビルドをする想定があれば、この辺 からclangの推奨バージョンも入れておきましょう。自分は、UE 5.0.2を利用していたのでclang-13.0.1-basedを入れました。
TPSのテンプレートから準備していく
UEを開いてGames-ThirdPersonから今回のプロジェクトを作成します。C++版を選択する必要があるので注意です。
サーバービルドターゲットをセットする
まずは、Games/Source配下に[ProjectName]Server.Target.csというファイルを[ProjectName].Target.csからコピー作成します。Visual Studio上でコピーしようとすると、この辺のエラーでどうでもいいつまりをするので、ファイルエクスプローラー上でコピー・リネームして、Add-ExistingItemっから追加するとスムーズでした。
UnrealEngineのチュートリアルどおりに進めていきDevelopment Serverでbuildをすると[ProjectName]Server.exeというファイルができるます。
このファイルを使ってローカルで稼働確認ができるので[ProjectName]Server.exeを使ってローカルでサーバーが起動できるか確認してみましょう。(詳細は公式参照)
プロジェクトをパッケージ化
ここまできたらplatform Content/Device Management でOSを選択します。自分は、AWSのブログを参考にm6g.mediumのインスタンスを使ったので、LinuxArm64を選択しました。BuildTargetをServerにしてPackage Projectを選択すればパッケージ化できます。パッケージ化を行う場所がUE5だと変わってしまっているようで、公式チュートリアルをみると若干迷います。
AWSに乗せてサーバーに接続してみる
パッケージ化したものをAWSのブログの通りに、zipで固めてサーバー上に送って実行用のshellを叩けばサーバーは立ち上がります。
あとはローカルマシンでゲームを立ち上げ、@を押下した後、「Open {サーバーのIPアドレス}」と打てば、TPSのチュートリアルの画面が映り、見事ゴールです!
駆け足でしたが自分が詰まったところのメモを中心に、以上で「Unreal Engine5の専用サーバーモードでTPSのテンプレートを動かす」が完了です。