AWS Black Belt Online Seminar AWS for Game Developers アマゾンウェブサービスジャパン株式会社ソリューションアーキテクト畑史彦 2017.05.11
自己紹介 名前 畑 史彦 所属 アマゾン ウェブ サービス ジャパン株式会社 メディア エンターテインメント ソリューション部 ソリューションアーキテクト 好きなAWSのサービス Amazon WorkDocs, Amazon GameLift
内容についての注意点 本資料では 2017 年 5 月 11 日時点のサービス内容および価格についてご説明しています 最新の情報は AWS 公式ウェブサイト (http://aws.amazon.com) にてご確認ください 資料作成には十分注意しておりますが 資料内の価格と AWS 公式ウェブサイト記載の価格に相違があった場合 AWS 公式ウェブサイトの価格を優先とさせていただきます 価格は税抜表記となっています 日本居住者のお客様が東京リージョンを使用する場合 別途消費税をご請求させていただきます AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
ゲームの進化 かつては1つのゲーム端末を大勢で取り囲む アーケードゲーム 家庭用ゲーム機 モバイルゲーム NW通信 マルチプレイヤー コミュニティ 実況 eスポーツ コミュニティ参加型
複雑化 高度化 大型化するゲーム開発 プラットフォームの多様化 :PC コンソール モバイル テレビ HMD など ゲーム開発の最もコストのかかる部分はコンテンツの制作 クリエイティブのクオリティは年々上昇 2016 年トップゲームの 91% がマルチプレイヤーゲームしかし バックエンドのエンジニアは採用は難しい 幅広いユーザにリーチし ユーザのエンゲージメントを高める仕組みの必要性 Client Creativity Cloud Community 開発プロジェクトの大規模化と それにともなう開 $ Commerce 発費の高騰 ビッグタイトル依存の収益構造
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
Amazon Lumberyard 現在のバージョンは beta1.9 Cloud Client Community Lumberyard は cloud と crowd の力を活用し AWS と Twitch を深く統合させた無料の AAA ゲームエンジン
AWS と非常に深く統合 共通のネットワーク接続 を簡単に作成 1 マルチプレイヤー ソーシャル 分析 動的コンテンツや ライブコンテンツの更新 インフラを構築するためにバックエン ドのエンジニアを雇うのではなく イノベーションに専念してください 2 新しい 素晴らしい体験 手続き的なゲームプレイ 複雑な人工知能 より多くのプレーヤーを持つ より豊 かで大きな世界 procedural audio レンダリング ビッグデータ 機械学 習 分散コンピューティング 大規模なコンピュートとストレージ マ ネージドサービスにより 開かれる新し い可能性
クライアント - エンジンプラットフォーム PC PlayStation 4, Xbox One Android, ios VR Windows Vista, 7, 8, 10 support at launch Available by request from verified developers Oculus, Vive, Morpheus Supported
Lumberyard Editor の基本機能 Asset Browser Layer Editor LOD Generator Texture Browser Material Editor Geppetto (キャラクター アニメーションツール) Mannequin Editor Flow Graph AI Debugger Track View Editor (ヴィジュアルプログラミング) Audio Controls Editor Terrain Editor Terrain Texture Layers Editor Particle Editor Time of Day Editor Sun Trajectory Tool Composition Editor Database View UI Editor
2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
レンダリング機能 HDRサポート 物理ベースシェーダー ダイナミックライティング ios Metal + GMEM on iphone 5S以降 OpenGL ES 3.1 on Android SDKs 19-23 VR, PC, モバイル, コンソールゲームをサポート Preview at GDC DX12 Order-independent transparency (OIT) Temporal and specular anti-aliasing (TXAA) Specular anti-aliasing (鏡面アンチエイリアス)
2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
モバイルサポート ios iphone 5S 以降のモデル Metal と GMEM による高性能レンダリング Android Samsung Note 4 以降のモデル OpenGL ES 3.1 と Android SDK 19+ 1クリックで Android へデプロイ 1クリックで AWS Device Farm へデプロイ 最小パッケージサイズは 25MB以下に ジェスチャーとタッチコントロール用のプラグイン
2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
VRサポート サポート Oculus, Vive, OSVR, PSVR エディタからのインスタントVRプレビュー モジュラーVRフレームワーク - 新しいHMDを簡単に追加 360度ビデオ再生 触覚フィードバック 360度オーディオ用のプラグイン
2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ワークフロー Windows エディタ 新しいレイアウトとアーキテクチャ 新しい Component Entity System が非エンジニアにあ たらしい権限を C++, Lua, Visual Scripting リアルタイムアセットパイプラインとインスタントゲーム 編集 キャラクタ & アニメーションツール UIエディタ FBXインポートパイプライン シネマティク ス エディタモデリング 地形システム 時刻システム パーティクルシステム
使いやすさとイテレーション高速化のためのスッキリとしたデザイン フルカスタマイズ可能 プロフェッショナル UX チームがユーザビリティ学習をリード
Gem Lumberyard のゲームプロジェクトを拡張するた めのコードやアセットが含まれているパッケージ 現在 Lumberyard にはすぐに利用できる以下の gemが用意されている 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Boids Gem Camera Framework Gem ChatPlay Gem Cloud Canvas Cloud Gems Cloud Canvas Gem Game Effect Gem GameLift Gem Gestures Gem In-App Purchases Gem Input Management Framework Gem Lightning Arc Gem Metastream Gem Multiplayer Gem 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Physics Entities Gem Process Life Management Gem RAD Telemetry Gem Rain Gem Sky Clouds Gem 空の雲や天候エフェクトのGem Snow Gem Tornadoes Gem Twitch Gem UiBasics Gem UiDemo Gem User Login Default Gem Video Playback Gem Woodland Asset Collection Gem
Modular Gems システム Lumberyard のゲームプロジェクト間で コードとアートアセットを共有するため の管理インフラストラクチャ プロジェクトのコンテンツの追加と削除 が容易にできるため コアのエンジン部 分は必要なテクノロジーのみに Lumberyard の API とイベントにアク セスすることで 独自の Gem の作成も 可能 Cloud Canvas も Cloud Canvas Gem というかたちで Lumberyard に統合さ れている
GridMate Lumberyard のネットワー キングサブシステム 効率的な帯域幅の利用と低レ イテンシー通信 GridMate のレプリカフレー ムワークを使用すると ネッ トワーク経由でオブジェクト を同期 セッション管理は主要なオン ラインコンソールサービスに 統合されている
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
Amazon Lumberyard Cloud Canvas AWS のクラウドリソースの管理とスクリプト生成に関する IDE サポート
Cloud Canvas クラウドのリソースを利用したゲーム 機能をIDE上から構築 管理する バックエンドの経験がほとんどないエ ンジニアでも容易にニュースフィード などのオンラインゲームの機能を構築 できる ビジュアルスクリプティングインター フェイスを搭載 Lumberyard から Cloud Canvas Gem として提供され 簡単に利用可能
クラウドのリソースを利用したゲーム機能? クラウドセーブ ニュースティッカー リーダーボード & アチーブメント ダウンロード可能コンテンツ キャラクターの状態の保存 & 所持品管理 ユーザ ジェネレイティッド コンテンツ ( UGC ) デイリーメッセージ & デイリー チャレンジ サーバ認証トランザクション
Cloud Canvas から利用するAWSリソース Amazon DynamoDB 高速かつフレキシブルな NoSQL データベースサー ビス プレイヤーのデータの保存などに利用可能 テーブルという 2 リソースを利用
Cloud Canvas から利用するAWSリソース AWS Lambda クラウドベースでコードを実行 サーバの運用なし で処理を実行可能 Python, Node.js, Java, or C# を使用 ファンクションという リソースを利用
Cloud Canvas Cloud Canvas は Lumberyard とクラウドの間を糊 付けするような役割 Cloud Canvas リソースマネージャ によってクラウド のリソースを定義し管理 Cloud Canvas リソース マネージャ Lumberyard AWSクラウドのリソース
Cloud Canvas リソースマネージャ Lumberyardエディタ上でAWSリソー スを定義 開発環境やテスト環境のためのAWSリ ソースのスタックを生成 リソースマネージャが提供する定義を 使ってローカル作業 実際のクラウド上のAWSリソースを作 成 使用しているAWSリソースを維持 これらのリソースへの安全なアクセス
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
Amazon Lumberyard Cloud Gems 一般的なクラウド接続機能を構築するためのフレームワーク Framework
Cloud Gems Framework 1人のエンジニアが わずか30分で クラウドコネクティッドなオンライ ンゲーム機能を構築可能 Cloud Gems 1. 2. 3. 4. デイリーメッセージ リーダーボード 動的コンテンツ配信 ユーザアカウントと認証 New! @ V1.9 Cloud Gem Portal で チームの誰 もが Cloud Gems で作成された機能 の管理ができる
Cloud Gems クラウドコネクティッドなオンラインゲーム機 能を提供する Gem バックエンドおよびクライアント機能も含めて 機能をプロジェクトにインクルードするために 必要なすべてが含まれる 完全なソースコードを同梱 独自の開発やアイデアを実現するためのサンプ ル使用できる 十分に完成された本番利用可能 な機能が提供
Cloud Gem Portal Cloud Gem は あなたのゲームのクラウドデータを 管理するために Cloud Gem Portal というアプリケー ションを作成する Cloud Gem Portal アプリケーションは あなたの AWSアカウント上にホストされ カスタマイズも可 能 実体は Amazon S3 に配置された HTML/Javascript とAmazon API Gateway, AWS Lambda からなる サーバレスアプリケーション Cloud Gem Portal を使ってクラウド機能を視覚的に 管理 メッセージのスケジューリング 動的コンテンツの公開 チート行為によるリーダーボードスコアの削除 など Cloud Gem Portal
デイリーメッセージ - Cloud Gem Portal 画面
デイリーメッセージ - アーキテクチャ サービス API メッセージを取得 メインテーブル サービス API メッセージを追加メッセージを編集メッセージを一覧メッセージを削除 uniqueid message starttime endtime priority ゲームクライアント Cloud Gem Portal
Lumberyard IDE のシステム要件 Windows 7 64ビット版 クアッドコアプロセッサ 3GHz以上 RAM 8GB以上 DX11 2GB以上 またはそれ以降の互換性のあるビデオカード Nvidia ドライバーバージョン 368.81 または AMD ドライバー バージョン 16.15.2211 グラフィックスカード 60GB以上の空きディスク容量 Visual Studio 2013 アップデート4またはそれ以降のバージョン Lumberyard エディタ やツールのコンパイルに必要 Visual Studio 2013 の Visual C++ 再頒布可能パッケージ http://docs.aws.amazon.com/ja_jp/lumberyard/latest/userguide/setting-up-system-requirements.html
Lumberyard の料金体系とライセンス 無料 ライセンス Lumberyard 単体での先行投資 追加料金無し Cloud Canvas などを利用した場合は 利用したAWSサービスの料金が発生 お客様ご自身で所有および運用されているハードウェアは ゲーム用に利用 可能 ネットワーク接続しない ローカルオンリーなマルチプレイのゲームでも AWSへの接続は必要ない Steamworks Xbox Live PSN Apple Game Center Google Play Games などのコンソールソーシャルサービスへの接続は可能 その他のAWSで代替できるような外部のサービスには使用できない オープンソースではない 修正 改修は可能だが 外部への公開はできない https://aws.amazon.com/jp/service-terms/
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
Amazon GameLift デプロイ 運用 そしてセッションベースのゲームを管理
Amazon GameLift セッションベースのマルチプレイヤー ゲーム専用のゲームサーバのマネージ ドサービス ゲームサーバーをデプロイ 運用 ス ケーリング ゲームで実際に使用するコンピュー ティングリソースと帯域幅の料金のみ
マルチプレイヤーゲームを 自前で構築するとなると 4人以上エキスパートエンジニアを採用し 以下の仕事に数千時間を注ぎ込む 設計 UIダッシュボードの構築 プロトタイプの構築 リリース 本番環境の 複数回に渡る 構築 24時間365日のサービスカバレッジ スケーリングに関わるたちの悪い問題を デバッグし修正 $$ コストの最適化作業
Amazon GameLift なら 1. AWS アカウントを作成 2. サーバのバイナリをアップロード 3. スケーリング 4. 遊ぶ
Amazon GameLift におけるビルド ビルド 開発者が作成した サーバのバイナリ GameLift に アップロード
Amazon GameLift におけるフリート フリート 単一のビルドが デプロイされた状態 プレイヤーが それらに接続 1 つ以上の EC2 インスタンス
Amazon GameLift におけるビルドとフリート 開発者 フリート プレイヤー EC2 Instance EC2 Instance Game A Game B ビルド
開発者のワークフロー $ シンプルな開発環境を構築 リリースに向けてスケーリング 0 ダウンタイムの更新を実行 コストの最適化を実施
シンプルな開発環境 AWS アカウント Lumberyard のゲーム LAN 上で通信しあうクライアントとサーバ
シンプルな開発環境 : 4 ステップ 1 2 3 4 ビルドをアップロード フリートを作成 ゲームクライアントを設定 プレイヤーと接続
デプロイ プレイヤーからは透過的 進行中のゲームプレイに影響しない Alias フリートへのプレイヤーの流入を制御 解決 すべきフリートを Alias によって特定 ゲームのクライアントは Alias の uuid を使用して GameLift に接触
デプロイ Build A Fleet A Alias Client 開発者 新規プレイヤー
デプロイ Build A Fleet A Alias Client 開発者 新規プレイヤー Build B Fleet B
デプロイ Build A Fleet A Alias Client 開発者 新規プレイヤー Build B Fleet B
セッション管理 稼働している世界中のゲームサーバーを継続的にスキャンし プレイヤー からのゲーム参加リクエストをマッチング 低レイテンシーのゲームサーバーが利用できない場合 プレイヤーの近く にキャパシティを自動追加する 最小のレイテンシーで待機プレイヤーがゲームに参加できるように調整 ゲームセッション/プレイヤーセッション
リアルタイムで情報を把握 リアルタイムに下記メトリクスを取得可能 Game active game sessions game sessions that are activating current player sessions available player sessions Hardware CPU utilization (%) Disk read bytes Disk write bytes Disk read ops Disk write ops Network in Network out 最大2週間保存
世界展開 - 9 リージョンから低遅延のプレイ体験を配信 EU (Dubli n)
オートスケーリング - スケーリング ポリシー ルールベースの自動的なスケーリング リアルタイムな利用可能量に基づくスケールの調整 プレイヤーセッション ゲームサーバ インスタンス
オートスケーリング - キャパシティを必要な量に調整 GameLift ウェブコンソール
オートスケーリング 精緻なキャパシティ調整によるコストの最適化 精緻なキャパシティ調整 インフラストラクチャ費用 Wasted $ 事前の支払い 時間
従量課金の料金体系 https://aws.amazon.com/jp/gamelift/pricing 時間単位のインスタンス使用とGB 単位の帯域幅使用料 毎月 連続稼動する一定量のサー バーを購入するという従来のアプ ローチではなく 使用した容量だ けを支払う 一般的なマルチプレイヤーゲーム では 最大サーバー容量の平均 50 しか使用されない オートスケーリングによるコスト の最適化
システム対応状況 Amazon GameLift Server SDK サーバーOS クライアントデバイス クライアントプログラミング C++ および C# バージョンと Unreal Engine プラグインが含まれる Windows Server 2012 R2 または Amazon Linux で稼働するゲーム サーバーをサポート Android FireOS ios Mac PC PlayStation 4 Xbox One など の主要なゲームプラットフォームをサポート AWS SDK 内の Amazon GameLift の機能を使用 AWS SDK は C++ Java.NET (C#) Go Python Ruby PHP JavaScript その他の言語で利用可能 http://docs.aws.amazon.com/ja_jp/lumberyard/latest/userguide/setting-up-system-requirements.html
GameLift 採用事例 Proletariat Inc. Proletariat Inc. のチームの選択肢は 非常 にシンプルなものでした 多数のエンジニア を雇って自前のクラウドインフラストラク チャを数か月かけて構築するか Amazon GameLift を使って数分でデプロイするか という選択肢です Seth Sivak 氏 Proletariat Inc. CEO Proletariat はわずか5日間で Amazon GameLift を使用し 自信を持って TwitchCon 2016に Streamline をリリース https://aws.amazon.com/jp/blogs/news/streamline-case-study-amazon-gamelift/
Amazon GameLift がもたらす価値 セッションベースのマルチプレイヤーゲームをホストするためのマネージドサービス プレイヤーの需要に合わせて必要な量に自動でキャパシティ調整 リージョンをまたいでフリートの状態を追跡 マネジメントコンソールでは ゲームのパフォーマンスをリアルタイムでモニタリング 低遅延のゲーム体験を世界中に配信 0 ダウンタイムでライブアップデートをリリース 使った分にだけ支払い
Unreal Engine Unityを含むすべての C++ と C# ゲームエンジンをサポート Amazon Lumberyard だけではなく Unreal Engine Unity そして カスタムの C# と C++ ゲームエンジ ンにも対応 XBox One および PS4 用に開発 作成 されたゲームをサポート C# と C++ で利用できる新しい Amazon GameLift Server SDK を提供 https://aws.amazon.com/jp/about-aws/whats-new/2017/02/amazon-gamelift-supports-unity-unreal-engine-and-custom-c-sharp-and-c-plus-plus-engines/ https://aws.amazon.com/jp/blogs/news/launch-amazon-gamelift-now-supports-all-c-and-c-game-engines/
ローカルデバッグ環境と ゲームセッションキューの改善 Amazon GameLift Local はクライアントサイド のデバッグツール ローカル開発環境の Amazon GameLift API をエ ミュレート 利用料金が発生することなく 数秒でコードの変更 を確認することができる また ゲーム セッション キュー内のプレイヤーが 最も低レイテンシとなるリージョンを待機する時間 の最大値を設定可能に 待ち時間を超えると 次に最も良いリージョンを探す https://aws.amazon.com/jp/about-aws/whats-new/2017/04/amazon-gamelift-local-and-game-session-queue-improvements/
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
Twitch 配信者と視聴者を繋ぐ
Twitch ゲーマー ゲーム文化 クリエイティブな芸術活動のための 世界トップレベルのソーシャルビデオプラットフォーム / コミュニティ 毎日 970 万人のアクティブユーザー毎月 200 万人以上のユニーク配信者視聴者 1 人あたりの1 日の平均視聴時間 106 分単一イベントでの最大同時視聴者 200 万人以上 https://www.twitch.tv/p/about
新しいゲームプレイ体験 2 1 3 配信者 ゲーム 視聴者
Twitch との統合 Twitch ChatPlay 視聴者が ゲームに影響を与えるチャットコマンドを入力することができる Twitch JoinIn 配信者が 視聴者をゲームに招待できる Twitch Metastream ミニマップなどの 動的なリアルタイムグラフィックのオーバーレイ表示を追加することができる https://aws.amazon.com/jp/lumberyard/details/#build-live-multiplayer-features-in-minutes#reach-and-engage-fans-on-twitch
Twitch Metastreamの例- Breakaway https://playbreakaway.com/news/post/metastream-basics
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
ゲームの販売
Android アプリストア Amazonコインを決済にご 利用いただくと アプリ内 課金が最大10%おトクに Amazonコイン 1コイン1円分でアプリ内 課金や有料アプリの購入に ご利用いただけるAmazon Androidアプリストア専用 のバーチャル通貨
アジェンダ ゲームの進化とゲーム開発 Amazon Lumberyard Cloud Canvas Cloud Gems Framework Amazon GameLift Twitch amazon.com まとめ
Amazon Gamer Services ゲーム開発者向けの End-to-End ソリューション Cloud Canvas, Cloud Gem Framework CLIENT/CREATIVITY COMMUNITY Amazon GameLift CLOUD Game Services COMMERCE
まとめ インフラの管理に労力を割くのではなく コンテンツ制作とゲームを面白く することに労力を集中 Amazon GameLift Cloud Canvas, Cloud Gem Framework
参考資料 ゲーム開発者のための AWS https://aws.amazon.com/jp/gaming/ ゲーム開発者のための Amazon https://aws.amazon.com/jp/gamedev/ Amazon Lumberyard https://aws.amazon.com/jp/lumberyard/ Amazon GameLift https://aws.amazon.com/jp/gamelift/ Lumberyard & Amazon GameLift Blog https://aws.amazon.com/blogs/gamedev/
オンラインセミナー資料の配置場所 AWS クラウドサービス活用資料集 http://aws.amazon.com/jp/aws-jp-introduction/ AWS Solutions Architect ブログ 最新の情報 セミナー中のQ&A等が掲載されています http://aws.typepad.com/sajp/