戲應(yīng)用可與客戶端視頻游戲應(yīng)用協(xié) 作,所述客戶端視頻游戲應(yīng)用可由客戶端裝置(例如,客戶端裝置12化(1含η含Ν))上執(zhí)行的 計(jì)算機(jī)可讀指令集定義。使用客戶端視頻游戲應(yīng)用可為用戶提供自定義界面,W玩或觀看 游戲和訪問游戲特征。在其他非限制性實(shí)施例中,客戶端裝置的特征并不在于可由客戶端 裝置直接執(zhí)行的客戶端視頻游戲應(yīng)用。相反,從客戶端裝置視角看,網(wǎng)絡(luò)瀏覽器可用作界 面。網(wǎng)絡(luò)瀏覽器本身可實(shí)例化自己軟件環(huán)境中的客戶端視頻游戲應(yīng)用,W便優(yōu)化與服務(wù)器 端視頻游戲應(yīng)用的交互。
[0033] 在給定的客戶端裝置上運(yùn)行(無(wú)論獨(dú)立運(yùn)行還是在瀏覽器內(nèi)運(yùn)行)的客戶端視頻 游戲應(yīng)用可將所接收的用戶輸入和檢測(cè)到的用戶移動(dòng)轉(zhuǎn)譯成"客戶端裝置輸入",所述輸入 可通過互聯(lián)網(wǎng)130發(fā)送到云端游戲服務(wù)器系統(tǒng)100。
[0034] 在圖1Β所示的實(shí)施例中,客戶端裝置120η(1含η含Ν)可分別產(chǎn)生客戶端裝置輸入 140η( 1 < η < Ν)。服務(wù)器系統(tǒng)100可處理接收自各個(gè)客戶端裝置12化(1 < η < Ν)的客戶端裝 置輸入14化(1含η含Ν),并且可針對(duì)各個(gè)客戶端裝置12化(1含η含Ν)生成相應(yīng)的"媒體輸出" 150η( 1含η含Ν)。媒體輸出150η( 1含η含Ν)可包括編碼的視頻數(shù)據(jù)流(表示顯示在屏幕上的 圖像)和音頻流(表示經(jīng)由揚(yáng)聲器播放的聲音)。媒體輸出150η(1含η含Ν)可通過互聯(lián)網(wǎng)130 W包的形式發(fā)送。去往客戶端裝置12化(1含η含Ν)中的特定一個(gè)的包可采用此方式寫地址, W便通過互聯(lián)網(wǎng)130路由到所述裝置??蛻舳搜b置12化(1含η含Ν)中的每個(gè)可包括用于緩沖 和處理從云端游戲服務(wù)器系統(tǒng)100接收的包中的媒體輸出的電路,W及用于顯示圖像的顯 示器和用于輸出音頻的換能器(例如,揚(yáng)聲器)。也可提供額外的輸出裝置,例如,機(jī)電系統(tǒng), W產(chǎn)生運(yùn)動(dòng)。
[0035] 應(yīng)了解,視頻數(shù)據(jù)流可被分成"帖"。本文中所用的"帖"并不需要視頻數(shù)據(jù)帖與視 頻數(shù)據(jù)表示的圖像之間存在一對(duì)一對(duì)應(yīng)。也就是說,盡管視頻數(shù)據(jù)帖可能含有表示相應(yīng)顯 示的整體圖像的數(shù)據(jù),但視頻數(shù)據(jù)帖也有可能含有僅部分表示圖像的數(shù)據(jù),并且圖像有可 能實(shí)際上需要兩個(gè)或更多帖,W便適當(dāng)重構(gòu)和顯示。同樣地,視頻數(shù)據(jù)帖可含有表示一個(gè)W 上完整圖像的數(shù)據(jù),從而可使用Μ個(gè)視頻數(shù)據(jù)帖來(lái)表示Ν個(gè)圖像,其中Μ<Ν。
[0036] I.云端游戲服務(wù)器系統(tǒng)100 (分布式架構(gòu))
[0037]圖2Α示出云端游戲服務(wù)器系統(tǒng)100的部件的一種可能的非限制性物理布置。在此 實(shí)施例中,云端游戲服務(wù)器系統(tǒng)100內(nèi)的獨(dú)立服務(wù)器可被配置成實(shí)施??诘墓δ?。例如,計(jì) 算服務(wù)器200C可主要負(fù)責(zé)基于用戶輸入來(lái)跟蹤視頻游戲中的狀態(tài)變化,而同時(shí)繪制服務(wù)器 200R可主要負(fù)責(zé)繪制圖形(視頻數(shù)據(jù))。
[0038] 客戶端裝置120n(l^ η ^N)的用戶可W是玩家或觀眾。應(yīng)理解,在一些情況下,可 能只有單個(gè)玩家并且沒有觀眾;而在其他情況下,可能有多個(gè)玩家和單個(gè)觀眾;在另外其他 的情況下,可能有單個(gè)玩家和多個(gè)觀眾;W及在又一些其他情況下,可能有多個(gè)玩家和多個(gè) 觀眾。
[0039] 為簡(jiǎn)潔起見,W下描述參考連接到單個(gè)繪制服務(wù)器200R的單個(gè)計(jì)算服務(wù)器200C。 然而,應(yīng)了解,可能有一個(gè)W上的繪制服務(wù)器200R連接到相同的計(jì)算服務(wù)器200C,或者一個(gè) W上的計(jì)算服務(wù)器200C連接到相同的繪制服務(wù)器200R。在有多個(gè)繪制服務(wù)器200R的情況 下,運(yùn)些可在任何合適的地理區(qū)域上分布。
[0040] 如圖2A中的部件的非限制性物理布置所示,計(jì)算服務(wù)器200C可包括一個(gè)或多個(gè)中 央處理單元(CPU)220C,222C和隨機(jī)存取存儲(chǔ)器(RAM)230C。例如,CPU 220C,222C可通過通 信總線架構(gòu)來(lái)訪問RAM 230C。盡管只示出CPU 220C,222C,但應(yīng)理解,在計(jì)算服務(wù)器200C的 一些示例性實(shí)施方案中,可提供更多數(shù)量的CPU或者只有單個(gè)的CPU。計(jì)算服務(wù)器200C也可 包括接收器,其用于通過互聯(lián)網(wǎng)130接收來(lái)自參與視頻游戲的客戶端裝置中的每個(gè)的客戶 端裝置輸入。在當(dāng)前描述的示例性實(shí)施例中,客戶端裝置12化(1 ^ η ^ N)被假定為參與視頻 游戲,因此,所接收的客戶端裝置輸入可包括客戶端裝置輸入14化(1含η含Ν)。在非限制性 實(shí)施例中,接收器可由網(wǎng)絡(luò)接口部件(NIC)210C2實(shí)施。
[0041] 計(jì)算服務(wù)器200C可進(jìn)一步包括發(fā)射器,其用于輸出繪制命令集204m,其中l(wèi)<m< Μ。在非限制性實(shí)施例中,Μ表示用戶(或客戶端裝置)的數(shù)量,但運(yùn)無(wú)需是每個(gè)實(shí)施例中的情 況,尤其是在單個(gè)繪制命令集被多個(gè)用戶分享的情況下。因此,Μ只表示生成的繪制命令集 的數(shù)量。從計(jì)算服務(wù)器200C輸出的繪制命令集204m(l^m^M)可發(fā)送到繪制服務(wù)器200R。在 非限制性實(shí)施例中,發(fā)射器可由網(wǎng)絡(luò)接口部件(NIC)210C1體現(xiàn)。在一個(gè)實(shí)施例中,計(jì)算服務(wù) 器200C可直接連接到繪制服務(wù)器200R。在另一實(shí)施例中,計(jì)算服務(wù)器200C可通過網(wǎng)絡(luò)260連 接到繪制服務(wù)器200R,所述網(wǎng)絡(luò)可W是互聯(lián)網(wǎng)130或另一網(wǎng)絡(luò)。通過網(wǎng)絡(luò)260,計(jì)算服務(wù)器 200C與繪制服務(wù)器200R之間可建立虛擬專用網(wǎng)絡(luò)(VPN)。
[0042] 在繪制服務(wù)器200R處,計(jì)算服務(wù)器200C發(fā)送的繪制命令集204m( 1 < m < M)可在接 收器處被接收(所述接收器可由網(wǎng)絡(luò)接口部件(NIC)210R1實(shí)施),并且可傳送到一個(gè)或多個(gè) CPU 220R,222R。CPU 220R,222R可連接到圖形處理單元(GPU)240R,250R。通過非限制性實(shí) 例,GPU 240R可包括一組GPU核屯、242R和視頻隨機(jī)存取存儲(chǔ)器(VRAM)246R。類似地,GPU 250R可包括一組GPU核屯、252R和視頻隨機(jī)存取存儲(chǔ)器(VRAM)256RdCPU 220R,222R中的每個(gè) 可連接到GPU 240R,250R中的每個(gè)或者連接到GPU 240R,250R的子集。例如,使用通信總線 架構(gòu)可在CPU 220R,222R與GPU 240R,250R之間建立通信。盡管只示出兩個(gè)CPU和兩個(gè)GPU, 但在繪制服務(wù)器200R的實(shí)施方案的具體實(shí)例中,可W有兩個(gè)W上的CPU和GPU,或甚至只有 單個(gè)CPU或GPU。
[0043] CPU 220R,222R 可與 GPU 240R,250R 協(xié)作,W 將繪制命令集 204m(l <m<M)轉(zhuǎn)換成 圖形輸出流206η,其中1含η含N,并且其中N表示參與視頻游戲的用戶(或客戶端裝置)的數(shù) 量。具體而言,針對(duì)客戶端裝置12化(1含η含N),可分別有N個(gè)圖形輸出流206η(1含η含N)。運(yùn) 在之后將更詳細(xì)地描述。繪制服務(wù)器200R可包括另一發(fā)射器(其可由網(wǎng)絡(luò)接口部件(NIC) 210R2實(shí)施),通過所述發(fā)射器,圖形輸出流206n(l如卽)可分別發(fā)送到客戶端裝置12化(1 <n<N)。
[0044] II.云端游戲服務(wù)器系統(tǒng)100(混合架構(gòu))
[004引圖2B示出云端游戲服務(wù)器系統(tǒng)100的部件的第二可能的非限制性物理布置。在此 實(shí)施例中,混合服務(wù)器200H可負(fù)責(zé)基于用戶輸入來(lái)跟蹤視頻游戲中的狀態(tài)變化,W及負(fù)責(zé) 繪制圖形(視頻數(shù)據(jù))。
[0046] 如圖2B中的部件的非限制性物理布置所示,混合服務(wù)器200H可包括一個(gè)或多個(gè)中 央處理單元(CPU)220H、222H和隨機(jī)存取存儲(chǔ)器(RAM)230H。例如,CPU 220H,222H可通過通 信總線架構(gòu)來(lái)訪問RAM 230H。盡管只示出CPU 220H,222H,但應(yīng)理解,在混合服務(wù)器200H的 一些示例性實(shí)施方案中,可提供更多數(shù)量的CPU或者只有單個(gè)的CPU。混合服務(wù)器200H也可 包括接收器,其用于通過互聯(lián)網(wǎng)130接收來(lái)自參與視頻游戲的客戶端裝置中的每個(gè)的客戶 端裝置輸入。在當(dāng)前描述的示例性實(shí)施例中,客戶端裝置12化(1 ^ η ^ N)被假定為參與視頻 游戲,因此,所接收的客戶端裝置輸入可包括客戶端裝置輸入14化(1含η含Ν)。在非限制性 實(shí)施例中,接收器可由網(wǎng)絡(luò)接口部件(NIC)210H實(shí)施。
[0047] 此外,CPU 220H,222H可連接到圖形處理單元(GPU)240H,250H。通過非限制性實(shí) 例,GPU 240H可包括一組GPU核屯、242H和視頻隨機(jī)存取存儲(chǔ)器(VRAM)246H。類似地,GPU 250H可包括一組GPU核屯、252H和視頻隨機(jī)存取存儲(chǔ)器(VRAM)256HdCPU 220H,222R中的每個(gè) 可連接到GPU 240H,250H中的每個(gè)或者連接到GPU 240H,250H的子集。例如,使用通信總線 架構(gòu)可在CPU 220H,222H與GPU 240H,250H之間建立通信。盡管只示出兩個(gè)CPU和兩個(gè)GPU, 但在混合服務(wù)器200H的實(shí)施方案的具體實(shí)例中,可W有兩個(gè)W上的CPU和GPU,或甚至只有 單個(gè)CPU或GPU。
[004引 CPU 220H,222H可與GPU 240H,250H協(xié)作,W將繪制命令集204m(l <m<M)轉(zhuǎn)換成 圖形輸出流206n( 1 < η < N)。具體而言,針對(duì)參與的客戶端裝置120n( 1 < η < N),可分別有N 個(gè)圖形輸出流206η( 1含η含Ν)。圖形輸出流206η( 1含η含Ν)可分別經(jīng)由發(fā)射器發(fā)送到客戶端 裝置12化(1 < η < Ν),在非限制性實(shí)施例中,所述發(fā)射器可至少部分由NIC 210Η實(shí)施。
[0049] III.云端游戲服務(wù)器系統(tǒng)100
[0050] (功能概述)
[0051] 在玩游戲的過程中,服務(wù)器系統(tǒng)100運(yùn)行服務(wù)器端視頻游戲應(yīng)用,所述應(yīng)用可由一 組模塊組成。參考圖2C,運(yùn)些模塊可包括繪制命令生成器270、繪制功能模塊280W及視頻編 碼器285。運(yùn)些模塊可由(圖2A中的)計(jì)算服務(wù)器200C和繪制服務(wù)器200R和/或(圖2B中的)混 合服務(wù)器200H的上述物理部件實(shí)施。例如,根據(jù)圖2A的非限制性實(shí)施例,繪制命令生成器 270可由計(jì)算服務(wù)器200C實(shí)施,而繪制功能模塊280和視頻編碼器285可由繪制服務(wù)器200R 實(shí)施。根據(jù)圖2B的非限制性實(shí)施例,混合服務(wù)器200H可實(shí)施繪制命令生成器270、繪制功能 模塊280W及視頻編碼器285。
[0052] 為便于說明,本示例性實(shí)施例論述了單個(gè)繪制命令生成器270。然而,應(yīng)注意,在云 端游戲服務(wù)器系統(tǒng)100的實(shí)際實(shí)施方案中,可并行執(zhí)行類似于繪制命令生成器270的許多繪 制命令生成器。因此,云端游戲服務(wù)器系統(tǒng)100可同時(shí)支持相同視頻游戲的多個(gè)獨(dú)立例示, 或多個(gè)不同的視頻游戲。此外,應(yīng)注意,視頻游戲可W是任何類型的單玩家視頻游戲或者多