[レポート]オンラインゲームをつくるために考えるべき10のこと Lv. 100 #AmazonGameTech #AmznGameTechJP

オンラインゲームをつくるために考えるべき10のこと Lv. 100

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

本記事は、セッション「オンラインゲームをつくるために考えるべき10のこと Lv. 100」をレポートします。

スピーカー

アマゾン ウェブ サービス ジャパン株式会社 ソリューションアーキテクト 吉田 英世氏

セッション概要

オンラインゲームはかつてない広がりを見せており、マルチプラットフォーム、グローバル展開、マルチプレイ、リアルタイムなどさまざまな要件を満たすためには、これまで以上にたくさんの技術をうまく活用する必要があります。AWSにはオンラインゲームを支える多くのサービスがあり、すでにたくさんの利用実績があります。本セッションでは、プロデューサー/ディレクターの方々向けに、実際のAWSの利用方法を例に挙げてオンラインゲームをつくるために抑えていただきたいポイントを解説します。

レポート

  • グローバルに展開されたクロスプラットフォームのマルチプレイオンラインゲームに対してAWSで構築/運用するための10のポイントを解説
  • ゲームに関係する非エンジニア向け
  • マルチプレイヤーオンラインゲームの構成:共通API/チャット/マッチメイキング/ゲームサーバー群
  • 既にこの分野で成功された企業様もAWSを活用している
  • PLAYER UNKNOWNS' BATTLE GROUNDS - PUBG様
  • Fortnite - Epic Games様:800万人の同時接続を実現した

はじめに

  • AWSグローバルインフラストラクチャ
  • 22のリージョン/69のアベイラビリティゾーン/200のPOPによって構成されている
  • AWSのグローバルネットワークで接続されている
  • ネットワークの揺らぎが小さい
  • AWSのサービス:165を超えるサービス/ゲームに特化したサービス
  • 特別な業界に特化したサービスはゲーム業界敷かない

1.クロスプラットフォーム

  • プラットフォーム毎に独立:A社向けタイトル/B社向けタイトル/PC向け/モバイル向け
  • クロスプラットフォームを構成する必要がある
  • グローバルインフラストラクチャを活用する

2.リアルタイム性

  • ゲーム性によってリアルタイム要件が異なる:ターン性カードゲーム/リアルタイムFPSゲーム
  • リアルタイムゲームの方がデータ量も多く、リアルタイム性も高い
  • リアルタイム性の向上施策:通信を高速化する/許容できるレイテンシ内でマッチメイクする/ユーザに近いロケーションにゲームサーバーを配置する/フレームレートを下げる、画面サイズを縮小する
  • リージョン数とレイテンシの関係:プレイヤーにより近いところに置くとレイテンシが低くなる
  • 最新データでは中央値41ms:2018/5/1-10有る顧客と236,000人のプレイヤーで9のリージョンのサーバーに接続したときのレイテンシ
  • AWS Global Accelerator:ゲームに重要なレイテンシの向上ジッター(揺らぎ)を改善
  • AWS Global Acceleratorの効果:米国から日本、東南アジアなど繋いだ場合、通常時より明らかに改善

3.通信方式

  • P2P vs 専用サーバ
  • P2Pはサーバが不要
  • 専用サーバーは通信が安定し、障害対応が簡単で、チートに強い
  • メリットデメリット、ゲーム性に応じて考える
  • For HonorはP2Pから専用サーバ(GameLift)へ移行
  • ホスト側がレイテンシ優位になる問題があり、ホストが抜けると中断などがあった
  • 専用サーバににより中断が無くなり、ネットワークの安定性が向上された

4.全体構成

  • 地域別に独立したシステムを配置
  • 特に中国リージョン
  • レイテンシーがシビアなゲームに効果的
  • Amazon GameLift:マルチプレイオンラインゲームの開発を加速し、運用コストも削減
  • マッチメイクや世界中のリージョンへの管理をマネージドで提供する
  • Amazon GameLiftへ送られるリクエストにはプレイヤーのレイテンシー条件なども含まれる
  • 条件を考慮して、それぞれのプレイヤーがFleetと呼ばれるサーバー群に振られる
  • 1から作ると大変

5.コスト最適化

  • AWSが継続的に取り組んでいるもの/お客様主体で継続的に取り組んで頂くもの
  • AWSによる値下げ(2006年から76回以上)・コスト削減提案
  • 利用状況に応じたリソース配分/オペレーションの自動化/各種料金プランの適用
  • EC2インスタンス向け2つのおすすめプラン:Saving Plans/スポットインスタンス
  • Saving Plans:1年もしくは3年で1時間当たりの利用額をコミット
  • Saving Plans:購入額からリージョンやインスタンスファミリーのEC2インスタンス、Fargate等幅広い対象に適用される"Compute"プラン
  • Saving Plans:特定のリージョンとインスタンスファミリーのEC2インスタンスに適用される"EC2インスタンス"プラン
  • Saving Plans:全額前払いもしくは一部前払いが可能
  • スポットインスタンス:EC2インスタンスの空きを効果的に使う最大90%オフ
  • 事例:ディー・エヌ・エー様:ステートレスのスポット利用率100%/ステートレスサーバーのコスト60%削減/スポット中断によるサービス停止無し

6.セキュリティ

  • AWSにとってセキュリティは最優先事項:堅牢なセキュリティを証明する各国の第三者認証/認定の取得
  • グローバル展開でも非常に重要
  • AWSを使えば認証は既にクリアしているというのは武器になる
  • DDos対策の課題:オンプレでは実装が困難/体制の整備が必要
  • AWS Shield:マネージドのDDoSの保護サービス - Standard(無料)/Advanced(有料)
  • 機械学習によるチート対策:異常なプレイを行っているユーザをリアルタイムに検知
  • 行動データ - 機械学習のモデルを作成(学習) - 機械学習のモデルで判定(推論) - プレイヤー
  • ユーザーが行動している以外の値を外れ値として処理する

7.IDの統合管理

  • プレイヤーとIDの関係
  • ゲームプラットフォームに関係なくユニークなIdを持つ必要がある
  • 分析に使ってレコメンデーション・キャンペーンへ活用する事が出来る

8.データ活用

  • 現在のゲームにおけるログ活用
  • DAUや課金などメトリクスを確認
  • 問い合わせをベースにログを検索
  • AWSのゲーム分析:いち早く分析データを取得し運営に反映することが重要
  • 自身で構築せず機械学習で需要予測をする事が出来る
  • バッチ分析ではQuicksightが使いやすい
  • ニアリアルタイム分析
  • Epic Games のデータレイク

9.サービスレベル目標(SLO)

  • サービスレベル目標(SLO)をしっかり作る
  • サービスレベル指標(SLI)⇒ SLO
  • SLOを設定することのメリット:曖昧な要求では無くみんなが共有する数値目標を設定する

10.Amazonによるご支援

  • 技術サポート/ビジネスサポートを上手に使う
  • 技術サポート:ソリューションアーキテクトによる技術相談・無償/有償のオンライントレーニング・有償のクラスルームトレーニング
  • ビジネスサポート:Amazon.co.jpによるビデオゲーム販売・アマゾンアプリストアによるモバイルゲームの販売・Twitch活用

まとめ

  • クロスプラットフォームのマルチプレイ音ライゲームはAWSを使って低リスクで安全に直ぐにグローバル展開できる
  • ゲーム開発に集中
  • Amazonは支援する

10のTipsということもあり、基本的な内容と、新サービスSaving Plans、ゲーム特化サービスが混ざって、内容としては多いですが、良い味付けの仕上がりになっていたかと思います。