다음을 통해 공유


Xbox 서비스 타이틀 저장소 개요

이 항목에서는 Xbox 서비스 타이틀 저장소가 무엇인지, 그 기능이 무엇인지 설명하고 구성 방법을 보여줍니다. Xbox 서비스 타이틀 저장소 서비스는 플레이어별 또는 게임별 대량의 데이터를 위한 클라우드 저장소를 제공합니다. 플레이어 통계 및 자산을 저장하는 데 사용할 수 있습니다. 모든 Xbox 플랫폼에서 실행되는 게임은 타이틀 저장소를 사용할 수 있습니다.

Xbox 서비스 타이틀 저장소 기능

Xbox 서비스 타이틀 저장소에는 다음과 같은 고급 기능이 포함됩니다.

  • 플레이어, 타이틀 및 다양한 플랫폼간에 공유 가능

  • JSON, 이진 및 구성 파일을 지원합니다.

저장소 유형

저장소 유형 할당량(관리 파트너) 할당량(크리에이터스 프로그램) 용도 플랫폼 플레이어
신뢰할 수 있는 플랫폼 플레이어당 256MB 플레이어당 64MB 저장된 게임 또는 플레이/일시 중지/재개에 대한 플레이어당 데이터 더 안전하지만 플랫폼 제한이 있습니다. 모든 플랫폼에서 읽을 수 있지만, Xbox One 패밀리(또는 그 이상), Xbox 360 또는 Windows Phone에서만 쓸 수 있습니다. 일반 또는 소유자만 구성할 수 있습니다.
유니버설 플랫폼 플레이어당 64MB 플레이어당 64MB 저장된 게임 또는 플레이/일시 중지/재개에 대한 플레이어당 데이터 모든 플랫폼에서 읽거나 쓸 수 있습니다. 일반 또는 소유자만 구성할 수 있습니다.
글로벌 256MB 256MB 모든 사람이 읽을 수 있는 명단, 맵, 챌린지, 아트 리소스 같은 데이터. Xbox 개발자 포털 또는 파트너 센터를 통해서만 쓰기 가능하며, 모든 플랫폼에서 읽을 수 있습니다. 모든 플레이어가 읽을 수 있습니다.

스로틀 제한

타이틀이 분당 읽고 쓸 수 있는 횟수에는 제한이 없지만 일반적으로 1시간 세션당 평균적으로 분당 1회 이상 만들 수 없습니다. 예를 들어, 타이틀은 세션의 시작 부분에서 60개의 읽기 또는 쓰기를 만들 수 있지만 나머지 시간에는 더 이상 만들 수 없습니다. Xbox 서비스가 요청을 제한해야 하는 경우에 대비하여 나중에 더 많은 호출을 하지 않도록 타이틀을 강화해야 합니다.

참고 항목

타이틀에 추가 읽기 또는 쓰기와 같은 특별한 파티셔닝 요구 사항이 있는 경우 Microsoft 담당자에게 문의하세요.

데이터 유형

이 섹션에서는 지원되는 세 가지 유형에 대해 설명합니다.

이진 정보

이진 정보에는 이미지, 사운드 및 사용자 지정 데이터와 같은 항목이 포함됩니다. 데이터는 HTTP를 통해 전송되어야 하므로 이진 데이터는 HTTP에서 허용하는 문자로 인코딩해야 합니다. 예를 들어, 데이터를 16진수 문자열로 변환하거나 base64 인코딩을 사용할 수 있습니다. 타이틀 저장소는 인코딩된 데이터를 처리하지 않으므로 게임에서 타이틀 저장소에서 읽고 쓸 때 데이터를 인코딩 및 디코딩하는 데 동일한 체계를 사용해야 합니다.

JSON 정보

JSON 정보에는 구조화된 데이터 (키-값 쌍)가 포함됩니다. JavaScript와 같이 이를 지원하는 언어로 JSON 개체를 사용할 수 있습니다. JSON 파일에서 데이터를 검색할 때 게임은 구조 내의 특정 항목을 반환하는 selectQuery 매개 변수를 제공할 수 있습니다. 예를 들어 다음 정보가 포함된 JSON 파일을 사용할 수 있습니다.

{
"difficulty" : 1,
"level" :
    [
        { "number" : "1", "quest" : "swords" },
        { "number" : "2", "quest" : "iron" },
        { "number" : "3", "quest" : "gold" },
        { "number" : "4", "quest" : "queen" }
        ],
"weapon" :
    {
            "name" : "poison",
            "timeleft" : "2mins"
    }
}

참고 항목

보안을 위해 JSON 데이터의 첫 번째 요소는 배열이 아니어야 합니다. 루트에서 배열과 함께 제출된 JSON 데이터는 서비스에서 거부됩니다.

게임은 JSON 구조의 일부를 selectQuery(예: weapon.name)(으)로 선택할 수 있으며 다음을 수신합니다.

{
    "name" : "poison"
}

구성 정보

구성 Blob은 글로벌 타이틀 저장소에 저장되는 데이터 구조입니다. 구성 Blob의 형식은 JSON 개체의 형식과 유사합니다. 구성 Blob에는 가능성 목록에서 설정을 반환하는 가상 노드가 포함될 수 있습니다. 가상 노드는 특정 상황에 대한 설정(예: 타이틀 또는 로캘)을 제공하는 데 유용합니다. 가상 노드에는 값 중에서 선택하기 위한 조건 및 값과 함께 사용할 수 있는 몇 가지 설정이 포함됩니다. 다음 예에서 defaultCardDesign 설정은 가상 노드의 값 중 하나를 가질 수 있습니다.

{
    "defaultCardDesign":
    {
    "_virtualNode":
    {
        "_selectBy":"titleId",
        "_sourceNodes":
        [
        {"_selector":"123456799", "_data":"RobotUnicornCard.png,binary"},
        {"_selector":"default", "_data":"StandardCard.png,binary"}
        ]
    }
    },
}

게임이이 파일을 읽을 때 시스템은 \_sourceNodes 배열에서 값 중 하나를 선택합니다. 이 경우 게임의 타이틀 ID를 기준으로 아이템이 선택됩니다. 예를 들어 12456799 게임을 하는 플레이어는 다음 메시지를 보게 됩니다.

{
    "defaultCardDesign":"RobotUnicornCard.png,binary",
    "_sourceNodes":["defaultCardDesign:titleID:1234567899"]
}

게임을 하지 않는 플레이어는 다음 메시지를 보게 됩니다.

{
    "defaultCardDesign":"StandardCard.png,binary",
    "_sourceNodes":["defaultCardDesign:titleID:default"]
}

게임은 요청의 매개 변수와 일치하는 사용자 지정 선택기를 정의할 수 있습니다. 예를 들어 이 구성 Blob에서 다음 JSON 개체를 고려하세요.

{
    "defaultCardDesign":
    {
        "_virtualNode":
        {
            "_selectBy":"custom:gameMode",
            "_sourceNodes":
            [
                {"_selector":"silly", "_data":"RobotUnicornCard.png,binary"},
                {"_selector":"serious", "_data":"SeriousCard.png,binary"},
                {"_selector":"default", "_data":"StandardCard.png,binary"}
                ]
        }
    },
    "backgroundColor":"green",
    "dealerHitsOnSoft17":true
}

게임은 customSelector 매개 변수에 문자열을 전달하여 반환할 항목을 선택합니다. 예를 들어 두 번째 옵션을 얻으려면 게임에서 gameMode.serious을(를) selectQuery(으)로 요청합니다.

Xbox 서비스 타이틀 저장소 사용 시작하기

  1. 저장할 데이터의 종류를 결정하세요. 예를 들어 저장된 게임, 게임 상태, 일일 챌린지, 게임 맵 및 아트 리소스가 있습니다.

  2. 데이터에 액세스하는 데 필요한 타이틀과 플랫폼을 결정합니다. 타이틀 저장소는 단일 플랫폼의 단일 타이틀에서 또는 여러 플랫폼의 여러 타이틀에서 클라우드 데이터 액세스를 지원합니다.