[レポート]AWS Dev on Cloud ゲーム開発環境のクラウド化によるベネフィット #AmazonGameTech #AmznGameTechJP

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS Dev on Cloud ゲーム開発環境のクラウド化によるベネフィット

2019年11月20日(水)にアマゾン目黒オフィスでアマゾンウェブサービス社の自社イベント「Amazon Game Developers Conference」が開催されました。

本記事は、セッション「AWS Dev on Cloud」をレポートします。

当日の資料

https://pages.awscloud.com/rs/112-TZM-766/images/AGDC2019_A-2.pdf (2019/12/13追記)

スピーカー

アマゾン ウェブ サービス ジャパン株式会社
Amazon Game Services & Studios Japan Engineering Manager
下田 純也 氏

シリコンスタジオ株式会社
テクノロジー事業本部 プロジェクト管理部 副部長 兼 営業企画部 副部長
向井 亨光 氏

セッション概要

ゲーム開発パイプラインをクラウド化する取り組みをシリコンスタジオ社と数ヶ月に渡り取り組んで参りましたが、予想以上に興味深い効果が出ることがわかりました。 その検証結果はもちろん、コスト効果や時短効果、さらには開発現場に及ぼす柔軟性等様々な効果を皆様と共有させていただきます。

https://aws-seminar.smktg.jp/public/application/add/426

レポート

これまでの開発パイプライン

アマゾン ウェブ サービス ジャパン株式会社
Amazon Game Services & Studios Japan Engineering Manager
下田 純也 氏

  • 高速なインテグレーション、安定したリリースでコスト削減につなげていただく
  • ナイトリーじゃなくてステージのライトのベイクお願いした時に翌日まで待ってくださいとかよくある

まずは開発パイプラインについて会場に質問

  • パイプラインは自動化されていますか?
    • いろんなコードの実行テスト、自動化できる
    • ステージングのビルド、パッケージングなども自動化可能
  • 全部が出来上がったあとにプロジェクトの実行環境をテストすることもできる
  • 社内でどんな方が運用、管理されているか
    • 1人で自動化を進めていて手を出せない状況になることも
  • 想定されるトラブル
    • ビルドマシンの故障
    • バージョン管理システムが壊れた、容量が溢れた
    • ビルドやパッケージングのリクエストが激増
    • すぐには復旧対応できないことも

ゲームビジネスのトレンド

  • コンソール
    • パッケージ売り切りからサービスモデルへ
  • モバイル
    • サービスモデルの開発現場でプロジェクトの大規模化、複雑化
  • エンジニア不足
  • パイプラインの高速化が求められている

  • Before

    • ビルドマスターによるビルド待ちでボトルネックが発生
    • 「明日まで待ってくれませんか」
  • After
    • クラウドを活用してビルドとテストなどを自由に個別にクラウドへ投げられる形に
    • こういうことをやるためにシリコンスタジオにお願いして検証していた

開発パイプラインのクラウド化による利点

  • スケーラビリティ
    • 10台から100台、1000台へ
  • 可用性
    • 物理的なトラブルやメンテナンスからの開放
    • 壊れた場合作ったパイプラインのコピーが簡単にできる
    • クラウド上にパイプラインが作れる
    • AWS上で稼働させる
  • クラウド化のメリット
    • サービスを柔軟に組み合わせられる
    • 複数の開発拠点との連携
    • テストチームとのビルドの共有
    • ビデオの共有だったり簡単にできる
    • テストの自動化もどんどんやっていきたい
    • ビルドした環境のテストもGPUが積んであるインスタンスでできる

まずは効果を証明する必要がある

  • シリコンスタジオ株式会社によるPoCの実施
  • ゲーム開発パイプラインの課題
    • 大規模化するプロジェクト
    • ビルドパイプラインに費やされる時間と労力
    • テストの手間の増大
    • こういう課題を解決できるのがクラウドではないか
  • クラウド化の目的
    • 開発者はクリエイティブな部分に注力できる
  • ゲーム開発パイプラインのAWS化全体像
    • クラウド上にスケール・並列化することで開発パイプラインに費やされる時間と労力を削減
    • デバイスファームにクラウドからデプロイできる
    • 実デバイスにビルドを投げて自動テストが可能
    • クラウド上に環境が全部乗ったあとにオフィスとVPNなどでつなぐ
    • オンプレとの比較
  • ゲーム開発パイプラインのクラウド化検証
    • コア数が多いマシンがあり、それに載せた時にどうなるのか
    • 一台のインスタンスでもかなりの速度が得られる
    • 組み合わせが柔軟にできる、スケールできるのが本当のメリット

シリコンスタジオ株式会社によるゲーム開発環境のクラウド化PoC

シリコンスタジオ株式会社
テクノロジー事業本部 プロジェクト管理部 副部長 兼 営業企画部 副部長
向井 亨光 氏

  • シリコンスタジオの紹介
    • 恵比寿に会社
    • ハイエンドのグラフィックワークステーションを開発していた会社からのスピンアウト

なぜシリコンスタジオなのか

  • ミドルウェアも開発
  • ゲームのサポートもしており知見をためている
  • 開発支援も長年やっている
  • 受託開発だと自動車など製造業の開発やツールのカスタマイズ
  • ネットワークではAPNセレクトテクノロジーパートナー
  • サーバ仕様設計から構築運営までできる

サービスと実績

  • ミドルウェア製品群
    • OROCHI4はゲームエンジン
    • 開発のサポートをしている
  • 受託開発実績
    • クオリティの高いフルCGの人を作る
  • オンラインサービス
    • AWS上でゲーム開発の環境を構築した実績がある
    • 設計から運用まですべて対応します

PoCの概要

  • Compiler〜Auto QA Testまで
  • 速度計測
  • 誰がやっても再現できるように手順書とイメージを準備

Compiler /IDE

  • IncrediBuild、FASTBuildによる並列化
  • 縦軸に処理時間と横軸にスレッド数のグラフ
  • 規模が大きくなると結果が変わる
  • 96スレッド動かすところが手軽に並列化できている
  • パッケージを構成してバッチファイルを作って計測

Shader

  • シェーダーのテストターゲット
  • 並列化環境
  • 比較対象は同じ
  • 単nodeではいい感じにスケール
  • FASTBuildは正しく動作させるまでには至らず
  • AWSと相談して今回は断念

Bake

  • ライトマップベイクのテストターゲット
  • G3のインスタンス、CPUを載せているR5のインスタンスを使用
  • 結果、いい感じにスケール
  • 単nodeでも58分とかで終わっている
  • 並列化により高速にできる
  • 広大なアセットだと処理時間の短縮が図れる

Enlighten

  • プEnlightenのプリコンピュート性能をAWS上で計測
  • かなり並列化性能が出ている
  • 288スレッドくらいで頭打ち
  • ステージ数が多い場合はもっとスケールが可能

Packaging

  • パッケージングのテストターゲット
    • Unreal Engine 4.22のサンプル Paragon Agora
    • コア数によってかなり並列化性能が出る

Auto QA Test

  • オートテストのテストターゲット
  • 本PoC用に新規作成した検証用プロジェクト
  • テストするステージを16準備
  • 各ステージでのダミーのテストを実施
  • 並列化、スケールを確認

PoCで分かったこと

  • 手軽に並列かできるハイスペックEC2インスタンス
    • ノード分散を考慮せず96スレッドで動作可能
  • インスタンスのクローン機能が有用
    • ゲーム基板用の開発環境も簡単に作成
    • 速度を測る時間を短縮する目的で実際に使用
  • デスクトップ環境としてのGPU搭載EC2インスタンスが有用
    • Unteal Editorなどはストレス無く使用可能
    • 今回はエンジニアレベルの使用
    • G3のインスタンスを使ってストレスがなかった

今後さらに検証できること

  • Auto QA Test
    • ステージ単位以上に分散
    • テストを分けてスケールさせる
    • AIを使ったAuto QA TestのAWS上での動作検証
    • GPGPUが可能なインスタンスを活用した開発パイプラインの検証
  • イテレーションの検証
    • アセット更新→ベイクの繰り返し
    • かなりのイテレーションが発生
    • ボトルネックがどこか
    • 何を解決しないといけないのか

効率的な開発環境を目指すために

  • 実開発環境でPoC実施
    • 実データに最適なノード構成の検証
    • 開発パイプラインボトルネックの確認と改善
  • 効率化のための環境の構築
  • ゲームのタイトルによって規模が変わってくる
  • ある程度目星をつけてから開発に入るとよい
  • 構築が必要になってくる
  • AWSと一緒に最適なソリューションを提供する
  • ぜひお問い合わせを

他のPoC

Perforce on AWS

  • Perfove社とAWSとの協力でウェビナーやドキュメントをリリース
  • Perforce Proxyにより速度向上、転送コスト削減
  • 並列化オプションによりオンプレと遜色ない速度を実現
  • この結果を元にPerforceのAWS上への構築支援もできます

Perforce Proxyと並列化オプション

  • Perforce Proxyを利用しsync/submitを4GBのファイル群でテスト
  • 本来は逐次レイテンシーが挟まるが、マルチスレッドだとレイテンシーが発生しているはずの時間にもコマンドの受け取りなどができる
  • 1日100GBのデータ転送なら30日間で$342=約40,000円(2019/9/4現在の東京リージョンでの価格)

Unity開発のクラウド活用

  • 現在PoCを計画中
    • コードのビルド
    • AssetBundle
    • 他にも気になることはありますか?

パイプラインのAWS化ソリューションの利点

  • パイプライン
    • 自動化可能な柔軟で高速な開発パイプライン
  • デプロイ
    • 短時間でデプロイ可能、将来のサービスモデルへの以降に対応
  • ベイク
  • 管理
  • 俊敏性
  • スケーラビリティ
    • 10台、100台、1000台のスケールが可能
  • QA
    • 自動テストやプレイ内容をGインスタンス上で実行
    • ビデオデータとして残すことも
  • 高度なVCS
    • VCSでのソースの共有も高速回線で繋ぎつつ並列化
    • スタジオごとにProxyを建てることで開発パイプラインと並列に同期
  • 複数拠点化
    • Amazon WorkSpacesで外部からセキュアに接続
    • 各社のネットワークに持ち出せないようにもできる
    • モデルのポリゴンデータだけでなくマテリアルも作って欲しい場合なども使える
    • すでにソニー銀行様の事例がある

Pipelineを自由に組み合わせて呼び出せる柔軟性

  • 各パイプラインをAWS CloudFormationでのテンプレ化やCodePipelineなどから自由に組み合わせて呼び出す
  • 複数並列で起動
  • 導入の相談やシリコンスタジオのご紹介もできます

まとめ

以前よりゲーム開発が複雑で大規模なものになる一方で、エンジニア不足はこれからさらに深刻になります。さらに効率の高いゲーム開発を目指す方は、開発環境のクラウド化によるビルドやテスト、パッケージングなど様々な工程の自動化を検討してみてはいかがでしょうか。