Docs Menu
Docs Home
/

グローバル ゲーム マネジメントの効率化

MongoDB Atlasによるゲームデータ管理の効率化

ユースケース: 分析

業種: メディア

製品: MongoDB AtlasMongoDB AtlasグローバルクラスターMongoDB Atlas SearchMongoDB Atlas ChartsMongoDB AggregationMongoDB Atlas Data Federation

パートナー: Unity ゲームエンジンAmazon EC2

ゲーム業界では、プレイヤー プロファイル、在庫、ゲーム状態などのデータを管理するのが困難です。Leaftools と呼ばれるこのソリューションは、 MongoDB Atlasを使用してゲームデータストレージ を効率化および改善します。Atlas クラスターはプレイヤーのプロファイルを保持し、Atlas Charts はリアルタイムプレイヤー ダッシュボードを有効にし、Atlas Search はユーザー向けの検索インタラクションを可能にします。このソリューションにより、 グローバルなスケーラビリティ、効率的なデータ管理、ユーザー中心の設計が可能になります。

次の図には、 MongoDBを使用していないゲームデータ管理システムにはどのようなものがあるかを示しています。

Atlas を使わないリファレンス アーキテクチャ
クリックして拡大します

図 1. Atlas を使用しないリファレンス アーキテクチャ

このアプローチには、グローバル クエリ ルーター、世界全体の複数のノード間のレプリケーションサービスを構築し、さまざまなストレージオプションを統合することが含まれます。このアーキテクチャでは、別の検索エンジンと可視化ツールと、データを可視化ツールにフェデレーションするためのサーバーレス クエリ サービスが必要です。

対照的に、次の図は、 MongoDBによるゲームデータ管理のアーキテクチャを示しています。

Atlas を使ったリファレンス アーキテクチャ
クリックして拡大します

図 2. Atlas を用いたリファレンス アーキテクチャ

MongoDB Atlasでは、 MongoDB Atlasグローバルクラスター 、 Atlas Online アーカイブ、 Atlas Search 、 Atlas Charts 、 Atlas Data Federation を使用して、データをホストし、可視化を生成し、単一のプラットフォームで検索を実行できます。

次の図は、このソリューションで使用されるデータモデルを示しています。

データモデルアプローチの図

図 3。データモデル アプローチの図

Recording は、スコア、移動、統計など、イベントからのプレイヤーのゲームプレイを表します。各レコードは、拡張参照パターンを使用して、PlayerEvent データ型のサブセットを保存します。この設計により、選択的なフィールド埋め込みが可能になるため、クエリのパフォーマンスが向上します。さらに、将来的にデータを追加および変更するための柔軟性を提供します。

PUGB のような数億のプレイヤーを持つ大規模なオンライン イベントでは、最適なエクスペリエンスを確保し、法的要件を満たすために、データローカリティが重要です。これらのニーズをサポートするために、Players コレクションと Recordings コレクションはロケーション ISO コードに基づいてシャーディングされています。Atlas グローバルクラスターは、ISO 国と下位分類コードを特定のクラウドリージョン内のシャードのゾーンに関連付けます。これはクエリと書き込みリクエストをルーティングするために使用され、最高のパフォーマンスを確保します。

このソリューションを構築する方法の詳細については、Githubリポジトリ を参照してください。

このソリューションは、次のアーキテクチャ機能を提供します。

  • Atlas グローバルクラスターは、プレイヤーの地理的位置に関係なく、中断されないゲーム行を保証します。データの精度のために、プレイヤー情報は ISO 国コードに基づいて保存されます。

  • Atlas オンラインアーカイブ は、ストレージを最適化するために 90 日以上経過したゲーム データを自動的にオフロードします。これは、コストを増加させパフォーマンスに影響可能性のある大量のデータを生成するため、特に数百万のユーザーとゲーム実行に有用です。さらに、このソリューションは Atlas Data Federation を使用するため、最新データと履歴データの両方にアクセスできます。

このソリューションは、次のユーザーの強調表示を提供します。

  • Atlas Charts でサポートされているプレイヤー ダッシュボードは、ゲーム内の結果と進行状況に関するリアルタイムアップデートを保証します。Atlas Charts のフィルタリングと埋め込み機能を使用すると、プレイヤーとイベントのダッシュボードを再利用できます。

  • Atlas Search は、オートコンプリートやファジー一致などの機能を提供しており、ユーザーが Web UIで自分の名前を検索できるようにしています。

このソリューションのアーキテクチャには、次のコンポーネントが含まれています。

  • ゲーム クライアント: Unity3D、 .NET、 C#を使用して開発

  • ゲーム サーバー: ASP .NET Web API、 .NET、 C#、およびMongoDB .NET/ C#ドライバーで構築

  • Webサイト: .NETとC#を使用して Blazor サーバー アプリケーションとして作成

Githubリポジトリの README には、次の手順のより詳細なバージョンが含まれています。

1

.NET SDK 7 をインストールし、 MongoDB Atlas データベースを設定します。

2

リポジトリ内の rest_service フォルダーに移動します。.envファイルを変更し、次のコマンドを使用してバックエンドを起動します。

dotnet run --urls "http://0.0.0.0:8000"
3

website フォルダーに移動します。.envファイルを変更し、次のコマンドを実行中てウェブサイトを起動します。

dotnet run --urls "http://0.0.0.0:8001"
4

game_client フォルダーに移動します。Assets フォルダーの .envファイルを変更します。次に、ゲームを実行します。

  • グローバルクラスターはスケーリングを促進します: グローバルクラスター、セカンダリからの読み取り、プライマリへの書き込みを使用して水平方向に増やすし、サイド効果やレイテンシのないグローバルオーディエンスに対応します。

  • MongoDB のドキュメントモデルは柔軟性とパフォーマンスを向上させます。ドキュメントモデルを活用して、実行された単一のゲームのすべてのデータを単一のドキュメントに保存しますが、パフォーマンスを向上させるには実行時にサブセットをシリアル化します。

  • プレイヤーの場所に基づいてデータをシャーディングする: ISO コードに基づいてデータを保存することで、Atlas グローバルクラスターはパフォーマンスの向上とスケーラビリティを容易にし、サービスを中断することなくシャードとゾーンの追加を可能にします。

  • Sigfrido Narvaez, MongoDB

  • ドミニク・フライ、MongoDB

  • Hubert Nguyen、MongoDB

  • MongoDB と Vector Search を活用した、AI 主導のメディア パーソナライゼーション

  • 生成AIによる編集ワークフロー

  • 生成AIを活用した動画要約

戻る

統合名前空間データ整合性

項目一覧