グローバル プロファイル、レコード、リアルタイム ダッシュボードを含む MongoDB Atlas によるシームレスなゲーム データ管理。
ユースケース: 分析
業種:メディア
製品: Atlas, Atlas Global Clusters, Atlas Search, Atlas Charts, Aggregation Framework, Atlas Data Federation
パートナー: Unity ゲームエンジン、Amazon EC2
ソリューション概要
ゲーム業界においては、プレイヤープロファイル、インベントリ、ゲームの状態をグローバルスケールで管理することが課題となっています。MongoDB Atlas は Leafsteroids と組み合わせることでソリューションを提供します。グローバル クラスターは、地理的な制約に関係なくプレイヤー プロファイルをシームレスに処理します。MongoDB は、柔軟なドキュメント モデルにより、高度なデータ管理を実現し、詳細なゲーム記録を可能にします。Atlas Charts を使ったリアルタイムのプレイヤー ダッシュボードや、Atlas Search によるユーザーフレンドリーなインタラクションにより、プレイヤー体験が向上します。MongoDB Atlas により、ゲーム業界では、グローバルなスケーラビリティ、効率的なデータ管理、ユーザー中心の設計が共存する未来が今ここにあります。
参照アーキテクチャ
MongoDB を使用せずに
図 1. Atlas を使用しないリファレンス アーキテクチャ
ゲームデータとプロファイルをグローバル規模で管理する従来のアプローチには、グローバルクエリルーターの構築、世界中の複数ノード間でのレプリケーションサービス、個別のウォームストレージオプションへの統合が含まれます。このアーキテクチャには、データを可視化ツールに統合するサーバーレスクエリサービスを備えた、独立した検索エンジンと可視化ツールが必要です。
MongoDB で
図 2. Atlas を用いたリファレンス アーキテクチャ
Atlas を使用すれば、MongoDB Atlas の最新のマルチクラウド データベース プラットフォームへの単一の接続で要件を満たせます。グローバル クラスター、Online Archive、Atlas Search、Atlas Charts、Data Federation を活用することで、グローバル規模でゲームデータを管理するために必要な機能を包括的に備えています。
データモデルアプローチ
図 3。データモデル アプローチの図
レコードは、スコア、移動、統計など、イベントからのプレイヤーのゲームプレイを示します。.NET(C#)を使って、プレイヤーとイベントのサブセットは、拡張参照パターンを通じてレコーディングに保存され、サブクラスとカスタムの直列化を採用します。この設計により、選択的なフィールド埋め込みが可能になることでクエリのパフォーマンスが向上し、将来の柔軟性がもたらされます。「PUBG」など、数十億人のプレイヤーが参加する大規模オンラインゲームでは、最適な体験を提供し、法的要件を満たすために、データのローカリティが極めて重要です。プレイヤーとレコーディングは、ロケーションベースの ISO コードを利用してグローバルにシャーディングされます。Atlas グローバルクラスターは優れたパフォーマンスと簡単なスケーラビリティを実現し、サービスを中断することなくシャードとゾーンを追加できます。
ソリューションを構築する
魅力的な Leaf Federation のゲーム プラットフォームの中心には、 MongoDB Atlasの堅牢性があります。デモ用に設計されたこのゲームは、インタラクティブなユーザー エクスペリエンスと詳細なデータ管理のバランスが保たれています。 Githubリポジトリでは、 に、このソリューションを構築する方法に関する詳細な手順が記載されています。
機能と統合
MongoDB Atlas: Leafsteroids は Atlas Global Clusters の機能を完全に活用できます。これにより、プレイヤー プロファイルは大規模かつ効率的に管理され、プレイヤーの地理的な場所にかかわらず、途切れのないゲーム体験と継続的なプレイヤーの進行が確保されます。データの精度を高めるため、プレイヤー情報は ISO 国コードおよびシャード/ゾーンの割り当てを用いて保存されます。
データプロセシングの基盤には、柔軟なドキュメントモデルが存在します。これは、詳細なゲーム記録をサポートするだけでなく、「連携するデータは共に存在する」という理念も体現しています。運用の簡素化という概念に従い、他のデータセットもシンプルなコレクション内に整理されています。
時間の経過とともに、ゲームが数百万のプレイヤーとゲーム実行によって大成功を収めると、生成されるデータ量が増加し、コストが上昇し、パフォーマンスに影響を及ぼす可能性があります。Leafsteroids では、Atlas Online Archive を使用したデータ階層化戦略により、90 日以上経過したゲームデータを最適化されたストレージに自動的にオフロードしています。さらに、Atlas Data Federationによって、最新データと履歴データの両方にシームレスにアクセスすることが可能になります。
ユーザーエクスペリエンスのハイライト
プレイヤー ダッシュボード:際立った機能である特注のプレイヤー ダッシュボードは、Atlas Charts を通じてオンラインで利用可能であり、ゲーム内の成果や進行状況をリアルタイムで更新します。Atlas Charts のフィルタリング機能と埋め込み機能を活用することで、同じダッシュボードをプレイヤーレベルまたはイベントレベルのダッシュボードとして再利用することも可能です。その結果、プレイヤーの体験全体がさらに向上します。
Atlas Search:ゲームのユーザー中心主義を高めるもう一つの重要なコンポーネントです。プレイヤーは、オートコンプリート機能とファジーマッチング機能を使用して Web UI 内で自分のニックネームを素早く見つけることができ、より直感的なユーザー インタラクションを促進します。
アーキテクチャ
ゲーム クライアント: Unity 3D、.NET、C# を使用して開発
ゲーム サーバー: ASP.NET API、.NET、C# 上にビルド
ウェブサイト:.NET、C# を使用して構築された Blazor サーバー アプリケーションです。
クローンを設定する
前提条件:.NET SDK 7をインストールし、MongoDB Atlas データベースをセットアップしてください。
REST サービスの実行:rest_service フォルダーに移動し、.env ファイルを変更して、指定されたコマンドで実行します。
ウェブサイトを起動:ウェブサイト フォルダーにアクセスして、.envファイルを調整し、提供されたコマンドを実行します。
ゲームクライアントの実行: game_client ディレクトリで、Assets 内の .env を調整し、ゲームを開始します。
ゲームの要素
ゲーム プレイ(レコーディング):これらは、イベント中のプレイヤーのゲーム内アクティビティを表します。拡張参照パターンを使用して保存されたこれらの記録は、Player オブジェクトと Event オブジェクト全体にリンクできますが、永続化時には選択したフィールドのみがシリアル化されます。
プレイヤー プロフィールとゲーム プレイ:多人数参加型ゲームでは、データのローカライズが極めて重要です。Leafsteroids ソリューションは、プレイヤーとレコーディングのコレクションをグローバルにシャードします。Atlas グローバルクラスターを使用すると、ISO 国コードと行政区画コードがゾーンに接続され、クエリおよび書き込みリクエストのルーティングが最適化されます。メリットには、無制限のスケーラビリティと手間のかからないデータ配信のアップグレードが含まれます。
使用した技術と製品
MongoDB 開発者データ プラットフォーム
提携技術
重要な検討事項
グローバルクラスターを使用し、セカンダリからの読み取りとプライマリへの書き込みを行うことで、水平方向へのスケーリングが可能となり、予期しない影響やレイテンシを伴うことなくグローバルなユーザーに対応できます。
ドキュメント モデルを活用して、1 回のゲーム実行のすべてのデータを 1 つのドキュメントに保存しますが、パフォーマンスを向上させるために実行時にサブセットをシリアライズします。
Players および Recordings コレクションは、「グローバルにシャーディングされた」です。シャードキーの最初のセグメントは location です。Atlas Global Clusters は、ISO の国コードおよび地域コード(ISO-3166-1、ISO-3166-2)をゾーンに関連付けます。ゾーンが存在するクラウドリージョンにホストされた 1 以上のシャードに対して、クエリや書き込みリクエストをルーティングし、最適なパフォーマンスを確保します。グローバル クエリもサポートされています。
著者
Sigfrido Narvaez, MongoDB
ドミニク・フライ、MongoDB
Hubert Nguyen、MongoDB