Cloud Spanner がゲーム会社のゲーム拡大に適している理由
Google Cloud Japan Team
※この投稿は米国時間 2022 年 11 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。
世界中の組織が Cloud Spanner を選ぶ理由は、無制限のスケーリング、強整合性、そして最大 99.999% の可用性にあります。特に、Embark Studios のようなゲーム会社では、同時実行やロード バランシングのような分散システムに関する多くの課題をスケーリングし、解決するのに Spanner を活用しています。
最近の PwC レポートによると、世界のゲーム産業は、ここ数年で大きな成長を遂げている分野の一つであり、その産業規模(e スポーツを除く)は、2026 年までに 3,210 億ドルに達すると見込まれています。過去 3 年だけ見ても、プレーヤーの数は 5 億人増え、世界規模のトータルでは 27 億人にものぼります。
ゲーム プレーヤーは、多様なゲームのプレイ、プレーヤー同士のコミュニケーション、ゲームシリーズの映画の鑑賞や関連グッズの購入といったゲーム外のアクティビティの参加など、さまざまな充実したエクスペリエンスを求めているのです。プレーヤーの期待はますます大きくなり、進化しています。最先端のグラフィック、臨場感あふれるストーリー展開、世界規模でのマルチプレーヤー ゲーム インタラクションに加え、言うまでもなく 100% の稼働率など、多くのことが求められるようになっています。こうした需要に応えるには、適切なデータベースが不可欠ですが、ゲーム開発者がデータベースを選択する際に考慮しなければならない要素は数多くあります。
適切なデータベースを選択する重要性
インタラクティブ性が高いマルチプレーヤー ゲームを制作するのは簡単ではありません。これは実際、分散システムにおける、最も興味深い問題の一つであるといえます。ゲームに必要とされるのは、高い稼働時間、低いレイテンシ、オンデマンドのスケーリング、地理的な各ロケーションで一貫性のあるエクスペリエンスです。また、洗練されたワークフロー、特別なイベントやトーナメント、ゲーム内購入、ゲーム内での体験など、多くのことをサポートしなければなりません。次なるヒット作品を作るにしても、インディーズ作品を作るにしても、リアルタイムでのエクスペリエンスを求める数百万人のプレーヤーの需要をまかなうだけのキャパシティを予測するといったような、設計上の課題や制約を多数考慮しなければなりません。
こうしたすべての中心に、「分散システムにおけるこのような多くの課題を解決するデータベースは何か?」という問いが存在します。例えば、既存のユーザーにサービスを提供中のライブテーブルを更新する場合、細心の注意と慎重な計画が必要です。そのテーブルはエンドユーザー トラフィックに対応しているか?そのデータベースは比較的高い QPS に対応し、ユーザーがテーブルにアクセスできないようにしているか?自社のゲームやブランドにおいて、「ゼロ ダウンタイム」の重要性はどれくらいか?若干古いステイル読み取りにも対応するなど、制約を緩和する必要はあるか?すべてのノードにおいて、整合性を気にする必要はあるか?データベースをスケールアウトする必要はあるか?これらの要素などを考慮しなければいけません。
従来のデータベースでは、ゲーム開発者は上記の制約を回避して設計する責任があり、ゲームそのものに集中することが難しくなっています。しばしば、データベース上の制限を回避するため、開発者は非常に複雑なゲーム アプリケーションのロジックを設計し、構築するはめになります。
他にゲーム会社が考慮しなければならない要素には、総所有コスト(TCO)があります。データベースの運用、保守にどれくらいの費用が必要でしょうか。自己メンテナンスのデータベースであれば、データベース管理者、運用、メンテナンスの費用も考慮しなければなりません。こうした費用は言うまでもなく、パッチやセキュリティ認証情報を最新の状態に保つためのものです。
インフラストラクチャの整備に注力するよりも、ゲームに集中できるように人的および資本的リソースを最適化することは、企業の規模がどうあれ、非常に重要なことです。ゲーム開発サイクルをより速く、より簡単に、より最適化するためには、堅牢で安全、かつスケーラブルなインフラストラクチャをサービスとして提供することが肝心です。適切なデータベースの選択は、ゲームをベストセラーという成功に導く重要な要因の一つです。
ゲーム開発用バックエンドに Spanner が最適な理由
そこで役立つのが、ゲーム開発に必要なデータベースとして利用できる Spanner です。
Spanner をおすすめする理由は以下のとおりです。
Spanner は、分散トランザクションの多くの課題を解決できます。Spanner は、フルマネージドで、グローバルに分散され、強い整合性を持った、無制限にスケーリングできるリレーショナル データベースです。リレーショナル データベース構造の利点と非リレーショナルな水平方向のスケーラビリティを組み合わせるために、クラウド用に構築されています。Spanner は、ピーク時には毎秒 20 億以上のリクエストに対応し、ダウンタイムやメンテナンスの時間枠は必要ありません。ゲーム開発者は、当初は小規模なワークロードを実行したり、小規模なユーザーベースをサポートしたりして、その後シームレスにスケーリングすることが多々あります。そのため、きめ細かいインスタンスのサイジングと確約利用割引を導入しています。現在、Spanner の無料トライアル インスタンスを利用して、無料でお試しいただけます。
Spanner は、予期せぬ大きなワークロードにも簡単に対応するので、ゲームに集中することができます。ゲーム開発者が抱える最大の悩みの一つとして、ワークロードの急変にも対応できる分散システムの構築が挙げられます。スケーラビリティは、ゲーム会社にとっての大きな懸念といえます。ゲームが世界的にヒットした場合、一貫したゲーム エクスペリエンスと運用の安定性を維持しつつ、突然の驚異的な需要に対応できるインフラストラクチャを整備しなければならないからです。Spanner はレプリケーション、シャーディング、およびトランザクション処理を自動的に行うため、不測の事態や急激な使用パターンに合わせ、必要に応じてゲームを迅速にスケーリングできます。Spanner を使用することで、リレーショナル セマンティクス(Google 標準 SQL および PostgreSQL 言語のデータベース)のすべての利点を、無制限の水平方向のスケーリングで享受できます。これにより、チームは最も重要なこと、つまりゲームそのものに集中することができるようになるのです。
Spanner はプレーヤーをグローバルにサポートし、一貫性のあるエクスペリエンスを提供します。Spanner は、クライアントにトランザクションの同時実行制御を厳格に保証しているため、ゲーム会社は設計パターンをシンプルに保つことができます。Spanner を使用することで、データベースのメンテナンスよりも、ゲーム開発における難しい問題の解決により時間とエネルギーを費やすことができます。
「Spanner の場合、リージョン間のレイテンシが非常に低いため、3 つの大陸のデータベースを維持できます。つまり、アメリカの友人と遊ぼうか、ヨーロッパの友人と遊ぼうか、など迷う必要がないのです。いつでも好きなときにリージョンをスイッチできるのです」と、Embark Studios のバックエンド エンジニア リードである Luna Duclos 氏は述べています。
ゲーム分野における Spanner のユースケースは無限大です。以下のような幅広いデータベース管理機能にも対応しています。
プレイヤーのプロファイルの認証と認可。
ゲーム クライアント、サーバー、その他のアプリケーションからのさまざまなステートフル取り込みワークフローの作成。
ユーザー、インベントリ、プロファイルの管理。
ゲーム内購入とリーダーボードの実装。
プレーヤー データの保存と迅速なサービング。
以下は、ある人気ゲーム会社が Google Cloud を使用して世界で最も人気のあるオンライン ゲームの一つを開発した際の典型的なアーキテクチャ図の例です。
ゲーム会社にとって特に重要な Spanner の機能は次の 3 つです。
高可用性: Spanner は非常に高い可用性とレイテンシを保証しており、Spanner 上に信頼性の高いアプリケーションを容易に構築できます。Spanner はトランザクション書き込みをサポートし、高い堅牢性を保証するとともに、マルチリージョン インスタンスにおいて、業界最高レベルの 99.999% の可用性を実現しています。可用性が高いということは、SLA を中心とした設計が不要であることを意味します。
バックアップと復旧管理: Spanner のバックアップ管理は簡単に構成でき、シンプルな事業継続のためのポイント インタイムの復旧を提供します。バックアップは、トラフィックの送信に影響を与えないように設計されています。Spanner はまた、ポイントインタイム リカバリを提供し、データの修正と個々の行、テーブル、データベース全体の復旧を簡単に行えます。これは 1 日に数千、数百万のトランザクションを扱う場合に非常に有効です。
90 日間無料でお試しできます: Spanner の無料トライアル インスタンスを利用して、Spanner さらに深く知ることができます。適切なデータベースとして Spanner をお選びいただくと、必要な分だけ制限なしにスケーリングでき、使用したコンピューティング容量とストレージの分だけお支払いいただくことになります。さらに、ゲームのリリース時に過剰にプロビジョニングを行う必要もなく、オートスケーラーを使用して Spanner の使用率を管理できます。
お客様のゲームがより多くのプレイヤーをサポートするため徐々に拡大していったとしても、Spanner は、プロトタイピング、スケーリング、およびデータモデルの調整に最適なデータベースであり続け、効果的で低オーバーヘッドのエンジニアリングを維持します。
皆様が Spanner を活用して、ゲームのさらなる可能性を広げていくことを楽しみにしております。
Cloud Spanner を使ってみる
Spanner を始めるには、データベースを作成するか、Spanner の Qwiklab でお試しください。詳しくは、Cloud Spanner を使ったグローバル マルチプレーヤー ゲームの開発方法や Cloud Spanner をゲーミング データベースとして使用するベスト プラクティスをご覧ください。
このブログ投稿に協力してくれた Aalok Muley と Sneha Shah に感謝します。
- エンジニアリング ディレクター Pritam Shah
- テクニカル ライター Tina Deng