專利名稱:Xna關(guān)系管理的制作方法
XNA關(guān)系管理背景諸如用于玩視頻游戲的控制臺等媒體控制臺在近年來實(shí)現(xiàn)了重要的市場 滲透。因此,游戲開發(fā)者尤其關(guān)注以有利的方式生產(chǎn)游戲以便出售。然而,開 發(fā)游戲和其他媒體控制臺軟件要求大藝術(shù)家和程序員團(tuán)隊(duì)相當(dāng)?shù)呐?。由藝術(shù) 家和程序員組成的游戲開發(fā)團(tuán)隊(duì)通常對新游戲的離散部分工作,而對其自己開 發(fā)組內(nèi)的其他藝術(shù)家和程序員的并發(fā)工作沒有清楚的了解。在這樣的開發(fā)環(huán)境 中,由藝術(shù)家開發(fā)的游戲組件可包括若干組件元素,這些元素也可被包括在其 他組件中。游戲或其他軟件應(yīng)用程序的多個組件可共享軟件元素,不同的組件對同一 元素文件或數(shù)據(jù)具有依賴性關(guān)系。例如,游戲中汽車的形狀可由原始"汽車" 網(wǎng)格定義,對其應(yīng)用若干顏色、材質(zhì)和紋理。例如,可將特定的紅色用于車身 顏色,而包括紋理和顏色兩者的"鉻黃"可用于汽車上的高光處。在該示例中, 顏色/紋理"鉻黃"也可能用于游戲的其他汽車和組件。不幸的是,在游戲開發(fā) 期間,當(dāng)藝術(shù)家改變其他組件共享的顏色或紋理元素時,不可能容易地確定哪 些其他組件受到該藝術(shù)家的改變的影響。而且,多個依賴性可能直到應(yīng)用程序 被編譯和執(zhí)行時才變得明顯,導(dǎo)致不期望的改變僅在質(zhì)量審閱周期期間才變得 明顯。而且,有可能難以在編譯步驟之前確定在修改互相共享的組件紋理或顏 色時實(shí)際導(dǎo)致不期望改變而未審閱游戲中可能受到影響的每一組件的藝術(shù)家。通常作出導(dǎo)致曾經(jīng)使用的紋理文件在游戲中不再被使用但仍被包括在該 游戲的文件集中的改變。結(jié)果,眾多游戲包括不再被游戲使用或不再為游戲所 需的剩余的內(nèi)容和/或孤立的文件。因?yàn)榭赡懿磺宄裁唇M件可能會受到刪除紋 理文件的不利影響,因此游戲開發(fā)員在開發(fā)期間對刪除內(nèi)容是猶豫的。相應(yīng)地, 在游戲開發(fā)行業(yè)內(nèi)需要開發(fā)便于管理游戲內(nèi)容以及組件與呈現(xiàn)這些組件所使 用的文件之間的關(guān)系的新方法。需要以最小成本普遍適用,且解決在游戲開發(fā) 期間出現(xiàn)的這些和其他相關(guān)問題的方法。概述以下提供描述用于管理數(shù)字游戲內(nèi)容關(guān)系信息的實(shí)現(xiàn)的若干示例。游戲內(nèi) 容關(guān)系信息一般與存在于諸如客戶機(jī)-服務(wù)器游戲開發(fā)環(huán)境等分布式處理系統(tǒng) 內(nèi)的一組數(shù)字游戲內(nèi)容文件相關(guān)聯(lián)。以下更詳細(xì)描述的一個實(shí)現(xiàn)包括諸如提供用于在客戶機(jī)進(jìn)程與服務(wù)器進(jìn) 程之間通信的數(shù)據(jù)提供者API的步驟。該數(shù)據(jù)提供者API被描述為被配置成用于游戲內(nèi)容編輯應(yīng)用程序或工具。另一步驟針對使用該數(shù)據(jù)提供者API來生成資產(chǎn)關(guān)系管理文件。在該示例性實(shí)現(xiàn)中,該資產(chǎn)關(guān)系管理文件包括諸如關(guān)系引用和注釋等信息。該資產(chǎn)關(guān)系管理文件由數(shù)據(jù)提供者API為正由客戶機(jī)內(nèi)容編 輯進(jìn)程編輯的數(shù)字資產(chǎn)而產(chǎn)生。該內(nèi)容和編輯進(jìn)程例如可以是藝術(shù)編輯或聲音 編輯應(yīng)用程序的一部分。又一步驟針對將該資產(chǎn)關(guān)系管理文件存儲到一數(shù)據(jù)存 儲。最后,該示例性實(shí)現(xiàn)包括生成基于一組資產(chǎn)關(guān)系管理文件的資產(chǎn)關(guān)系圖的 步驟。該資產(chǎn)關(guān)系圖一般包括繪制數(shù)字游戲內(nèi)容文件之間的依賴性關(guān)系的資產(chǎn) 圖節(jié)點(diǎn)。以下描述的另一示例性實(shí)現(xiàn)包括提供用于在分布式處理系統(tǒng)中在客戶 機(jī)進(jìn)程與服務(wù)器進(jìn)程之間通信的圖API的步驟。在該示例性實(shí)現(xiàn)中,圖API 被配置成通過服務(wù)器進(jìn)程訪問關(guān)系圖以向客戶機(jī)進(jìn)程展示資產(chǎn)關(guān)系數(shù)據(jù)和注 釋數(shù)據(jù)。提供本概述以便以簡化形式介紹將在以下描述中進(jìn)一步描述的一些概念。 然而,本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵或必要特征,也不旨在用于 幫助確定所要求保護(hù)的主題的范圍。附圖當(dāng)結(jié)合附圖參考以下詳細(xì)描述時,可以更容易領(lǐng)會并更好地理解一個或多個示例性實(shí)施例及其修改的各個方面和附帶的優(yōu)點(diǎn),附圖中
圖1是適于實(shí)現(xiàn)一個或多個分級標(biāo)記和/或搜索功能的一般的常規(guī)計(jì)算設(shè)備的功能框圖;圖2是用于啟用數(shù)字內(nèi)容關(guān)系管理的系統(tǒng)的功能框圖;圖3是用于啟用數(shù)字內(nèi)容關(guān)系管理的系統(tǒng)的另一功能框圖;圖4是示出用于在分布式處理系統(tǒng)內(nèi)管理與數(shù)字游戲內(nèi)容文件相關(guān)聯(lián)的 數(shù)字游戲內(nèi)容關(guān)系信息的示例性方法的步驟的流程圖;圖5是示出用于通過ARJVL圖應(yīng)用程序編程接口 (API)來訪問資產(chǎn)關(guān)系 的示例性方法的流程圖;以及圖6是示出用于用ARM數(shù)據(jù)提供者API生成資產(chǎn)關(guān)系管理文件的示例性 方法的流程圖。描述附圖和所公開的實(shí)施例不是限定性的示例性實(shí)施例在所參考的附圖中示出。此處公開的實(shí)施例和附圖旨在被認(rèn) 為是說明性而非限制性的。而且,在以下權(quán)利要求書中,當(dāng)備選項(xiàng)列表在短語 "至少其中之一"或短語"之一"之前使用連詞"和"時,"和"的意義對應(yīng) 于連詞"或"。示例性計(jì)算系統(tǒng)圖1是用于實(shí)現(xiàn)在計(jì)算設(shè)備上諸如通過網(wǎng)絡(luò)、因特網(wǎng)或甚至在單個計(jì)算設(shè) 備上起動的數(shù)字內(nèi)容關(guān)系管理功能的各個方面的示例性計(jì)算設(shè)備和/或計(jì)算機(jī) 服務(wù)器的功能框圖。以下討論旨在提供對可實(shí)現(xiàn)以下討論的某些方法的合適的計(jì)算環(huán)境的簡 要概括描述。此外,以下討論示出了用于用計(jì)算系統(tǒng)實(shí)現(xiàn)諸如程序模塊等計(jì)算 機(jī)可執(zhí)行指令的上下文。 一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽 象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。本領(lǐng)域的技術(shù)人員可以 認(rèn)識到,可應(yīng)用其他計(jì)算系統(tǒng)配置,包括多處理器系統(tǒng)、大型機(jī)、個人計(jì)算機(jī)、 處理器控制的消費(fèi)電子產(chǎn)品、個人數(shù)字助理(PDA)(但在需要服務(wù)器功能時 可能沒有)等。 一個實(shí)現(xiàn)包括分布式計(jì)算環(huán)境,其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接 的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程 存儲器存儲設(shè)備中。參考圖1,描述了用于實(shí)現(xiàn)各個方法的示例性系統(tǒng)。該系統(tǒng)包括常規(guī)PC 20 形式的通用計(jì)算設(shè)備,其配備有處理單元21、系統(tǒng)存儲器22和系統(tǒng)總線23。 系統(tǒng)總線將包括系統(tǒng)存儲器在內(nèi)的各個系統(tǒng)組件耦合至處理單元21,且可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制器、外圍總線 和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲器包括只讀存儲器(ROM) 24和隨機(jī)存取存儲器(RAM) 25?;据斎?輸出系統(tǒng)26 (BIOS)包含允許諸如系統(tǒng)啟動時在PC20中的元 件之間傳遞信息的基本例程,它被存儲在ROM24中。PC20還包括用于對硬 盤(未示出)進(jìn)行讀寫的硬盤驅(qū)動器27、用于對可移動磁盤29進(jìn)行讀寫的磁 盤驅(qū)動器28、以及用于對諸如壓縮盤只讀存儲器(CD ROM)或其它光介質(zhì)等 可移動光盤30進(jìn)行讀寫的光盤驅(qū)動器31。硬盤驅(qū)動器27、磁盤驅(qū)動器28以 及光盤驅(qū)動器30分別通過硬盤驅(qū)動器接口 23、磁盤驅(qū)動器接口 32和光盤驅(qū)動 器接口 33連接至系統(tǒng)總線23。驅(qū)動器及其關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為PC 20提 供了對計(jì)算機(jī)可讀機(jī)器指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。 盡管所述示例性環(huán)境采用硬盤27、可移動磁盤29和可移動光盤31,但本領(lǐng)域 的技術(shù)人員可以認(rèn)識到,也可使用可存儲可由計(jì)算機(jī)訪問的數(shù)據(jù)和機(jī)器指令的 其他類型的計(jì)算機(jī)可讀介質(zhì),諸如磁帶盒、閃存卡、數(shù)字視頻盤(DVD)、貝 努利盒式磁帶、RAM、 ROM等。多個程序模塊和/或數(shù)據(jù)可被存儲在硬盤27、磁盤29、光盤31、 ROM24 或RAM25上,包括操作系統(tǒng)35、 一個或多個應(yīng)用程序36、其它程序模塊37 和程序或其他數(shù)據(jù)38。用戶可通過如鍵盤40和定位設(shè)備42等輸入設(shè)備在PC 20 中輸入命令和信息并提供控制輸入。定點(diǎn)設(shè)備42可包括鼠標(biāo)、指示筆、無線 遙控器或其他用戶交互式指示器。如以下描述中所使用的,術(shù)語"鼠標(biāo)"旨在 涵蓋可用于控制光標(biāo)在屏幕上的位置的任何定點(diǎn)設(shè)備。其它輸入設(shè)備(未示出) 可以包括話筒、操縱桿、觸覺操縱桿、搖桿、腳踏開關(guān)、游戲手柄、圓盤式衛(wèi) 星天線、掃描儀等。而且,PC20可包括用于與其他接口設(shè)備,諸如打印機(jī)或 網(wǎng)絡(luò)通信的藍(lán)牙無線電或其他無線接口。這些和其他輸入/輸出(I/O)設(shè)備可 通過耦合到系統(tǒng)總線23的I/O接口 46而連接到處理單元21。短語"I/O"接 口旨在涵蓋專門用于串行端口 、并行端口 、鍵盤端口和/或通用串行總線(USB ) 的每一接口??扇芜x地,監(jiān)視器47可經(jīng)由諸如視頻適配器48等適當(dāng)?shù)慕涌谶B 接至系統(tǒng)總線23。 一般而言,PC也可耦合到其他外圍輸出設(shè)備(未示出), 諸如揚(yáng)聲器(通過未示出的聲卡或其他音頻接口)和打印機(jī)。以下詳細(xì)描述的某些進(jìn)程可在單個機(jī)器上實(shí)踐,盡管PC 20也可使用至諸如遠(yuǎn)程計(jì)算機(jī)49等一臺或多臺遠(yuǎn)程計(jì)算機(jī)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。 遠(yuǎn)程計(jì)算機(jī)49可以是另一臺PC、服務(wù)器(可如PC—般配置)、路由器、網(wǎng) 絡(luò)PC、對等設(shè)備或衛(wèi)星或其他常見的網(wǎng)絡(luò)節(jié)點(diǎn)(它們均未被示出),且遠(yuǎn)程 計(jì)算機(jī)一般包括以上結(jié)合PC20描述的眾多或全部元素,盡管在圖1中僅對遠(yuǎn) 程計(jì)算機(jī)示出外部存儲器存儲設(shè)備50。圖1中描繪的邏輯連接包括局域網(wǎng) (LAN) 51和廣域網(wǎng)(WAN) 52。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)級計(jì)算機(jī) 網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。在一個特定的實(shí)現(xiàn)中,PC20是包括諸如 服務(wù)器計(jì)算機(jī)、其他PC、數(shù)據(jù)庫等其他計(jì)算設(shè)備的游戲開發(fā)環(huán)境的組件。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時,PC 20通過網(wǎng)絡(luò)接口或適配器53連接至 LAN 51。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時,PC20—般包括調(diào)制解調(diào)器54,或諸 如電纜調(diào)制解調(diào)器、數(shù)字用戶線(DSL)接口或綜合業(yè)務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)接 口等用于在諸如因特網(wǎng)等WAN 52上建立通信的其它裝置??梢允莾?nèi)置或外置 的調(diào)制解調(diào)器54可經(jīng)由I/O設(shè)備接口 46,即通過串行端口連接至系統(tǒng)總線23 或耦合至總線。在網(wǎng)絡(luò)化環(huán)境中,PC20所使用的程序模塊或其部分可被存儲 在遠(yuǎn)程存儲器存儲設(shè)備中??梢岳斫?,所示網(wǎng)絡(luò)連接是示例性的,且可以使用 諸如無線通信和寬帶網(wǎng)絡(luò)鏈路等在計(jì)算機(jī)之間建立通信鏈路的其它手段。示例性操作環(huán)境圖2是用于實(shí)現(xiàn)管理數(shù)字內(nèi)容之間的關(guān)系的各個方法的示例性操作環(huán)境 200的框圖。如圖2中所示,服務(wù)器200與數(shù)據(jù)存儲210和客戶機(jī)220通信。 在圖2中示出正由客戶機(jī)220生成的資產(chǎn)關(guān)系管理(ARM)文件235。服務(wù)器200可以是任何計(jì)算設(shè)備,諸如參考圖1討論的示例性計(jì)算設(shè)備和 /或計(jì)算機(jī)服務(wù)器。盡管本領(lǐng)域的技術(shù)人員可以理解,服務(wù)器200包括這樣的組 件,但為清楚并為簡化本公開起見,僅將服務(wù)器200示為包括處理器206和存 儲器207。存儲器207被示為包括關(guān)系管理器應(yīng)用程序201,它包括對象模型 模塊202、關(guān)系引擎模塊203,且也可包括ARM圖API (ARM_graph) 250, 它們各自將在以下詳細(xì)討論??蛻魴C(jī)220可以是任何計(jì)算設(shè)備或系統(tǒng),諸如參考圖1討論的示例性計(jì)算 設(shè)備和/或計(jì)算機(jī)服務(wù)器。在某些實(shí)現(xiàn)中,客戶機(jī)220是通過因特網(wǎng)上的安全連接(未示出)耦合至諸如LAN或WAN等網(wǎng)絡(luò)或一個或多個其他計(jì)算設(shè)備的 PC。在其他實(shí)現(xiàn)中,客戶機(jī)220可以是被配置成運(yùn)行諸如藝術(shù)編輯器、聲音編 輯器、資產(chǎn)報(bào)告生成器和其他生產(chǎn)性應(yīng)用程序等應(yīng)用程序的任何計(jì)算設(shè)備。如 圖2中所示,客戶機(jī)220包括藝術(shù)編輯器應(yīng)用程序221,它可用于訪問、創(chuàng)建、 修改和/或管理諸如數(shù)字游戲組件等數(shù)字內(nèi)容。數(shù)字游戲組件是可執(zhí)行游戲應(yīng)用 程序的一個元素,包括例如網(wǎng)格文件、紋理和/或材質(zhì)文件、聲音文件、人工智 能(AI)文件、或其他邏輯文件、或可與其他游戲組件共享依賴性的任何其他 數(shù)字資產(chǎn)文件。藝術(shù)編輯器221被示為包括ARM數(shù)據(jù)提供者API (ARM_data_provider) 230。然而,ARM數(shù)據(jù)提供者API 230可以是追加到藝 術(shù)編輯器221的或僅僅是藝術(shù)編輯器221通過API調(diào)用可訪問的附加組件或模 塊。ARM數(shù)據(jù)提供者API 230旨在將被容易地配置成對大量現(xiàn)有應(yīng)用程序進(jìn) 行翻新,以便允許按照開發(fā)平臺無關(guān)的格式提供有價(jià)值的資產(chǎn)關(guān)系數(shù)據(jù)。ARM文件235可包括關(guān)于特定數(shù)字資產(chǎn)的任何可導(dǎo)出信息,包括關(guān)系引 用236和注釋237。關(guān)系引用236是定義特定數(shù)字資產(chǎn)對任何其他數(shù)字資產(chǎn)具 有的依賴性或引用關(guān)系的邏輯陳述和/或指示符。例如,如果特定的數(shù)字資產(chǎn)是 網(wǎng)格文件,則關(guān)系引用236可以是該網(wǎng)格引用特定材質(zhì)文件的邏輯陳述。然而, 如果特定的數(shù)字資產(chǎn)改為是特定的材質(zhì)文件(諸如定義顏色的文件),則關(guān)系 引用236可以是網(wǎng)格依賴于該特定材質(zhì)文件的邏輯陳述。注釋237可包括可用 于導(dǎo)出的其他信息。例如,注釋可包括資產(chǎn)版本指示符、資產(chǎn)批準(zhǔn)指示符(例 如,指示藝術(shù)家停止操作)、資產(chǎn)描述、資產(chǎn)類型指示符、與資產(chǎn)相關(guān)聯(lián)的規(guī) 則以及與資產(chǎn)相關(guān)聯(lián)的屬性。注釋也可提供特定信息,諸如色深度指示符、與 資產(chǎn)相關(guān)聯(lián)的壓縮算法信息、或諸如用于指示對資產(chǎn)的最后一次編輯的特定曰 期或最后停止操作日期。在一個實(shí)現(xiàn)中,ARM文件235是以根據(jù)資產(chǎn)關(guān)系管 理模式的XML文檔具體化的數(shù)據(jù)結(jié)構(gòu)。在該實(shí)現(xiàn)中,模式定義表示由ARM 數(shù)據(jù)提供者API從資產(chǎn)文件中寫出的數(shù)據(jù)的對象(諸如資產(chǎn)標(biāo)識、與資產(chǎn)相關(guān) 聯(lián)的關(guān)系引用和各個注釋)的格式。盡管XML是廣泛接受且應(yīng)用程序中立的 文檔格式,但應(yīng)注意,ARM文件可用任何適當(dāng)?shù)奈臋n格式來具體化而不限于 XML格式。數(shù)據(jù)存儲210包括諸如ARM文件211和資產(chǎn)文件212以及資產(chǎn)關(guān)系圖215等多個數(shù)據(jù)結(jié)構(gòu),并對其提供存儲。ARM文件211可以是如關(guān)于ARM文件 235所述的任何資產(chǎn)關(guān)系管理文件。資產(chǎn)文件212—般是數(shù)字內(nèi)容文件,諸如 網(wǎng)格文件、材質(zhì)文件、聲音文件或另一數(shù)字游戲組件文件。資產(chǎn)關(guān)系圖215可 包括如圖2中由節(jié)點(diǎn)A、 B和C示出的多個節(jié)點(diǎn)。作為說明,圖2示出節(jié)點(diǎn)A 引用節(jié)點(diǎn)B和節(jié)點(diǎn)C,而節(jié)點(diǎn)B引用節(jié)點(diǎn)C,節(jié)C既不引用節(jié)點(diǎn)A也不引用 節(jié)點(diǎn)B。而且,節(jié)點(diǎn)A、 B和C可包括樹結(jié)構(gòu),該結(jié)構(gòu)還定義節(jié)點(diǎn)依賴性和諸 如注釋等附加信息的繪制(未示出)。作為說明并為清楚起見,服務(wù)器200被示為包括關(guān)系管理器201,該管理 器在圖2中被示為包括對象模型模塊202和關(guān)系引擎模塊203。然而,在某些 實(shí)現(xiàn)中,關(guān)系管理器201實(shí)際上是一個可執(zhí)行模塊,它提供對象模型202和關(guān) 系引擎203兩者的功能。在其他實(shí)現(xiàn)中,對象模型202和關(guān)系引擎203被實(shí)現(xiàn) 為分開但操作上集成的模塊。ARM圖API 250可任選地與對象模型202和關(guān) 系引擎203 —起位于服務(wù)器200上,或可被集成到服務(wù)器200的操作系統(tǒng)(未 示出)內(nèi)、或作為應(yīng)用程序的一部分、或可被配置為獨(dú)立的模塊。ARM圖API 250旨在被配置成對大量現(xiàn)有應(yīng)用程序翻新以便允許對資產(chǎn)關(guān)系圖215中的資 產(chǎn)關(guān)系數(shù)據(jù)的訪問,從而對這些現(xiàn)有應(yīng)用程序提供本方法的有利功能。對象模型202被配置成提供到資產(chǎn)關(guān)系圖215的接口。在一個實(shí)現(xiàn)中,對 象模型202被配置成通過導(dǎo)航資產(chǎn)關(guān)系圖中的節(jié)點(diǎn)并向作出調(diào)用的應(yīng)用程序返 回依賴性信息來響應(yīng)于來自請求資產(chǎn)信息的ARM圖API的調(diào)用。在這個情況 中,作出調(diào)用的應(yīng)用程序可以是用于與對象模型202通信(例如,通過ARM 圖API)的任何應(yīng)用程序,諸如第三方工具、各種自定義工具、游戲構(gòu)建系統(tǒng) 或甚至游戲本身。關(guān)系引擎203 —般被配置成聚集包含在數(shù)據(jù)存儲210中的 ARM文件(例如,ARM文件211)并生成該ARM文件所描述的所有不同關(guān) 系、依賴性和內(nèi)容注釋的多圖表示。在一個示例性實(shí)現(xiàn)中,關(guān)系引擎203被配置成實(shí)時監(jiān)控?cái)?shù)據(jù)存儲210以在 新的或經(jīng)修改的ARM文件被創(chuàng)建時標(biāo)識這些文件。在該實(shí)現(xiàn)中,關(guān)系引擎可 被配置成解析ARM文件并生成資產(chǎn)關(guān)系圖中包含由ARM文件所標(biāo)識的資產(chǎn) 的關(guān)系信息和注釋的節(jié)點(diǎn)。在未在圖2中示出的另一實(shí)現(xiàn)中,關(guān)系引擎203被 配置成響應(yīng)于ARM圖API調(diào)用在其控制下在運(yùn)行時在存儲器中實(shí)例化關(guān)系圖。在此實(shí)現(xiàn)中,資產(chǎn)關(guān)系圖可駐留在存儲器207中而非駐留在數(shù)據(jù)存儲210內(nèi)。該實(shí)現(xiàn)在運(yùn)行時間效率方面是優(yōu)選的,其中多個客戶機(jī)尋求對迅速改變的 資產(chǎn)關(guān)系信息的同時訪問,且其中節(jié)點(diǎn)的總數(shù)不是特別大。作為進(jìn)一步的說明,圖3是用于啟用數(shù)字內(nèi)容關(guān)系管理的合適的操作環(huán)境 的另一功能框圖。如圖3中所示,服務(wù)器200再次被示為與數(shù)據(jù)存儲210和客 戶機(jī)220通信。圖2中所示的實(shí)施例將數(shù)據(jù)存儲210再次示為包括ARM文件 211、資產(chǎn)文件212和資產(chǎn)關(guān)系圖215。服務(wù)器200被再次示為包括處理器206 和存儲器207,其中存儲器207內(nèi)存儲有關(guān)系管理器201。如上所述,關(guān)系管 理器201包括對象模型202和關(guān)系引擎203。為了討論這些元素中的每一個的 功能和能力,可對以上關(guān)于圖2的討論進(jìn)行參考。圖3的客戶機(jī)220表示諸如 以上參考圖l和2所討論的計(jì)算設(shè)備。盡管對于本領(lǐng)域的技術(shù)人員而言,顯然 客戶機(jī)設(shè)備220將包括圖1中的眾多其他組件,但為清楚起見,圖3僅示出處 理器226和用于存儲應(yīng)用程序300的存儲器227。 ARM圖API 250被描繪在應(yīng) 用程序300內(nèi)。然而,ARM圖API 250無需被集成到應(yīng)用程序300內(nèi),且在 某些實(shí)現(xiàn)中,它是用于客戶機(jī)200的應(yīng)用程序或操作系統(tǒng)(未示出)的插件或 獨(dú)立模塊。如上所述,ARM圖API 250旨在可被配置成對大量現(xiàn)有應(yīng)用程序和/或操 作系統(tǒng)翻新,以允許從在客戶機(jī)設(shè)備上執(zhí)行的進(jìn)程對資產(chǎn)關(guān)系圖215中的資產(chǎn) 關(guān)系數(shù)據(jù)的訪問。在一個示例中,應(yīng)用程序300是可用于生成資產(chǎn)依賴性報(bào)告 的報(bào)告工具,它可在游戲開發(fā)期間用來標(biāo)識孤立資產(chǎn)或跟蹤對資產(chǎn)文件的不想 要的改變。在另一實(shí)現(xiàn)中,應(yīng)用程序300可以是游戲構(gòu)建流水線的組件應(yīng)用程 序,.它可通過ARM圖API來調(diào)用資產(chǎn)關(guān)系圖215以便例如優(yōu)化游戲可執(zhí)行代 碼的構(gòu)建或重建、測試功能、實(shí)現(xiàn)質(zhì)量保證任務(wù)以及實(shí)現(xiàn)證書批準(zhǔn)進(jìn)程。圖4是示出用于在分布式處理系統(tǒng)內(nèi)管理與數(shù)字游戲內(nèi)容文件相關(guān)聯(lián)的 數(shù)字游戲內(nèi)容關(guān)系信息的示例性方法的步驟的流程圖。方法400在某些實(shí)施例 中可用如上參考圖l-3討論的組件、設(shè)備和技術(shù)來實(shí)現(xiàn)。在某些實(shí)現(xiàn)中,方法 400的一個或多個步驟被體現(xiàn)在存儲計(jì)算機(jī)可讀代碼的計(jì)算機(jī)可讀介質(zhì)上,使 得當(dāng)在諸如微處理器等計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)可讀代碼時,實(shí)現(xiàn)一系列步驟。 在以下描述中,參考可執(zhí)行某些方法步驟且與同樣可執(zhí)行某些方法步驟的服務(wù)器適當(dāng)通信的客戶機(jī)設(shè)備的處理器來描述方法400的各個步驟。在某些實(shí)現(xiàn)中,方法400的某些步驟可被組合,且可同時或按不同次序執(zhí)行,而不背離方法400的目的且也不產(chǎn)生不同的結(jié)果。方法400開始于步驟410,在那里提供用于在分布式處理系統(tǒng)中在客戶機(jī) 進(jìn)程與服務(wù)器進(jìn)程之間通信的數(shù)據(jù)提供者API。在一個實(shí)現(xiàn)中,該數(shù)據(jù)提供者 API可被配置成用于游戲內(nèi)容編輯應(yīng)用程序或工具。 一般而言,數(shù)據(jù)提供者 API可作為用于現(xiàn)有應(yīng)用程序或軟件模塊的插件、或附加組件而提供。在數(shù)據(jù) 提供者API被安裝并被配置為用于諸如用于網(wǎng)格或聲音編輯的藝術(shù)編輯器等 應(yīng)用程序時,啟用該API。在步驟420,用數(shù)據(jù)提供者API生成資產(chǎn)關(guān)系管理文件。在某些實(shí)現(xiàn)中, 資產(chǎn)關(guān)系管理文件可包括唯一標(biāo)識特定數(shù)字資產(chǎn)文件的數(shù)字資產(chǎn)標(biāo)識、描述與 其他數(shù)字資產(chǎn)文件的鏈接和/或依賴性關(guān)系的關(guān)系引用、以及可包括與資產(chǎn)文件 有關(guān)的信息的注釋。 一般而言,資產(chǎn)關(guān)系管理文件由數(shù)據(jù)提供者API從正在由 諸如編輯網(wǎng)格文件或聲音文件的客戶機(jī)內(nèi)容編輯進(jìn)程編輯的數(shù)字資產(chǎn)中寫出。在步驟430中,資產(chǎn)關(guān)系管理文件被存儲在一數(shù)據(jù)存儲中,例如被儲存在 硬盤上。資產(chǎn)關(guān)系管理文件可在其生成之后的任何時間存儲。在某些實(shí)現(xiàn)中, ARM文件首先被高速緩存然后被存儲。在另一實(shí)現(xiàn)中,ARM文件在被存儲之 前由關(guān)系引擎排隊(duì),以便允許對文件的即時處理。ARM文件的某些實(shí)現(xiàn)可包 括定義注釋對象和關(guān)系引用對象的資產(chǎn)關(guān)系管理模式。在一個示例中,資產(chǎn)關(guān) 系管理文件以根據(jù)資產(chǎn)關(guān)系管理模式的XML文檔來具體化。在另一示例中, 注釋可包括資產(chǎn)版本指示符、資產(chǎn)批準(zhǔn)指示符、資產(chǎn)描述、或色深度指示符中 的一個或多個。在其他示例中,注釋可包括以下的一個或多個與資產(chǎn)相關(guān)聯(lián) 的壓縮算法數(shù)據(jù)、日期指示符、資產(chǎn)類型指示符、與資產(chǎn)相關(guān)聯(lián)的規(guī)則、或與 資產(chǎn)相關(guān)聯(lián)的屬性。注釋可以是可用于從資產(chǎn)寫出并作為資源對該進(jìn)程中的其 他用戶可用的任何信息。在步驟440中,基于資產(chǎn)關(guān)系管理文件生成資產(chǎn)關(guān)系圖。在某些實(shí)現(xiàn)中, 資產(chǎn)關(guān)系圖由繪制一組數(shù)字游戲內(nèi)容文件之間的依賴性和引用關(guān)系的一系列 資產(chǎn)圖節(jié)點(diǎn)組成。在一個示例性實(shí)現(xiàn)中,生成的步驟包括首先將資產(chǎn)關(guān)系管理 文件提供給關(guān)系管理引擎的步驟。在該實(shí)現(xiàn)中,關(guān)系管理引擎可被配置成與數(shù)據(jù)存儲通信。該實(shí)現(xiàn)還包括解析資產(chǎn)關(guān)系管理文件以標(biāo)識每一關(guān)系引用和注釋 的步驟。該實(shí)現(xiàn)的最后一個步驟包括在資產(chǎn)關(guān)系圖中生成節(jié)點(diǎn)樹。在該步驟中, 節(jié)點(diǎn)樹首先與資產(chǎn)關(guān)系管理文件相關(guān)聯(lián),然后被映射到資產(chǎn)關(guān)系圖中與在解析 步驟中標(biāo)識的任何關(guān)系引用和注釋相關(guān)聯(lián)的每一資產(chǎn)節(jié)點(diǎn)。從而,資產(chǎn)關(guān)系圖 的每一節(jié)點(diǎn)可對應(yīng)于諸如游戲組件等數(shù)字內(nèi)容文件,且可繪制該節(jié)點(diǎn)本身與關(guān) 系管理引擎可訪問的ARM文件所描述的任何其他數(shù)字內(nèi)容文件之間的關(guān)系。 另一示例性的實(shí)現(xiàn)還包括配置關(guān)系引擎以監(jiān)控?cái)?shù)據(jù)存儲并標(biāo)識每一新資產(chǎn)管 理文件然后調(diào)用關(guān)系引擎以將每一標(biāo)識的新資產(chǎn)管理文件作為唯一節(jié)點(diǎn)映射 到資產(chǎn)關(guān)系圖的實(shí)例化中的步驟。應(yīng)注意到,資產(chǎn)關(guān)系圖可在數(shù)據(jù)存儲內(nèi)或任 何其他合適的存儲器位置內(nèi)實(shí)例化,諸如在服務(wù)器存儲器內(nèi)。另一示例性實(shí)現(xiàn)還包括提供用于在分布式處理系統(tǒng)中在客戶機(jī)進(jìn)程與服務(wù)器進(jìn)程之間通信的圖API的步驟。在某些實(shí)現(xiàn)中,圖API可被配置成通過服 務(wù)器進(jìn)程訪問關(guān)系圖以便向客戶機(jī)進(jìn)程展示資產(chǎn)關(guān)系數(shù)據(jù)和注釋數(shù)據(jù)。圖API 的一個實(shí)現(xiàn)包括一系列步驟,諸如接收請求與特定資產(chǎn)相關(guān)聯(lián)的信息的客戶機(jī) 進(jìn)程對圖API的調(diào)用,以及響應(yīng)于該調(diào)用從圖API發(fā)出資產(chǎn)信息請求。其他步 驟包括向關(guān)系圖詢問與特定資產(chǎn)相關(guān)聯(lián)的信息,然后從圖API向客戶機(jī)進(jìn)程返 回對請求的響應(yīng)。在該實(shí)現(xiàn)中,響應(yīng)與特定資產(chǎn)相關(guān)聯(lián)且是基于詢問的。另一示例性實(shí)現(xiàn)包括一系列步驟,諸如通過圖API訪問資產(chǎn)關(guān)系對象模 型。在該實(shí)現(xiàn)中,資產(chǎn)關(guān)系對象模型被配置成導(dǎo)航資產(chǎn)關(guān)系圖的多個資產(chǎn)節(jié)點(diǎn), 然后展示關(guān)系引用和注釋。該實(shí)現(xiàn)中的下一步驟包括標(biāo)識資產(chǎn)關(guān)系圖中與特定 資產(chǎn)相關(guān)聯(lián)的每一關(guān)系引用。圖5是示出用于通過ARM圖應(yīng)用程序編程接口 (API)來訪問資產(chǎn)關(guān)系 的示例性方法500的流程圖。方法500在某些實(shí)施例中可用如上參考圖1-3討 論的組件和技術(shù)來實(shí)現(xiàn)。在某些實(shí)現(xiàn)中,方法500的一個或多個步驟被體現(xiàn)在 包含計(jì)算機(jī)可讀代碼的計(jì)算機(jī)可讀介質(zhì)中,使得當(dāng)在諸如微處理器等計(jì)算設(shè)備 上執(zhí)行計(jì)算機(jī)可讀代碼時,實(shí)現(xiàn)一系列步驟。在以下描述中,參考可執(zhí)行某些 方法步驟且與同樣可執(zhí)行該方法的其他部分的服務(wù)器適當(dāng)通信的客戶機(jī)設(shè)備 的處理器來描述方法500的一部分。在某些實(shí)現(xiàn)中,方法500的某些步驟可被 組合,且同時或按不同次序執(zhí)行,而不背離方法500的目的且也不產(chǎn)生不同的結(jié)果。方法500大體描述API進(jìn)程,并始于步驟510。在步驟510中,客戶機(jī)進(jìn)程發(fā)出ARM圖調(diào)用。ARM圖調(diào)用可包括一個 或多個調(diào)用參數(shù),諸如資產(chǎn)標(biāo)識符、數(shù)據(jù)存儲標(biāo)識符和客戶機(jī)所請求的功能。 ARM圖調(diào)用可在啟用圖API的任何時間進(jìn)行。在某些實(shí)現(xiàn)中,圖API可位于 客戶機(jī)側(cè)或服務(wù)器側(cè),但在這兩種情況中均可由客戶機(jī)進(jìn)程調(diào)用。在步驟520,服務(wù)器迸程接收ARM圖調(diào)用,然后解析該調(diào)用來檢索參數(shù)。 在某些實(shí)現(xiàn)中,ARM圖調(diào)用立即調(diào)用服務(wù)器進(jìn)程來解析該調(diào)用并檢索參數(shù)。 在其他實(shí)現(xiàn)中,在多個調(diào)用可在一小窗口內(nèi)從不同客戶機(jī)到達(dá)的情況下,調(diào)用 可被高速緩存在FIFO緩沖區(qū)或隊(duì)列中,然后按照接收的次序服務(wù)。在步驟530中,服務(wù)器進(jìn)程響應(yīng)于ARM圖調(diào)用加載ARM圖。ARM圖可 從位于數(shù)據(jù)存儲的現(xiàn)有ARM圖加載,或可作為基于調(diào)用而在運(yùn)行時生成的實(shí) 例加載。ARM圖可基于是否有另一加載進(jìn)程正在執(zhí)行而被立即加載或排隊(duì)。 在一個實(shí)現(xiàn)中,通過首先訪問數(shù)據(jù)存儲中對應(yīng)于數(shù)字資產(chǎn)文件的每一 ARM文 件,然后從每一ARM文件提取對資產(chǎn)文件的每一引用,為每一資產(chǎn)文件生成 節(jié)點(diǎn),然后經(jīng)由節(jié)點(diǎn)繪制資產(chǎn)文件之間的每一關(guān)系來加載ARM圖。在步驟540中,服務(wù)器進(jìn)程響應(yīng)于ARM圖調(diào)用詢問ARM圖。 一般,詢 問是基于從ARM圖調(diào)用解析出的參數(shù)的。在一個示例性實(shí)現(xiàn)中,詢問包括基 于從ARM圖調(diào)用中解析出的參數(shù)以及與特定資產(chǎn)文件有關(guān)的表面關(guān)系和注釋 來導(dǎo)航ARM圖的一個或多個節(jié)點(diǎn)以標(biāo)識對應(yīng)于特定資產(chǎn)文件的一個或多個資 產(chǎn)標(biāo)識符。詢問可在接收調(diào)用之后的任何時間進(jìn)行,且ARM圖可用于詢問。在步驟550,服務(wù)器進(jìn)程發(fā)出具有包括資產(chǎn)標(biāo)識符、以及資產(chǎn)關(guān)系引用和 注釋的至少其中之一的多個確認(rèn)參數(shù)的ARM圖確認(rèn)。在某些實(shí)現(xiàn)中,確認(rèn)參 數(shù)可包括由ARM圖詢問確定的關(guān)系和注釋。在某些實(shí)現(xiàn)中,服務(wù)器進(jìn)程可在 詢問完成之后立即發(fā)出ARM圖確認(rèn)。在其他實(shí)現(xiàn)中,可根據(jù)外部參數(shù)對ARM_ 圖確認(rèn)排隊(duì)并在稍后發(fā)出。在步驟560中,客戶機(jī)進(jìn)程接收ARM圖確認(rèn)。在某些實(shí)現(xiàn)中,客戶機(jī)進(jìn) 程可在確認(rèn)發(fā)出之后的任何時間接收ARM圖確認(rèn),且客戶機(jī)進(jìn)程對接收通信 是活動的。其他實(shí)現(xiàn)包括解析ARM圖確認(rèn)以檢索確認(rèn)參數(shù)然后將所檢索到的 參數(shù)提供給客戶機(jī)應(yīng)用程序進(jìn)程的步驟。在一個示例中,ARM圖API可被配置成接收ARM圖確認(rèn),解析確認(rèn)參數(shù)然后將檢索到的參數(shù)提供給例如報(bào)告應(yīng) 用程序或藝術(shù)編輯器。在一個示例性實(shí)現(xiàn)中,存儲在有形計(jì)算機(jī)可讀介質(zhì)上的數(shù)據(jù)結(jié)構(gòu)包括表示第一資產(chǎn)的第一ARM圖節(jié)點(diǎn)。在該實(shí)現(xiàn)中,第一節(jié)點(diǎn)可包括用于唯一標(biāo)識諸如游戲組件等第一數(shù)字資產(chǎn)的第一資產(chǎn)標(biāo)識符、定義與另一資產(chǎn)的關(guān)系的關(guān)系 引用、和可包括諸如二進(jìn)制名或根目錄等關(guān)于資產(chǎn)的信息的注釋。在該實(shí)現(xiàn)中, 該數(shù)據(jù)結(jié)構(gòu)還包括表示第二資產(chǎn)的第二關(guān)系圖節(jié)點(diǎn),該第二資產(chǎn)包括第二資產(chǎn) 標(biāo)識符,以及映射到第一關(guān)系圖節(jié)點(diǎn)的第二關(guān)系引用和第二注釋的至少其中之圖6是示出用于用ARM數(shù)據(jù)提供者API來生成資產(chǎn)關(guān)系管理文件的示例 性方法600的流程圖。方法600在某些實(shí)施例中可用如上參考圖l-3討論的組 件和技術(shù)來實(shí)現(xiàn)。在某些實(shí)現(xiàn)中,方法600的一個或多個步驟被體現(xiàn)在包含計(jì) 算機(jī)可讀代碼的計(jì)算機(jī)可讀介質(zhì)上,使得當(dāng)在諸如微處理器等計(jì)算設(shè)備上執(zhí)行 計(jì)算機(jī)可讀代碼時,實(shí)現(xiàn)一系列步驟。在以下描述中,參考可執(zhí)行某些方法步 驟且與同樣可執(zhí)行某些方法步驟的服務(wù)器適當(dāng)通信的客戶機(jī)設(shè)備的處理器來 描述方法600的各個步驟。在某些實(shí)現(xiàn)中,方法600的某些步驟可被組合,同 時或按不同次序執(zhí)行,而不背離方法600的目的且也不產(chǎn)生不同的結(jié)果。方法 600大體描述可包括應(yīng)用程序進(jìn)程與客戶機(jī)進(jìn)程之間的通信的API進(jìn)程。方法 600開始于步驟610。在步驟610中,應(yīng)用程序進(jìn)程發(fā)出ARM數(shù)據(jù)提供者調(diào)用,它包括一個或 多個調(diào)用參數(shù),諸如資產(chǎn)標(biāo)識符、客戶機(jī)請求的功能、關(guān)系引用和注釋。在一 個實(shí)現(xiàn)中,客戶機(jī)請求的功能是將參數(shù)中的一個或多個寫出到ARM文件的請 求。在一個實(shí)現(xiàn)中,應(yīng)用程序進(jìn)程與諸如藝術(shù)編輯器或聲音編輯器等編輯器或 報(bào)告生成應(yīng)用程序相關(guān)聯(lián)。在步驟620中,客戶機(jī)進(jìn)程接收ARM數(shù)據(jù)提供者調(diào)用,并作為響應(yīng),解 析調(diào)用以檢索參數(shù)并執(zhí)行客戶機(jī)請求的功能。在一個示例性實(shí)現(xiàn)中,客戶機(jī)進(jìn) 程與API模塊相關(guān)聯(lián)。在步驟630中,客戶機(jī)進(jìn)程發(fā)出包括檢索到的參數(shù)的ARM文件。在一個 示例性實(shí)現(xiàn)中,該ARM文件是根據(jù)資產(chǎn)關(guān)系管理模式格式化的XML文檔,該模式定義對應(yīng)于一個或多個參數(shù)的一個或多個對象。在一個示例中,資產(chǎn)關(guān) 系管理模式是簡單列表。在另一示例中,資產(chǎn)關(guān)系管理模式是節(jié)點(diǎn)樹。ARM文件可具有允許ARM文件與各種成品(即,現(xiàn)有)軟件包容易地交換或一起 使用的任何合適的文檔格式和模式。在步驟640中,服務(wù)器進(jìn)程接收ARM文件并將ARM文件存儲在數(shù)據(jù)存 儲(例如,硬盤驅(qū)動器)中。在某些實(shí)現(xiàn)中,ARM文件可與其他文件,包括 與ARM文件有關(guān)的資產(chǎn)文件一起被本地存儲。在其他實(shí)現(xiàn)中,站外(off-site) 儲存庫可存儲ARM文件供在按需的基礎(chǔ)上檢索。在又一實(shí)現(xiàn)中,ARM文件 可被存儲在由資產(chǎn)關(guān)系引擎控制的易失性或非易失性存儲器位置中,以允許對 運(yùn)行時資產(chǎn)關(guān)系圖創(chuàng)建的運(yùn)行時訪問。作為進(jìn)一步的說明,可參考一個游戲開發(fā)環(huán)境來描述上述內(nèi)容管理應(yīng)用程 序和組件的示例性應(yīng)用。例如,由三個分開組構(gòu)成的游戲開發(fā)團(tuán)隊(duì)承擔(dān)為新的 視頻游戲開發(fā)一組車輛的任務(wù)。第一組要開發(fā)消防車,第二組要開發(fā)警車,而 第三組要開發(fā)賽車。第一團(tuán)隊(duì)開發(fā)消防車網(wǎng)格,它是定義消防車形狀的線框。 該團(tuán)隊(duì)將網(wǎng)格文件保存到中央儲存庫,并開始開發(fā)材質(zhì)文件和聲音文件,它們 將與網(wǎng)格文件相關(guān)聯(lián)并在渲染消防車時使用。在僅開發(fā)了消防車紅色的右側(cè)陰 影之后,第一組保存網(wǎng)格文件以及至消防車紅色材質(zhì)文件的鏈接和至預(yù)先存在 的引擎聲音文件的鏈接。消防車的所有文件都被保存到其他開發(fā)組可訪問的同 一儲存庫。同時,第二開發(fā)組根據(jù)現(xiàn)有汽車網(wǎng)格文件建立警車資產(chǎn)文件,為警車的黑 色、白色和鉻黃部分選擇預(yù)先存在的材質(zhì)文件,然后創(chuàng)建警笛聲音文件,其全 部由警車資產(chǎn)網(wǎng)格文件在該文件與所引用的組件文件一起被保存到中央儲存 庫時引用。第三組建立新的跑車網(wǎng)格,并將其鏈接至消防車紅色材質(zhì)文件、鉻 黃材質(zhì)文件以及預(yù)先存在的引擎聲音文件。然而,第三組在開發(fā)期間判定預(yù)先 存在的引擎聲音文件對跑車的低吼是不適當(dāng)?shù)?,并打開聲音文件以便編輯。該 團(tuán)隊(duì)希望知道這樣的改變將會對游戲中的任何其他文件造成什么影響,但由于 各組獨(dú)立工作,第三組不了解其他組是否正在使用同一內(nèi)容文件或?qū)璉擎聲音 的聲音文件作出的改變?nèi)绾斡绊懹螒虻钠渌Y產(chǎn)。然而,有了采用上述概念的游戲開發(fā)系統(tǒng),當(dāng)保存上述資產(chǎn)文件中的每一個時,一ARM文件也由ARM數(shù)據(jù)提供者API創(chuàng)建,它向根據(jù)關(guān)系管理模式 的XML文檔寫出資產(chǎn)文件對其他資產(chǎn)文件具有的基本關(guān)系以及包含關(guān)于資產(chǎn) 文件的有用信息的注釋。ARM文件與其他文件,諸如其表示的原始資產(chǎn)文件 (例如,諸如汽車網(wǎng)格、顏色、紋理和聲音或邏輯文件等的材質(zhì)文件) 一起存 儲在中央數(shù)據(jù)存儲中。ARM文件然后可用于生成繪制由ARM文件表示的資 產(chǎn)文件之間的所有依賴性關(guān)系的資產(chǎn)關(guān)系圖。重要的是注意到,可對現(xiàn)有游戲 開發(fā)或內(nèi)容編輯套件翻新ARM數(shù)據(jù)提供者API,且用于模式化ARM文件中 所包含的數(shù)據(jù)的關(guān)系管理模式可相當(dāng)容易地跨多個平臺應(yīng)用。該能力可向使用 不同或甚至專用開發(fā)工具的不同公司提供按照可由其他方使用的形式導(dǎo)出資 產(chǎn)文件依賴性信息和關(guān)于數(shù)字資產(chǎn)的其他數(shù)據(jù)的能力。例如,在上述第三組訪問預(yù)先存在的引擎聲音文件時,內(nèi)容編輯應(yīng)用程序 可經(jīng)由圖API來訪問關(guān)系圖以確定另一資產(chǎn)文件,即消防車資產(chǎn)文件依賴于該 引擎聲音文件。第三組因此將認(rèn)識到,所編輯的引擎聲音必須被保存到新文件 以避免改變消防車的引擎聲音。類似地,當(dāng)?shù)谌M訪問鉻黃材質(zhì)文件時,可采 用ARM圖API來向該組警告警車資產(chǎn)文件依賴于該鉻黃材質(zhì)文件,從而鉻黃 材質(zhì)文件不應(yīng)改變(在同一文件名的情況下),因?yàn)檫@樣的改變將影響新游戲 中警車的外觀。如可從以上示例中明顯的,工作于一游戲上的多個組可實(shí)時地、在文件被編輯和創(chuàng)建時、甚至跨不同的開發(fā)平臺跟蹤他們正在工作的資產(chǎn)文 件,諸如網(wǎng)格文件、材質(zhì)文件、聲音文件、人工智能(AI)文件等。而且,通 過ARM數(shù)據(jù)提供者API和圖API,有可能在編譯游戲之前確定資產(chǎn)文件依賴 性,從而消除孤立文件和冗余以減輕軟件"腫脹",使開發(fā)流水線流線化,并 改進(jìn)質(zhì)量保證進(jìn)程。盡管本新穎的開發(fā)結(jié)合實(shí)現(xiàn)它的優(yōu)選形式及其修改描述,但本領(lǐng)域的普通 技術(shù)人員可以理解,可在所附權(quán)利要求書的范圍之內(nèi)對本概念作出眾多其他修 改。相應(yīng)地,概念的范圍決不旨在受到以上描述的限制,而是完全通過參考所 附權(quán)利要求書來確定。
權(quán)利要求
1.一種用于管理與內(nèi)容開發(fā)環(huán)境內(nèi)的多個數(shù)字游戲內(nèi)容文件相關(guān)聯(lián)的數(shù)字游戲內(nèi)容關(guān)系信息以允許在內(nèi)容編輯進(jìn)程請求時向其展示數(shù)字游戲內(nèi)容文件之間的依賴性的方法,包括以下步驟(a)提供用于在所述內(nèi)容開發(fā)環(huán)境中在客戶機(jī)進(jìn)程與服務(wù)器進(jìn)程之間通信的數(shù)據(jù)提供者應(yīng)用程序編程接口(API),所述數(shù)據(jù)提供者API被配置成用于游戲內(nèi)容編輯應(yīng)用程序;(b)用所述數(shù)據(jù)提供者API生成資產(chǎn)關(guān)系管理文件,所述資產(chǎn)關(guān)系管理文件包括資產(chǎn)標(biāo)識符以及關(guān)系引用和注釋的至少其中之一,其中所述資產(chǎn)關(guān)系管理文件由所述數(shù)據(jù)提供者API從正由所述客戶機(jī)內(nèi)容編輯進(jìn)程編輯的數(shù)字資產(chǎn)中寫出;(c)將所述資產(chǎn)關(guān)系管理文件存儲到數(shù)據(jù)存儲;以及(d)至少基于所述資產(chǎn)關(guān)系管理文件來生成資產(chǎn)關(guān)系圖,所述資產(chǎn)關(guān)系圖包括多個資產(chǎn)圖節(jié)點(diǎn),所述資產(chǎn)圖節(jié)點(diǎn)繪制多個數(shù)字游戲內(nèi)容文件之間的依賴性關(guān)系,每一節(jié)點(diǎn)由一特定的資產(chǎn)標(biāo)識符唯一標(biāo)識,從而允許在內(nèi)容編輯進(jìn)程請求時向其展示所述數(shù)字游戲內(nèi)容文件之間的依賴性關(guān)系。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括提供用于在所述內(nèi)容開 發(fā)環(huán)境中在客戶機(jī)進(jìn)程與服務(wù)器進(jìn)程之間通信的圖API的步驟,所述圖API 被配置成用于通過服務(wù)器迸程訪問所述關(guān)系圖以向所述客戶機(jī)進(jìn)程展示資產(chǎn) 關(guān)系數(shù)據(jù)和注釋數(shù)據(jù)。
3. 如權(quán)利要求2所述的方法,還包括以下步驟(a) 從請求與特定資產(chǎn)相關(guān)聯(lián)的信息的客戶機(jī)進(jìn)程接收對所述圖API的 調(diào)用;(b) 響應(yīng)于所述調(diào)用,從所述圖API發(fā)出資產(chǎn)信息請求;(c) 向所述資產(chǎn)關(guān)系圖詢問與所述特定資產(chǎn)相關(guān)聯(lián)的信息;以及(d) 從所述圖API返回對于所述對客戶機(jī)進(jìn)程的調(diào)用的響應(yīng),所述響應(yīng) 與所述特定資產(chǎn)相關(guān)聯(lián),并基于從所述詢問步驟得到的信息。
4. 如權(quán)利要求3所述的方法,其特征在于,所述向關(guān)系圖詢問與特定資產(chǎn)相關(guān)聯(lián)的信息的步驟包括以下步驟(a) 通過所述圖API訪問資產(chǎn)關(guān)系對象模型,所述資產(chǎn)關(guān)系對象模型被 配置成導(dǎo)航所述資產(chǎn)關(guān)系圖的多個資產(chǎn)圖節(jié)點(diǎn),從而展示關(guān)系引用和注釋;以及(b) 在所述資產(chǎn)關(guān)系圖中標(biāo)識與所述特定資產(chǎn)相關(guān)聯(lián)的每一關(guān)系引用。
5. 如權(quán)利要求1所述的方法,其特征在于,還包括提供資產(chǎn)關(guān)系管理模式的步驟,所述資產(chǎn)關(guān)系管理模式定義注釋對象和關(guān)系引用對象的至少其中之
6. 如權(quán)利要求5所述的方法,其特征在于,所述資產(chǎn)關(guān)系管理文件包括以 XML文檔來具體化的資產(chǎn)關(guān)系管理模式。
7. 如權(quán)利要求1所述的方法,其特征在于,所述注釋是以下其中之一(a) 資產(chǎn)版本指示符;(b) 資產(chǎn)批準(zhǔn)指示符; (C) 資產(chǎn)描述;(d) 色深度指示符;(e) 與所述資產(chǎn)相關(guān)聯(lián)的壓縮算法數(shù)據(jù);(f) 日期指示符(g) 資產(chǎn)類型指示符;(h) 與所述資產(chǎn)相關(guān)聯(lián)的規(guī)則;以及(i) 與所述資產(chǎn)相關(guān)聯(lián)的屬性。
8. 如權(quán)利要求1所述的方法,其特征在于,所述生成關(guān)系圖的步驟包括以 下步驟(a) 將所述資產(chǎn)關(guān)系管理文件提供給關(guān)系管理引擎,所述關(guān)系管理引擎 被配置成用于與所述數(shù)據(jù)存儲通信;(b) 解析所述資產(chǎn)關(guān)系管理文件以標(biāo)識每一關(guān)系引用和注釋;以及(c) 在所述資產(chǎn)關(guān)系圖中生成節(jié)點(diǎn)樹,所述節(jié)點(diǎn)樹與所述資產(chǎn)關(guān)系管理 文件相關(guān)聯(lián),并映射到所述資產(chǎn)關(guān)系圖中與在所述解析步驟中標(biāo)識的關(guān)系引用 和注釋的至少其中之一相關(guān)聯(lián)的每一資產(chǎn)節(jié)點(diǎn)。
9. 如權(quán)利要求8所述的方法,還包括以下步驟(a) 將所述關(guān)系管理引擎配置成監(jiān)控所述數(shù)據(jù)存儲并標(biāo)識每一新資產(chǎn) 管理文件;以及(b) 調(diào)用所述關(guān)系管理引擎以將由此標(biāo)識的每一新資產(chǎn)管理文件映射 到所述資產(chǎn)關(guān)系圖的實(shí)例化內(nèi)作為資產(chǎn)節(jié)點(diǎn)。
10. —種具有機(jī)器可讀指令的存儲器介質(zhì),所述指令用于在分布式處理 系統(tǒng)中在客戶機(jī)進(jìn)程與服務(wù)器進(jìn)程之間通信以允許展示多個數(shù)字內(nèi)容文件之 間的關(guān)系信息,所述計(jì)算機(jī)可執(zhí)行指令當(dāng)由計(jì)算設(shè)備執(zhí)行時使多個功能被實(shí) 現(xiàn),所述功能包括-(a) 由所述客戶機(jī)進(jìn)程發(fā)出具有多個調(diào)用參數(shù)的ARM圖調(diào)用,所述參 數(shù)包括資產(chǎn)標(biāo)識符、數(shù)據(jù)存儲標(biāo)識符和客戶機(jī)請求功能;(b) 由所述服務(wù)器進(jìn)程接收所述ARM圖調(diào)用,并解析所述ARM圖調(diào) 用以檢索所述多個調(diào)用參數(shù);以及(c) 由所述服務(wù)器進(jìn)程響應(yīng)于所述ARM圖調(diào)用而加載ARM圖,由此 允許展示所述數(shù)字內(nèi)容文件之間的關(guān)系信息。
11. 如權(quán)利要求10所述的存儲器介質(zhì),其特征在于,所述機(jī)器可讀指 令當(dāng)被執(zhí)行時還使以下功能被實(shí)現(xiàn)(a) 由所述服務(wù)器進(jìn)程響應(yīng)于所述ARM圖調(diào)用而詢問所述ARM圖;(b) 由所述服務(wù)器進(jìn)程發(fā)出具有包括所述資產(chǎn)標(biāo)識符、以及資產(chǎn)關(guān)系引 用和注釋的至少其中之一的多個確認(rèn)參數(shù)的ARM圖確認(rèn);以及(c) 由所述客戶機(jī)進(jìn)程接收所述ARM圖確認(rèn)。
12. 如權(quán)利要求11所述的存儲器介質(zhì),其特征在于,所述機(jī)器可讀指 令當(dāng)被執(zhí)行時還使以下功能被實(shí)現(xiàn)(a) 解析所述ARM圖確認(rèn)以檢索所述多個確認(rèn)參數(shù)的至少其中之一;以及(b) 將檢索到的至少一個參數(shù)提供給客戶機(jī)應(yīng)用程序進(jìn)程,由此展示所 述數(shù)字內(nèi)容文件之間的關(guān)系信息。
13. 如權(quán)利要求11所述的存儲器介質(zhì),其特征在于,所述存儲器介質(zhì) 其上存儲有ARM圖數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括(a) 表示第一資產(chǎn)的第一 ARM圖節(jié)點(diǎn),所述第一 ARM圖節(jié)點(diǎn)包括第 一資產(chǎn)標(biāo)識符以及關(guān)系引用和注釋的至少其中之一;以及(b) 表示第二資產(chǎn)的第二關(guān)系圖節(jié)點(diǎn),所述第二資產(chǎn)包括第二資產(chǎn)標(biāo)識 符,以及映射到所述第一關(guān)系圖節(jié)點(diǎn)的第二關(guān)系引用和第二注釋的至少其中之
14. 如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述機(jī)器可 讀指令允許應(yīng)用程序進(jìn)程與客戶機(jī)進(jìn)程之間的通信,且所述指令當(dāng)被執(zhí)行時實(shí) 現(xiàn)以下功能(a) 由所述應(yīng)用程序進(jìn)程發(fā)出具有多個調(diào)用參數(shù)的ARM數(shù)據(jù)提供者調(diào) 用,所述參數(shù)包括資產(chǎn)標(biāo)識符、客戶機(jī)請求的功能以及關(guān)系引用和注釋的至少 其中之一;(b) 由所述客戶機(jī)進(jìn)程接收所述ARM數(shù)據(jù)提供者調(diào)用,并解析所述調(diào) 用來檢測所述參數(shù)并執(zhí)行所述客戶機(jī)請求的功能;(c) 由所述客戶機(jī)進(jìn)程發(fā)出包括檢索到的參數(shù)的ARM文件;以及(d) 由所述服務(wù)器進(jìn)程接收所述ARM文件,并將所述ARM文件存儲 在數(shù)據(jù)存儲中。
15. —種用于啟用可用于展示內(nèi)容開發(fā)環(huán)境內(nèi)數(shù)字內(nèi)容文件之間的相 互關(guān)系的數(shù)字內(nèi)容關(guān)系管理的系統(tǒng),包括(a) 數(shù)據(jù)存儲,其中存儲有用于管理數(shù)字內(nèi)容關(guān)系的數(shù)據(jù);以及(b) 與所述數(shù)據(jù)存儲通信的服務(wù)器計(jì)算機(jī),所述服務(wù)器計(jì)算機(jī)包括處理 器、與所述處理器通信的存儲器,所述存儲器存儲可執(zhí)行軟件模塊,所述軟件 模塊包括(i) 關(guān)系對象模型模塊,它被配置成用于與所述數(shù)據(jù)存儲中存儲的 數(shù)據(jù)接口,以啟用ARM圖應(yīng)用程序編程接口;以及(ii) 關(guān)系引擎模塊,它被配置成用于與所述數(shù)據(jù)存儲中存儲的數(shù)據(jù) 接口,以啟用ARM數(shù)據(jù)提供者應(yīng)用程序編程接口,所述關(guān)系對象模型和 所述關(guān)系弓1擎允許展示所述內(nèi)容開發(fā)環(huán)境內(nèi)所述數(shù)字內(nèi)容文件之間的相 互關(guān)系。
16. 如權(quán)利要求15所述的系統(tǒng),其特征在于,還包括與所述服務(wù)器計(jì) 算機(jī)通信的客戶機(jī)計(jì)算設(shè)備,所述客戶機(jī)計(jì)算設(shè)備包括處理器以及與所述計(jì)算 設(shè)備的處理器通信的存儲器,所述存儲器存儲可執(zhí)行軟件模塊,所述軟件模塊 包括(a) 應(yīng)用程序,以及(b) ARM圖應(yīng)用程序編程接口 。
17. 如權(quán)利要求16所述的系統(tǒng),其特征在于,所述ARM圖應(yīng)用程序編程接口包括使所述處理器實(shí)現(xiàn)多個功能的數(shù)據(jù)和機(jī)器指令,所述功能包括(a) 標(biāo)識從所述應(yīng)用程序接收的、對資產(chǎn)信息的請求;(b) 基于所述請求,生成具有多個調(diào)用參數(shù)的ARM圖調(diào)用,所述參數(shù) 包括特定資產(chǎn)標(biāo)識符、數(shù)據(jù)存儲標(biāo)識符和客戶機(jī)請求的功能;(c) 其中,經(jīng)由關(guān)系對象模塊,由所述服務(wù)器計(jì)算機(jī)接收的ARM圖調(diào) 用使所述服務(wù)器計(jì)算機(jī)的處理器進(jìn)行(i) 解析所述ARM圖調(diào)用以檢索所述多個調(diào)用參數(shù);(ii) 響應(yīng)于所述ARM圖調(diào)用加載ARM圖;(iii) 詢問所述ARM圖;以及(iv) 發(fā)出具有多個確認(rèn)參數(shù)的ARM圖確認(rèn),所述參數(shù)包括所述特 定資產(chǎn)標(biāo)識符以及資產(chǎn)關(guān)系引用和注釋的至少其中之一;以及(d) 允許所述客戶機(jī)計(jì)算設(shè)備接收所述ARM圖確認(rèn),并向所述應(yīng)用程序提供所述確認(rèn)參數(shù)。
18. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述數(shù)據(jù)包括多個數(shù)據(jù) 結(jié)構(gòu),包括-(a) 由資產(chǎn)標(biāo)識符字段以及資產(chǎn)關(guān)系引用字段和注釋字段的至少其中 之一定義的ARM文件數(shù)據(jù)結(jié)構(gòu);以及(b) 包括多個資產(chǎn)節(jié)點(diǎn)的ARM圖,其中所述多個資產(chǎn)節(jié)點(diǎn)中的每一資 產(chǎn)節(jié)點(diǎn)包括到所述多個資產(chǎn)節(jié)點(diǎn)中對其存在依賴性關(guān)系的每個其他節(jié)點(diǎn)的映 射。
19. 如權(quán)利要求18所述的系統(tǒng),其特征在于,所述ARM數(shù)據(jù)提供者應(yīng) 用程序編程接口包括使所述處理器實(shí)現(xiàn)多個功能的數(shù)據(jù)和機(jī)器指令,所述功能包括(a) 標(biāo)識從所述應(yīng)用程序接收的ARM數(shù)據(jù)提供者調(diào)用,所述ARM數(shù) 據(jù)提供者調(diào)用具有多個調(diào)用參數(shù),包括資產(chǎn)標(biāo)識符、客戶機(jī)請求的功能以及關(guān) 系引用和注釋的至少其中之一;(b) 響應(yīng)于所述ARM數(shù)據(jù)提供者調(diào)用,訪問可從所述應(yīng)用程序獲得的 數(shù)字資產(chǎn)信息來尋找由所述資產(chǎn)標(biāo)識符標(biāo)識的資產(chǎn)以檢索參數(shù),所述參數(shù)包括 關(guān)系引用和注釋的至少其中之一;(c) 基于檢索到的參數(shù)生成ARM文件數(shù)據(jù)結(jié)構(gòu);以及(d) 將所述ARM文件數(shù)據(jù)結(jié)構(gòu)提供給所述服務(wù)器計(jì)算機(jī)以便存儲。 20.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述關(guān)系引擎被配置成實(shí)現(xiàn)多個功能,所述功能包括(a) 訪問所述數(shù)據(jù)存儲以標(biāo)識每一 ARM文件;(b) 判斷所標(biāo)識的每一 ARM文件是否被映射到所述ARM圖;以及(c) 根據(jù)判斷的結(jié)果,聚集每一ARM文件,并在所述ARM圖中為未 被映射到所述ARM圖的每一 ARM文件生成新資產(chǎn)節(jié)點(diǎn)。
全文摘要
一種數(shù)據(jù)提供者應(yīng)用程序編程接口(API)被配置成用于游戲內(nèi)容編輯應(yīng)用程序。用該數(shù)據(jù)提供者API生成的資產(chǎn)關(guān)系管理文件包括諸如關(guān)系引用和注釋等信息,并在編輯數(shù)字資產(chǎn)時由數(shù)據(jù)提供者API更新。該資產(chǎn)關(guān)系管理文件然后被存儲到數(shù)據(jù)存儲中?;跀?shù)據(jù)存儲中的資產(chǎn)關(guān)系管理文件生成資產(chǎn)關(guān)系圖。該資產(chǎn)關(guān)系圖包括繪制資產(chǎn)文件之間的依賴性關(guān)系的資產(chǎn)圖節(jié)點(diǎn)。還描述了圖API。該圖API被配置成通過服務(wù)器進(jìn)程訪問關(guān)系圖以向諸如應(yīng)用程序等客戶機(jī)進(jìn)程展示依賴性關(guān)系和注釋。因此,可容易地評估一個資產(chǎn)的改變對其他資產(chǎn)的影響。
文檔編號G06F15/16GK101336424SQ200680051947
公開日2008年12月31日 申請日期2006年12月29日 優(yōu)先權(quán)日2006年1月31日
發(fā)明者B·C·繆特勒, F·F·薩維奇, J·M·納爾瓦博, M·麥克馬航, N·高文, S·哈戈瑞伍斯 申請人:微軟公司