在 XBOX Live 上隔離內容
在 XBOX Live 中,只有單一生產環境,所有預先發行 (開發中和 Beta)、認證和零售內容都位於其中。 內容隔離是確保生產環境中不會發生發行者內容外洩的方式。 就本質而言,內容隔離可確保任何要求存取資源 (遊戲或服務) 之權限的主體使用者、裝置或遊戲,都已獲授權存取該資源。 透過內容隔離,分割區會劃分為儲存遊戲或服務資料的沙箱;授權原則是在沙箱的範圍內定義的。 沙箱是分割生產環境中資料的一種方式。- 使用 XBOX 360 時代的服務時,PartnerNet 和 ProductionNet 是兩個不同的環境。
- 使用 XBOX One (或更新版本) 服務時,單一生產環境包含 n 個不同的虛擬環境,其中每個虛擬環境都稱為沙箱。

遊戲的初始設定
遊戲誕生於 Partner Center。 遊戲會被指派遊戲識別碼、產品識別碼和服務設定識別碼 (SCID)。 遊戲或產品本身對 XBOX Live 而言沒有任何意義。 為了支援單一遊戲同時進行零售和開發使用,Partner Center 支援遊戲的執行個體化,以建立和維護必要的區別。 遊戲的執行個體位於沙箱中,這就是沙箱發揮作用的地方。 為了在 Partner Center 中建立遊戲,發行者會建立產品群組、指定產品群組的類型,然後在其中建立個別產品。 圖 2. 產品群組、產品、產品執行個體和沙箱之間的關係。
產品執行個體
產品執行個體是遊戲、產品和設定資料在特定沙箱中的投影。 此資料在下列三個領域中描述:服務設定、目錄中繼資料和二進位檔。服務設定
服務設定定義 (事件、統計資料、成就等)。服務設定是在產品執行個體層級定義的。目錄中繼資料
位於目錄中的中繼資料,包括銷售文字、美術資產、供應情況/優惠資訊、授權資料等。二進位檔
二進位檔可以用下列兩種方式之一表示:- 僅限中繼資料,以啟用側載。這包括內容識別碼、版本資訊和授權資訊。
- 傳播至 CDN 且可下載至用戶端的完整二進位檔。
取得正確的存取權
在 XBOX One (或更新版本) 中,您的內容有兩種不同類型的存取權: 設計階段存取:透過 Partner Center 從 PC 存取 - 允許處理您產品的人員上傳、組織和處理內容、設定和中繼資料,但不允許他們執行或遊玩您產品的執行個體。 執行階段存取:從 XBOX 主機存取 - 允許您的開發人員、測試人員、審查人員以及最終您的客戶執行和遊玩產品執行個體。為了可供執行階段存取,產品執行個體必須放置在沙箱中。組建放置在沙箱中之後,已獲授與該沙箱存取權的 Partner Center 使用者或開發套件裝置就可以執行該執行個體。為此,他們會透過 XBOX 主機,使用其中一個開發帳戶 (作為執行階段存取之虛擬使用者的特殊帳戶) 登入 Partner Center。
- 主體群組可以包含 XBOX 使用者識別碼 (XUID)、裝置識別碼、遊戲識別碼或服務識別碼。
- 沙箱可以包含遊戲識別碼、產品識別碼或服務設定識別碼 (SCID)。
- 主體群組會獲授與沙箱的存取權。

- 建立您的 Partner Center 使用者帳戶、每位使用者將用來登入以進行執行階段存取的開發帳戶,以及授與每位使用者成員資格的使用者群組。
- 建立受信任主機的裝置群組。
- 為您的每個開發沙箱精確指定哪些使用者群組和裝置群組可以存取其中的產品執行個體。

開發帳戶設定
XBOX One (或更新版本) 中的開發帳戶只是套用了特殊規則的標準 Microsoft 帳戶 (MSA)。 開發帳戶在 XBOX Live 中用於開發。 開發帳戶:- 必須在 Partner Center 中建立。
- 由發行者建立時,會被指派外部開發人員角色。
- 與建立開發帳戶的 Partner Center 帳戶相關聯。
- 只能登入開發套件。開發帳戶在零售裝置上會被拒絕登入。
- 可以免費購買 XBOX Live Developer Gold 訂閱或其他訂閱以進行測試。
使用者群組設定
使用者群組是第一種主體群組,是 Partner Center 使用者的集合。 當 Partner Center 使用者新增至使用者群組時,他們的開發帳戶會隨著這些 Partner Center 使用者一起流動。 因此,當使用者群組被指派給沙箱時,與該使用者群組中之 Partner Center 使用者相關聯的開發帳戶會新增至適當的主體群組,而主體群組會取得以支援該沙箱之主要資源集設定的原則。為存取沙箱而建立的使用者群組,與用來防止存取 Partner Center 中產品群組和產品之設定資料的使用者群組相同。
裝置設定
裝置也會新增至主體群組。 只有在透過 Game Developer Store 購買權利且裝置已佈建為開發套件時,裝置才能用作開發套件。 裝置佈建為開發套件之後,該裝置就會出現在可新增至裝置群組的裝置清單中。裝置群組設定
裝置群組是第二種主體群組,也可以獲授與沙箱的存取權。 其設定與上述使用者群組設定類似。沙箱
什麼是沙箱?
簡單來說,沙箱是在生產環境中分割資料的一種方式。為什麼我們需要沙箱?
就像使用者和裝置存取遊戲一樣,遊戲也會存取服務。 我們引進了「遊戲群組」的概念,讓一組遊戲獲授與服務資源的存取權。 XBOX One (或更新版本) 的所有內容 (包括預先發行和零售) 只有單一生產環境。 因此,必須防止遊戲的多個執行個體 (預先發行/零售) 在相同的資源執行個體上運作。沙箱中有什麼?
沙箱包含新增至沙箱之每個遊戲的產品執行個體。什麼是沙箱識別碼?
沙箱識別碼是遊戲、產品或服務設定之資料的分割單位。 多個遊戲可以存在於同一個沙箱中,這是它們共用任何服務設定資料的先決條件。 沙箱識別碼 (區分大小寫) 是下列格式的字串:<PublisherMoniker>.n。 以下說明範例沙箱識別碼 XLDP.5:- 發行者代稱在所有發行者之間是唯一的。因此,“XLDP” 是此特定發行者的發行者代稱。發行者代稱是在開發人員客戶經理於 Partner Center 中「啟用」發行者時建立的。
- 數字 “n” 識別沙箱的編號。在此案例中,“5” 是為此發行者建立的第六個沙箱。
哪些資料會沙箱化?
下圖顯示哪些使用者和遊戲資料會沙箱化。
全域覆寫沙箱
開發人員會在開發套件上設定沙箱識別碼,從而設定開發套件執行所在的沙箱;這也稱為全域覆寫沙箱。 因此,從開發套件中的遊戲 (殼層應用程式和一般應用程式) 向 XBOX Live 服務 (例如成就、配對、授權、EDS 等) 提出的所有要求,都會在該沙箱中進行。 全域覆寫沙箱也意味著瀏覽時只能看到在全域覆寫沙箱中擷取的內容。沙箱的類型
沙箱有兩種不同的類別。 這些類別的定義如下:- 發行者沙箱。發行者可以存取其開發中的沙箱。這些沙箱可能看起來像 XLDP.0、XLDP.1、XLDP.2、XLDP.3 等。這是發行者放置其遊戲產品執行個體的地方。這些沙箱的存取權僅限於發行者授與存取權的使用者/裝置
- Microsoft 沙箱。這些是內建的沙箱:RETAIL 和 CERT。只有 Microsoft 可以發佈至這些受保護的沙箱。
CERT 沙箱
當遊戲準備好正式推出時,必須先通過認證。 CERT 沙箱是由 Microsoft 控制的沙箱,只有認證人員才能存取。 發行者可以看到他們擁有的哪些內容正在進行認證。 在認證期間失敗的任何產品執行個體,都可以由發行者使用 Partner Center 帶回開發沙箱以進行偵錯和修正。RETAIL 沙箱
RETAIL 沙箱是為 XBOX One (或更新版本) 建立之所有內容的最終目的地。 遊戲通過認證之後,就會新增至 RETAIL 沙箱。 只有綠色簽署的內容才能在 RETAIL 沙箱中執行。 這有一個重要的含意,就是發行者主導的 Beta 版也是在 RETAIL 沙箱中進行。 在 RETAIL 沙箱中產生的資料代表真實的客戶生產資料。 RETAIL 沙箱中內容的存取權仍可透過內容隔離進行控制。 例如,發行者主導的 Beta 版在 RETAIL 沙箱中執行,由發行者選擇哪些主體群組可以存取發行者定義的 Beta 資源集遊戲。 Beta 遊戲產生的服務資料是真實的生產資料,並在遊戲正式推出後繼續存在。跨沙箱資料互動
根據定義,沙箱是限制資料共用的容器。 因此,不可能進行跨沙箱資料互動。組織您的沙箱
本節提供發行者如何組織沙箱的範例。 發行者需要了解如何使用沙箱來組織資料。 下列範例只顯示透過內容隔離進行的執行階段存取管理。案例 1:兩個遊戲,一個沙箱
發行者的基本結構可能是:- 兩個遊戲,發行者擁有的所有使用者和裝置在設計階段和執行階段都可以存取。
- 每個遊戲一個產品執行個體。

案例 2:一個遊戲,不同的小組
在此模型中,需求如下:- 一個遊戲。
- 開發小組處理每日組建。
- QA 小組處理每週的 LKG。
- 開發小組需要在發生錯誤時對每週 LKG 進行偵錯。
- 財務小組需要存取與遊戲目錄發行相關的價格卡和其他中繼資料。
無論組織方式為何,Partner Center 使用者都可以屬於多個使用者群組。

案例 3:兩個遊戲,完全分開
在此範例中,需求略有變化:- 兩個遊戲。
- 每個遊戲的存取權應限制為特定的一組人員。
- 每個遊戲一個產品執行個體。
- 一個需要存取遊戲之設計階段 Partner Center 設定資料的管理員使用者群組。此群組中的人員都是發行者的管理員,可以控制發佈至目錄的所有資料 (目錄中繼資料、財務、行銷、認證提交等)

案例 4:隨您喜好
由於連線數量眾多,為了讓說明簡短,我們選擇只顯示沙箱執行階段連線。 您也可以新增其他設計階段存取權限。 在此範例中,需求如下:- 只有特定人員可以存取其發行者內的特定遊戲。
- 發行者與來自不同公司的廠商合作,而這些廠商可能是短期的。
- 發行者應該能夠停用遊戲,並藉此防止存取廠商或全職員工曾有權存取的任何資料。
- TitleX 和 TitleY 在沙箱 XLDP.1 中各只有一個產品執行個體。
- TitleZ 有兩個產品執行個體,一個在沙箱 XLDP.2,另一個在沙箱 XLDP.3。
- 全職員工使用者群組 B 獲授與所有沙箱中產品執行個體的存取權。
- 廠商使用者群組 A 是僅限廠商的使用者群組,獲授與沙箱 XLDP.1 的存取權。
- 廠商裝置群組 C 是僅限廠商的使用者群組,獲授與沙箱 XLDP.3 的存取權。

