MongoDB Atlas 로 게임 데이터 관리 간소화하세요.
사용 사례: 분석
산업: 미디어
제품: MongoDB Atlas, MongoDB Atlas 글로벌 클러스터, MongoDB Atlas Search, MongoDB Atlas Charts, MongoDB 애그리게이션, MongoDB Atlas Data Federation
파트너: Unity 게임 엔진, Amazon EC2
솔루션 개요
게임 업계에서 플레이어 프로필, 인벤토리, 게임 상태 등의 데이터를 관리하는 것은 과제 입니다. '리프스테로이즈드'라는 이름의 이 솔루션은 MongoDB Atlas 사용하여 게임 데이터 저장 간소화하고 개선합니다. Atlas Clusters는 플레이어 프로필을 보관하고, Atlas Charts 실시간 플레이어 대시보드를 활성화 , Atlas Search 사용자 친화적인 검색 상호 작용을 지원합니다. 이 솔루션을 사용하면 글로벌 확장성, 효율적인 데이터 관리 및 사용자 중심의 설계가 가능합니다.
참조 아키텍처
다음 다이어그램은 MongoDB 없는 게임 데이터 관리 시스템의 모습을 보여줍니다.
그림 1. Atlas가 없는 참조 아키텍처
이 접근 방식에는 글로벌 쿼리 라우터 구축, 전 세계 여러 노드 간의 복제 서비스, 다양한 저장 옵션 통합이 포함됩니다. 또한 이 아키텍처에는 데이터를 시각화 도구에 연합하기 위한 서버리스 쿼리 서비스를 갖춘 별도의 검색 엔진 과 시각화 도구가 필요합니다.
반면 다음 다이어그램은 MongoDB 사용한 게임 데이터 관리 아키텍처를 보여줍니다.
그림 2. Atlas가 있는 참조 아키텍처
MongoDB Atlas 사용하면 단일 플랫폼에서 MongoDB Atlas Global Clusters, Online 보관, Atlas Search, Atlas Charts 및 Atlas Data Federation 사용하여 데이터를 호스팅하다 , 시각화를 생성하고, 검색 수행할 수 있습니다.
데이터 모델 접근 방식
다음 다이어그램은 이 솔루션에서 사용하는 데이터 모델을 표시합니다.
그림 3. 데이터 모델 접근 방식 그림
Recording 는 점수, 이동 및 통계를 포함하여 이벤트 에서 플레이어의 게임 플레이를 나타냅니다. 각 기록은 확장 참조 패턴 사용하여 Player 및 Event 데이터 유형의 하위 집합을 저장합니다. 이 설계는 선택적 필드 임베딩을 허용하여 쿼리 성능을 향상시킵니다. 또한 향후 데이터를 추가하고 변경할 수 있는 유연성을 제공합니다.
PUBG 와 같이 수십억 명의 플레이어가 참여하는 대규모 온라인 게임에서 데이터 지역성은 최적의 경험과 법적 요구 사항을 충족하는 데 매우 중요합니다. 이러한 요구 사항을 지원 위해 Players 및 Recordings 컬렉션은 위치 ISO 코드를 기반으로 샤딩된 됩니다. Atlas Global Clusters ISO 국가 및 하위 지역 코드를 특정 cloud 리전 의 샤드 구역에 연결합니다. 이는 쿼리 및 쓰기 (write) 요청을 라우팅하는 데 사용되어 최상의 성능을 보장합니다.
솔루션 빌드
이 솔루션을 빌드 방법에 대한 자세한 지침은 Github 리포지토리참조하세요.
기능 및 통합
이 솔루션은 다음과 같은 아키텍처 기능을 제공합니다.
Atlas Global Clusters 플레이어의 지리적 위치 에 관계없이 중단 없는 게임 플레이를 보장합니다. 데이터 정밀도를 위해 플레이어 정보는 ISO 국가 코드를 기반으로 저장됩니다.
Atlas Online Archive 90 일이 지난 게임 데이터를 자동으로 오프로드하여 저장 최적화합니다. 이는 플레이어가 수백만 명에 달하고 영향 을 실행하는 게임에 특히 유용합니다. 또한 이 솔루션은 Atlas Data Federation 사용하므로 최근 데이터와 과거 데이터에 모두 액세스 할 수 있습니다.
사용자 경험 주요 사항
이 솔루션은 다음과 같은 사용자 주요 기능을 제공합니다.
Atlas Charts 에서 지원하는 플레이어 대시보드 게임 내 도전 과제 및 진행 상황에 대한 실시간 업데이트를 보장합니다. Atlas Charts 의 필터링 및 임베딩 기능을 사용하면 대시보드를 플레이어 및 이벤트에 맞게 재사용할 수 있습니다.
Atlas Search 자동 완성 및 퍼지 매칭과 같은 기능을 제공하여 플레이어가 웹 UI 에서 자신의 닉네임을 검색 할 수 있도록 합니다.
아키텍처
이 솔루션의 아키텍처에는 다음과 같은 구성 요소가 포함되어 있습니다.
게임 클라이언트: Unity3D, .NET 및 C# 사용하여 개발
게임 서버: ASP .NET Web API, .NET, C# 및 MongoDB .NET/ C# 드라이버기반으로 합니다.
웹사이트: .NET 및 C# 사용하여 블레이저 서버 애플리케이션으로 제작
단계
Github 리포지토리 의 README 에는 다음 절차의 더 자세한 버전이 포함되어 있습니다.
주요 학습 사항
글로벌 클러스터 쓰기 (write) 확장 확장하다 지연 시간 세컨더리 .
MongoDB의 문서 모델 유연성과 성능을 향상시킵니다: 문서 모델 활용하여 단일 게임 실행 대한 모든 데이터를 단일 문서에 저장, 실행 중에 하위 집합을 직렬화하여 성능을 향상시킵니다.
플레이어 위치 기반 샤드 데이터 : Atlas Global Clusters ISO 코드를 기반으로 데이터를 저장함으로써 성능을 향상 활성화 확장성 향상시켜 서비스 중단 없이 샤드 및 구역 을 추가할 수 있습니다.
작성자
Sigfrido Narvaez, MongoDB
Dominic Frei, MongoDB
휴버트 응우옌, MongoDB