1. はじめに
vol.1にて、ローカルでの検証が完了したので、実際にAWS GameLiftにアップロードするまでの手順を記載していきます。
AWSのアカウント作成や、CLIコマンドの設定の仕方などは割愛します。
2. パッケージしたビルドをGameLiftにアップロード
アップロードする前に、起動するためのInstall.batを配置しておきます。
- パッケージ化したディレクトリに移動
- WindowsServerまで移動する
- install.batというファイルを作成
- install.batを以下に書き換える
Engine\Extras\Redist\en-us\UEPrereqSetup_x64.exe /install /quiet /norestart /log c:\game\UE5PrereqSetup.log
次にサーバーのビルドを以下のコマンドでアップロードします。(aws cliが実行できる状態が必須)
aws gamelift upload-build ^ --operating-system WINDOWS_2012 ^ --build-root %ビルドしたパス% ^ --name %ビルドにつけたい名前% ^ --build-version "0.01" ^ --region ap-northeast-1
GameLift上で、上記のようになっていれば準備完了。
ここからFleetを作成します。
3. フリートの作成
GameLiftのフリート
から フリートの作成
を選択します。
すると、フリート作成画面がでてくるので、選択していきます。
ビルドには先ほどアップロードしたビルドが選択できるので、選択します。
- フリート名 : 管理しやすい名前
- フリートタイプ:オンデマンド
- ビルド: 上記でアップロードしたゲームサーバーを選択する
- インスタンスタイプ: 無料のタイプ(c5.largeなど)
- ロケーション管理: 日本のリージョン(ap-northeast-1)
- 起動パス: {プロジェクト名}\Binaries\Win64{プロジェクト名}.exe 同時プロセス: 1
- ポート範囲: 7777
- プロトコル: UDP
- IPアドレス範囲: 0.0.0.0/0
- その他デフォルト値でよい
上記のような形で設定する。
CLIからも実行可能
aws gamelift create-fleet ^ --name {フリート名} ^ --description "{説明}" ^ --ec2-instance-type c5.large ^ --region ap-northeast-1 ^ --locations "Location=ap-northeast-1" ^ --fleet-type ON_DEMAND ^ --build-id {GameLiftのビルドID} ^ --certificate-configuration "CertificateType=GENERATED" ^ --runtime-configuration "GameSessionActivationTimeoutSeconds=300, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath={起動のexeパス}, ConcurrentExecutions=10}]" ^ --new-game-session-protection-policy "FullProtection" ^ --resource-creation-limit-policy "NewGameSessionsPerCreator=3, PolicyPeriodInMinutes=15" ^ --ec2-inbound-permissions "FromPort=7777,ToPort=7777,IpRange=0.0.0.0/0,Protocol=UDP" "FromPort=7777,ToPort=7777,IpRange=0.0.0.0/0,Protocol=UDP" ^ --metric-groups "EMEAfleets"
十数分ほど待つと、以下のようにfleetが準備完了になる。
4. 接続して検証
以下のコマンドでセッションを確立させます。
aws gamelift create-game-session --fleet-id {作成したフリートのID} --maximum-player-session-count 2
以下のように、fleet > ゲームセッション
から接続できているのが確認できればOK。
記載のある IP アドレス
をメモ
あとはローカルで実行したときと同様に、
2台のプレイヤーでEdior実行して、 Open {IP アドレス}
で実行。
同じマップに入っていれば成功となります。
あとは、マッチングのルール設定がなどがあるので、別途記載していきます。
参考
Amazon GameLift × Unreal Engines 5 でオンラインマルチプレイゲームを作る - ISID テックブログ