サンプルゲームで理解するAmazon GameLift #1 サーバアプリ(ビルド)アップロード編

前回はGameLiftのでサンプルゲーム使って簡単にマルチプレイヤーサーバーを構築しました。今回はGameLiftを利用するためのステップの1つであるサーバアプリ(ビルド)のアップロードに関する部分を深掘りしていこうと思います。

ゲームをプレイするまでのステップ

本題に入る前に少し全体的な話をします。GameLiftはセッションベースのマルチプレイヤーゲーム専用のゲームサーバーをデプロイ、運用、スケーリングするためのマネージドサービスです。そして、このGameLiftで構築したマルチプレイヤーサーバーでゲームをプレイするまでには4つのステップが必要になります。あまり意識していないかもしれませんが、前回はこのステップを簡易的に実行したことになります。

今回の記事は、この4つのステップの内の1つサーバアプリ(ビルド)のアップロードに関するものになります。

アップロードされたビルドは全体アーキテクチャ上のGameServer(フリート)にデプロイされることになります。GameServerとAmazon GameLift Serviceとの関係性がよくわからないという方もいるかもしれませんが、この部分の詳細についてはまた別の機会に紹介します。

ビルドのアップロード

それでは前回の実行結果を元にビルドのアップロードとは何なの?という部分を解説してきます。

前回「サンプルゲームサーバーをGameLiftにアップロードする」というオペレーションを実施しました。(実際にやったことはビルドに名前をつけただけですが。。)
すると、選択したリージョンのGameLiftにビルドが追加されます。

これは、AWSとして用意しているビルドが自身のアカウントのGameLiftにアップロードされたということを意味します。

通常のゲーム開発においては、Lumberyard等のゲームエンジン用いてゲーム開発者がこのビルドを作成し、そして、このビルドをAWS CLIを使用しGameLiftへアップロードします。以下のようなイメージです。


自身でビルドを作成した場合は、AWS CLIを使ってビルドをGameLiftにアップロードします。

 
#Windowsの場合
aws gamelift upload-build --name <your build name> --build-version <your build number> --build-root <local build path> --operating-system WINDOWS_2012 --region ap-northeast-1
#Linuxの場合
aws gamelift upload-build --name <your build name> --build-version <your build number> --build-root <local build path> --operating-system AMAZON_LINUX --region ap-northeast-1


ビルドアップロード時にはバージョン情報を付与することができるため、同一アプリケーションの複数のビルドをGameLift上で保持することがきます。

ビルドのパッケージ

ビルドに含めるべきファイルについても簡単にではありますが確認しておきましょう。

ビルドは大きく分けて以下3つのファイル群で構成されます。

  • ゲームサーババイナリ(対応言語:C#、C++)
  • install.bat(Windows) or install.sh(Linux)
    • Buildフォルダのルート直下に配置
    • インスタンスにコピーされた直後に一回実行(必要なバイナリのインストール/起動、必要なミドルウェアのインストール/起動)
  • 依存ファイル
    • 設定ファイルや依存するライブラリなど

ゲーム開発者の方はこの3つのファイル群を作成する必要があります。

まとめ

ビルドのアップロード、ビルドのパッケージについてイメージは掴めたでしょうか。次回はFleetを構成の部分を詳しくみていきたいと思います。