Download presentation
Presentation is loading. Please wait.
Published byShanon Flowers Modified over 8 years ago
2
Game Data Anywhere Using Xbox LIVE Cloud Storage Michael Alyn Miller Data Storage Architect Microsoft Corporation
3
Console only One device at a time Saved Games Difficult to share across platforms Limited file size Legacy Cloud Storage APIs Cross-device pause and resumeCompanion gamesWeb experiences What we have today What we want to enable Storage Technologies CLOUD STORAGE
4
Cloud Storage Goals & Challenges Standard HTTPS requests Unified authentication model Consistency across Xbox LIVE Broad Platform Support Problem: Not all platforms (for example, the web) support Xbox LIVE Title Ids Solution: Two types of platforms (Verified and Unverified) with different sharing semantics Multiple Security Models Fine-grained data sharing across titles, platforms Cross-Title Sharing
5
Title Groups First-Class Concept Title Group Storage is Shared Title Group IDs are an integral part of the API Owned by a publisher, not a title Many titles can access the same Title Group Storage Access control list for granting permissions to titles
6
Title Groups Example Read/Write Read-Only Title Group 123 Title Group 456 Kinectimals launches and uses Title Group Storage for its Saved Games. Kinectimals for Windows Phone, iOS is released and gets read/write access to the Kinectimals Title Group Storage area so that cubs can be shared between devices. A few years later Kinectimals 2 comes out and uses Title Group Storage for its saved games. Kinectimals 2 also gets read-only access to the Kinectimals Title Group Storage area in order to import your saved games.
7
Data Stores Readable by all users, writable by the publisher Game configuration, updateable assets, tuning data, and others 5 GB quota, 5000-file maximum, no max file size Global Data One store per-user, per-Title Group Writable by the owning user (and publisher) Saved games, statistics, preferences, and others 1 GB quota, 5000-file maximum, no max file size User Data
8
Cloud Storage API User Data APIs GET, PUT, DELETE data: /users/xuid(xuid)/storage/titlestorage/titlegroups/titleGroupId/data/... GET user-level statistics (quota): /users/xuid(xuid)/storage/titlestorage/titlegroups/titleGroupId Multi-User GET: (POST) /users/batch/storage/titlestorage/titlegroups/titleGroupId/data/... Global Data APIs GET, PUT, DELETE data: /media/titlegroups/titleGroupId/storage/data/... GET global data statistics (quota): /media/titlegroups/titleGroupId/storage The “...” is a blob name or directory of blobs
9
Cross-Title Pause & Resume sample OverviewCross-Title SharingCross-Platform CompanionsGlobal ConfigWrap Up
10
Pause on Windows 8, Resume on Windows Phone CLOUD STORAGE
14
Cloud Storage Access Control Lists PrefixRequired ClaimsPermissions /saves/titleId=9401931,4891894 user=me read,write Access control list Title Group: 6DC49566-9750-4ACB-AD3E-2E17860D39D5
15
Cloud Storage Access Control Lists PrefixRequired ClaimsPermissions /ghostReplays/titleId=9401931,4891894 user=me read,write /saves/titleId=9401931,4891894 user=me read,write Access control list Title Group: 6DC49566-9750-4ACB-AD3E-2E17860D39D5 PrefixRequired ClaimsPermissions /ghostReplays/titleId=9401931,4891894 user=me read,write /ghostReplays/titleId=9401931,4891894 user=anyone read /saves/titleId=9401931,4891894 user=me read,write
16
Recap: Binary Blobs Read/Write large blocks of data Full support for HTTP Range header Full support for HTTP ETag header (and If-Match/If-None-Match) Features Not safe for sharing from unverified platforms to verified platforms Limitations Unverified platforms can only write blobs to /unverified Verified platforms cannot read Binary Blobs from /unverified Mitigation
17
Smart Blobs Design concept Same API Same access control list Different types of Smart Blobs can do different things Smart Blob type identified by a Blob type in the URL Types of Smart Blobs Binary Blobs JSON Blobs Config Blobs
18
JSON Blobs Features “JSON object in the cloud” Validate incoming data, regardless of platform type Provide a way to return only parts of the JSON object Use them for Player statistics Preferences Schematized saved games Ideally use them for everything but images and videos
19
Cross-Platform Companions sample OverviewCross-Title SharingCross-Platform CompanionsGlobal ConfigWrap Up
20
Sharing Data from Web to Phone Card EditorToolbox
24
Cloud Storage Access Control Lists PrefixRequired ClaimsPermissions /saves/titleId=9401931,4891894 user=me read,write /unverified/user=meread,write Access control list Title Group: 6DC49566-9750-4ACB-AD3E-2E17860D39D5
25
Restrictions & Guidance on /unverified /unverified has a 32MB quota (configurable) Restrictions Copy data from /unverified and delete the source blob Unverified platforms read from the copy and write to /unverified Prune unknown blobs from /unverified at startup time Best Practices for Verified Platforms Prune unknown blobs from /unverified at startup time Best Practices for Unverified Platforms Users can only break themselves, not other users! Important Note
26
Config Blobs in Global Data sample OverviewCross-Title SharingCross-Platform CompanionsGlobal ConfigWrap Up
29
UnicornCard.png,binary
33
Recap: Config Blobs Another “JSON object in the cloud” Enables A/B testing, localized config, etc. Random User, Random Request, Locale, Title ID Or even a game-provided string Features Can only be stored in Global Storage Config Blobs cannot currently be larger than 64 KB Limitations
34
Game Data Anywhere Using Xbox LIVE Cloud Storage Q & A OverviewCross-Title SharingCross-Platform CompanionsGlobal ConfigWrap Up
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.