專利名稱:用于同步和異步游戲模式的系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡技術,尤其涉及網(wǎng)絡游戲中連接模式的轉換。
背景技術:
游戲系統(tǒng)已經(jīng)從提供孤立的游戲體驗的系統(tǒng)進化成提供可實時地在朋友和其他玩家之間共享的豐富的交互式體驗的聯(lián)網(wǎng)系統(tǒng)。使用微軟的Xbox 視頻游戲系統(tǒng)和 x)X LIVE 在線游戲服務,遠程位置的多個用戶可一起參與單個游戲會話。某些游戲中的交互性是所有玩家保持在場并且在整個游戲會話的生存期進行交互?;趯沟挠螒蚴且粋€這樣的示例。這些游戲通常在同步網(wǎng)絡連接上玩,同步網(wǎng)絡連接可保持打開使得中央服務器持續(xù)地向所有用戶推送游戲狀態(tài)。同步游戲還可經(jīng)由對等網(wǎng)絡連接進行,其中玩家彼此實時地通信。相反,其他游戲玩起來等待時間長得多,有時動作之間跨越長時間。基于回合的游戲是這樣的示例。在基于回合的游戲中,用戶在游戲中取得一回合并執(zhí)行某種動作,并且隨后在獲得另一回合之前可能需要等待來自游戲會話中的一個或多個其他用戶的響應性移動。某些基于回合的游戲可以經(jīng)由同步網(wǎng)絡連接來玩(通過中央服務器或者經(jīng)由對等連接)。然而,給定時常在回合之間的等待時間,這可導致網(wǎng)絡帶寬和資源的低效使用以及在維持該連接中增加花費。某些基于回合的游戲可另選地經(jīng)由異步網(wǎng)絡連接來玩,其中中央服務器為正在進行的會話維持游戲狀態(tài),并且用戶可在不同時間間歇性地登錄、向中央服務器查詢數(shù)據(jù)以便了解游戲會話的狀態(tài)并且可能采取附加行動。異步網(wǎng)絡連接對于有等待時間的游戲會話工作良好,但可能太慢,并且當游戲的步調加快時導致建立和丟棄網(wǎng)絡連接的低效。
發(fā)明內容
本系統(tǒng)的實施例涉及用于實現(xiàn)基于回合的多玩家游戲的同步和異步網(wǎng)絡連接之間的系統(tǒng)切換。系統(tǒng)包括游戲平臺或服務,該游戲平臺或服務包括用于處理一個或多個游戲應用程序的游戲信息和游戲狀態(tài)的一個或多個服務器。客戶機設備經(jīng)由諸如因特網(wǎng)等網(wǎng)絡與服務連接,并且加入或開始游戲會話。網(wǎng)絡連接管理器處理客戶機設備連接,以便將連接設置成異步網(wǎng)絡連接或者同步網(wǎng)絡連接。連接管理器可基于各種觸發(fā)準則在異步與同步網(wǎng)絡連接模式之間切換。在一個實施例中,如果第一客戶機正在玩的游戲會話中的回合之間的等待時間超過閾值,則連接管理器可將客戶機從同步網(wǎng)絡連接切換到異步網(wǎng)絡連接。 在各實施例中,如果例如客戶機在預定義的時間段內接收響應,則網(wǎng)絡連接管理器可將網(wǎng)絡連接從異步網(wǎng)絡連接切換到同步網(wǎng)絡連接。在各實施例中,本發(fā)明技術涉及一種為客戶機提供網(wǎng)絡連接來連接到系統(tǒng)以便玩基于回合的游戲會話的方法,該方法包括a)如果來自兩個或更多客戶機的回合之間的等待時間超過第一閾值,則將游戲會話的網(wǎng)絡連接設置成異步網(wǎng)絡連接;以及b)如果游戲會話中兩個或更多客戶機玩的游戲會話的步調超過第二閾值(即,回合迅速到來),則將網(wǎng)絡
4連接設置成同步網(wǎng)絡連接。在各實施例中,本發(fā)明技術涉及一種為客戶機提供網(wǎng)絡連接來連接到系統(tǒng)以便玩基于回合的游戲會話的方法,該方法包括a)在來自第一客戶機的動作所生成的通知沒有被成功地直接轉發(fā)給至少一個其他客戶機的情況下、或者如果通知被成功地發(fā)送給至少一個其他客戶機但在預定義時間段內沒有接收到來自該至少一個其他客戶機的響應,則對于游戲會話將第一客戶機的網(wǎng)絡連接從同步網(wǎng)絡連接修改成異步網(wǎng)絡連接;以及b)如果在第一客戶機具有等待第一客戶機連接到系統(tǒng)的預定義次數(shù)的通知,則對于游戲會話將第一客戶機的網(wǎng)絡連接從異步網(wǎng)絡連接修改成同步網(wǎng)絡連接。提供本發(fā)明內容是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。本發(fā)明內容并不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。所要求保護的主題不限于解決在背景中提及的任何或所有缺點的實現(xiàn)。
圖1是示例性游戲和媒體系統(tǒng)的立體圖。圖2是圖1中示出的游戲和媒體系統(tǒng)的各組件的示例性功能框圖。圖3是用于呈現(xiàn)成就信息的示例性操作環(huán)境的框圖。圖4A-4B是根據(jù)本發(fā)明技術的實施例的用于在同步與異步網(wǎng)絡連接之間切換的方法的流程圖。
具體實施例方式現(xiàn)在將參考圖1至4B來解釋本發(fā)明技術,一般而言其涉及一種用于在同步與異步網(wǎng)絡連接之間切換以實現(xiàn)基于回合的多玩家游戲會話的系統(tǒng)。本發(fā)明技術利用連接管理器,該連接管理器用于根據(jù)玩基于回合的游戲的步調來管理網(wǎng)絡連接。當游戲會話中回合之間的等待時間超過閾值時,連接管理器將連接設置成支持存儲和轉發(fā)玩家動作的通知的異步網(wǎng)絡連接。如果游戲的步調加速,則連接管理器能夠將連接切換到同步網(wǎng)絡連接,以便于玩家之間近乎實時的在線交互。如果步調減慢和/或連接管理器檢測玩家已經(jīng)丟失網(wǎng)絡連接,則連接管理器可再次將連接模式切換到異步網(wǎng)絡連接。以此方式,基于用戶需求優(yōu)化了基于回合的游戲的服務器資源的使用。以下將參考游戲應用程序更詳細地描述本發(fā)明技術。然而,可以理解,在其他實施例中,用于在同步與異步模式之間切換以優(yōu)化用戶體驗和服務器資源的使用的本系統(tǒng)可在除了游戲應用程序以外的基于回合的應用程序中實現(xiàn)。圖1示出示例性游戲和媒體系統(tǒng)100。對圖1的以下討論旨在提供可在其中實現(xiàn)此處所呈現(xiàn)的概念的合適環(huán)境的簡要概括描述。如圖1所示,游戲和媒體系統(tǒng)100包括游戲和媒體控制臺(以下統(tǒng)稱為“控制臺”)102。一般而言,如以下將進一步描述的,控制臺102 是一種類型的計算系統(tǒng)。控制臺102被配置成容納一個或多個如控制器104(1)和104(2) 所表示的無線控制器??刂婆_102配備有內部硬盤驅動器(未示出)和支持如光學存儲盤 108所表示的各種形式的便攜式存儲介質的便攜式媒體驅動器106。合適的便攜式存儲介質的示例包括DVD、⑶-ROM、游戲盤等??刂婆_102還包括用于接收可移動閃存型存儲器單元140的兩個存儲器單元卡插座125(1)和125( ??刂婆_102上的命令按鈕135啟用和
禁用無線外圍支持。如圖1所示,控制臺102還包括用于與一個或多個設備進行無線通信的光學端口 130和支持附加控制器或其他外圍設備的有線連接的兩個USB(通用串行總線)端口 110(1)和110(幻。在某些實現(xiàn)中,可修改附加端口的數(shù)量和安排。電源按鈕112和彈出按鈕114也位于游戲控制臺102的正面。電源按鈕112被選擇來對游戲控制臺供電,且還可以提供對其他特征和控件的訪問,而彈出按鈕114交替地打開和關閉便攜式媒體驅動器 106的托盤以允許存儲盤108的插入和取出。控制臺102經(jīng)由A/V接口電纜120連接到電視機或其他顯示器(如監(jiān)視器150)。 在一個實現(xiàn)中,控制臺102配備有被配置成用于使用A/V電纜120(例如,適用于耦合到高清晰度監(jiān)視器150或其他顯示設備上的高清晰度多媒體接口 “HDMI”端口的A/V電纜)來進行內容受保護的數(shù)字通信的專用A/V端口(未示出)。電源電纜122向游戲控制臺供電。 控制臺102可進一步被配置成具有如電纜或調制解調器連接器IM所示的寬帶能力以便于接入諸如因特網(wǎng)等網(wǎng)絡。寬帶能力還可通過諸如無線保真(Wi-Fi)網(wǎng)絡等寬帶網(wǎng)絡來無線地提供。每一控制器104經(jīng)由有線或無線接口耦合到控制臺102。在示出的實現(xiàn)中,控制器 104是USB兼容的且經(jīng)由無線或USB端口 110耦合到控制臺102??刂婆_102可配備有各種用戶交互機制中的任何一種。在圖1中示出的示例中,每一控制器104配備兩個拇指搖桿(thumbstick) 132(1)和132 (2)、D墊134、按鈕136、以及兩個觸發(fā)器138。這些控制器僅為代表性的,且其他已知游戲控制器可代替或被添加到圖1中示出的那些控制器。在一個實現(xiàn)中,還可將存儲器單元(MU) 140插入到控制器104中以提供額外且便攜的存儲。便攜式MU使用戶能夠存儲游戲參數(shù)以供在其他控制臺上玩時使用。在該實現(xiàn)中,每一控制器被配置成容納兩個MU 140,盡管也可采用多于或少于兩個MU0游戲和媒體系統(tǒng)100 —般被配置成玩存儲在存儲器介質上的游戲,以及下載并玩游戲、和從電子和硬介質源再現(xiàn)預先記錄的音樂和視頻。使用不同的存儲供應,可從硬盤驅動器、從光盤介質(例如,108)、從在線源、或從MU 140播放標題(title)。游戲和媒體系統(tǒng) 100能夠播放的媒體的類型的示例包括 從⑶和DVD盤、從硬盤驅動器、或從在線來源播放的游戲項。 從便攜媒體驅動器106中的⑶、從硬盤驅動器上的文件(例如,使用Windows媒體音頻(WMA)格式的音樂)、或從在線流傳送來源播放的數(shù)字音樂?!谋銛y媒體驅動器106中的DVD盤、從硬盤驅動器上的文件(例如,活動流傳送格式(Active Streaming format))、或從在線流傳送來源播放的數(shù)字音頻/視頻。在操作期間,控制臺102被配置成接收來自控制器104的輸入并在顯示器150上顯示信息。例如,控制臺102可在顯示器150上顯示用戶界面以便允許用戶使用控制器104 來選擇游戲并且顯示成就信息,如以下將描述的。圖2是游戲和媒體系統(tǒng)100的功能框圖并且更詳細地示出游戲和媒體系統(tǒng)100的各功能組件。控制臺102具有中央處理單元(CPU) 200,以及便于處理器訪問包括閃存只讀存儲器(ROM) 204、隨機存取存儲器(RAM) 206、硬盤驅動器208、以及便攜式媒體驅動器106 等各種類型的存儲器的存儲器控制器202。在一個實現(xiàn)中,CPU 200包括1級高速緩存210、和2級高速緩存212,用于臨時地存儲數(shù)據(jù)且因此減少了對硬盤驅動器208進行的存儲器訪問周期數(shù),從而提高處理速度和吞吐量。CPU 200、存儲器控制器202、以及各種存儲器設備經(jīng)由一個或多個總線(未示出) 互連。在此實現(xiàn)中使用的總線的細節(jié)并不特別地與理解此處所討論的感興趣的主題相關。 然而,應該理解,此類總線可能包括使用各種總線體系結構中的任何一種的串行和并行總線、外圍總線、處理器或局部總線中的一個或多個。作為示例,這樣的體系結構可包括工業(yè)標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強型ISA(EISA)總線、視頻電子技術標準協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為夾層(Mezzanine) 總線)。在一個實現(xiàn)中,CPU 200、存儲器控制器202、R0M 204、以及RAM 206被集成到公共模塊214上。在該實現(xiàn)中,ROM 204被配置為經(jīng)由PCI總線和ROM總線(兩者都未示出)連接到存儲器控制器202的閃存ROM。RAM 206被配置為由存儲器控制器202經(jīng)由單獨的總線(未示出)獨立控制的多個雙倍數(shù)據(jù)率同步動態(tài)RAM (DDR SDRAM)模塊。硬盤驅動器208 和便攜式媒體驅動器106被示為經(jīng)由PCI總線和AT附加設備(ATA)總線216連接到存儲器控制器202。然而,在其他實現(xiàn)中,還可在替換中應用不同類型的專用數(shù)據(jù)總線結構。三維圖形處理單元220和視頻編碼器222形成用于高速和高分辨率(例如,高清晰度)圖形處理的視頻處理流水線。數(shù)據(jù)經(jīng)由數(shù)字視頻總線(未示出)從圖形處理單元 220輸送到視頻編碼器222。音頻處理單元2M和音頻編解碼器(編碼器/解碼器)226形成用于各種數(shù)字音頻格式的多聲道音頻處理的對應的音頻處理流水線。音頻數(shù)據(jù)經(jīng)由通信鏈路(未示出)在音頻處理單元2M與音頻編解碼器2 之間傳輸。視頻和音頻處理流水線將數(shù)據(jù)輸出到A/V(音頻/視頻)端口 228以傳輸?shù)诫娨暀C或其他顯示器。在示出的實現(xiàn)中,視頻和音頻處理組件220-2 被安裝在模塊214上。圖2示出包括USB主控制器230和網(wǎng)絡接口 232的模塊214。USB主控制器230 被示為經(jīng)由總線(例如,PCI總線)與CPU 200和存儲器控制器202通信并用作外圍控制器 104(1)-104(4)的主機。網(wǎng)絡接口 232提供對網(wǎng)絡(例如因特網(wǎng)、家庭網(wǎng)絡等)的訪問并且可以是各種有線或無線接口組件中的任一種,包括以太網(wǎng)卡、調制解調器、無線接入卡、藍牙模塊、電纜調制解調器等等。在圖2中示出的實現(xiàn)中,控制臺102包括用于支持四個控制器104(1)-104(4)的控制器支持子部件M0。控制器支持子部件240包括支持對諸如例如媒體和游戲控制器等外部控制設備進行有線和無線操作所需的任何硬件和軟件組件。前面板I/O子部件242支持暴露在控制臺102外表面上的電源按鈕112、彈出按鈕114、以及任何LED(發(fā)光二極管) 或其他指示器的多個功能。子部件240和242經(jīng)由一個或多個電纜組件244與模塊214進行通信。在其他實現(xiàn)中,控制臺102可包括附加的控制器子部件。示出的實現(xiàn)還示出被配置成發(fā)送和接收可被傳送到模塊214的信號的光學I/O接口 235。MU 140(1)和 140(2)被示為可分別連接到 MU 端口 “A” 130 (1)禾Π“Β”130(2)。附加MU(例如,MU140(3)-140 (6))被示為可連接到控制器104(1)和104(3),即,每一控制器兩個MU??仄?04(2)和104(4)還可被配置成容納MU (未示出)。每一 MU 140提供可在其上存儲游戲、游戲參數(shù)、以及其他數(shù)據(jù)的附加存儲。在某些實現(xiàn)中,其他數(shù)據(jù)可包括數(shù)字游戲組件、可執(zhí)行游戲應用程序、用于擴展游戲應用程序的指令集、以及媒體文件中的任何一個。在被插入到控制臺102或控制器中時,MU 140可由存儲器控制器202來訪問。系統(tǒng)供電模塊250向游戲和媒體系統(tǒng)100的組件供電。風扇252冷卻控制臺102 內的電路。包括機器指令的應用程序260被存儲在硬盤驅動器208上。在控制臺102通電時, 應用程序260的各部分被加載到RAM 206、和/或高速緩存210和212中以供在CPU 200上執(zhí)行,其中應用程序260是一個這樣的示例??蓪⒏鞣N應用程序存儲在硬盤驅動器208上以供在CPU 200上執(zhí)行??赏ㄟ^簡單地將系統(tǒng)連接到監(jiān)視器150(圖1)、電視機、視頻投影儀、或其他顯示設備來將游戲和媒體系統(tǒng)100用作獨立系統(tǒng)。在該獨立模式中,游戲和媒體系統(tǒng)100允許一個或多個玩家玩游戲、或例如通過看電影或聽音樂來享受數(shù)字媒體。然而,隨著通過網(wǎng)絡接口 232變得可用的寬帶連接的集成,游戲和媒體系統(tǒng)100還可用作較大的網(wǎng)絡游戲社區(qū)中的參與者,如以下結合圖3所討論的。圖3提供了根據(jù)本發(fā)明技術的系統(tǒng)的框圖。示出了與服務302聯(lián)網(wǎng)的客戶機 300A-300N??蛻魴C300A-300N(以下簡稱為客戶機300)可以是以上參考圖2所描述的控制臺102或各種其他計算設備。這些計算設備例如可包括個人計算機、膝上型計算機、諸如個人數(shù)字助理和智能電話等移動手持式設備、以及其他設備。服務302包括連接管理器304和一個或多個服務器306。服務器306可主存由客戶機300的用戶玩的游戲應用程序。游戲應用程序可另選地駐留在客戶機300上??蛻魴C300通過網(wǎng)絡301連接到控制臺服務302。 根據(jù)本發(fā)明技術,連接管理器304處理客戶機300作出的連接,并且可經(jīng)由網(wǎng)絡301維護兩個或更多客戶機300之間的連接,以便允許經(jīng)由同步網(wǎng)絡連接玩游戲?;蛘撸B接管理器可經(jīng)由異步連接進行游戲會話,其中在玩家取得回合以及丟失連接之后維護游戲狀態(tài)。連接管理器可以是服務器306的一部分,或者在替換實施例中它可以是獨立的計算環(huán)境。以下闡明與連接管理器304的操作有關的進一步細節(jié)。在實施例中,網(wǎng)絡301可包括因特網(wǎng),盡管構想了諸如LAN或WAN等其他網(wǎng)絡。服務器306包括能夠經(jīng)由同步網(wǎng)絡連接和異步網(wǎng)絡連接從客戶機300接收信息并且向客戶機 300發(fā)送信息的通信組件??刂婆_服務302還提供運行在客戶機300上的應用程序可調用和利用的服務集合。例如,客戶機300可調用被用于在客戶機300上認證用戶的用戶登錄服務308。在登錄期間,登錄服務308獲得來自用戶的玩家標簽(與該用戶相關聯(lián)的唯一標識符)和口令、以及唯一地標識用戶正在使用的控制臺的控制臺標識符和到該控制臺的網(wǎng)絡路徑。玩家標簽和口令通過將它們與數(shù)據(jù)庫312中的用戶記錄310相比較來認證,該數(shù)據(jù)庫可位于與用戶登錄服務308相同的服務器上、或可以分布在不同的服務器上或不同的服務器集合上。可以理解,以上描述的認證過程可在替換實施例中變化??刹捎萌魏胃鞣N認證方案來標識用戶,使得他或她可連接或重新連接到游戲會話。一旦被認證,用戶登錄服務308就將控制臺標識符和網(wǎng)絡路徑存儲在用戶記錄310中,使得可將通知和信息發(fā)送給客戶機,如以下解釋的。用戶記錄可進一步保持存儲和轉發(fā)與兩個或多個客戶機經(jīng)由異步網(wǎng)絡連接一起涉及的游戲會話的狀態(tài)有關的通知314。在實施例中,通知314可包括附加信息,諸如例如玩家之間交換的信息。存儲和轉發(fā)通知可進一步僅是在給定時間所連接的給定客戶機。如以下解釋的,客戶機經(jīng)由同步網(wǎng)絡連接參與游戲會話時,不需要存儲關于游戲狀態(tài)的通知, 因為那些通知可以對等地或者經(jīng)由中央服務器在客戶機之間轉發(fā),如下文解釋的。然而,在當客戶機經(jīng)由同步網(wǎng)絡連接來連接時,轉發(fā)有關游戲狀態(tài)的通知的嘗試由于任何原因而不成功的情況下,可將該通知存儲在用戶記錄310中作為存儲和轉發(fā)通知314。用戶記錄310 可包括關于與客戶機300相關聯(lián)的用戶的附加信息,諸如游戲記錄、統(tǒng)計數(shù)據(jù)和成就、以及朋友列表。以上描述涉及網(wǎng)絡拓撲結構的一個實施例。構想了其他拓撲結構。作為許多變體中的一個,存儲和轉發(fā)通知314可被存儲在分開的服務器上和/或不同的位置。圖4A和4B —起示出了提供基于回合的游戲會話或其他應用程序的方法的流程圖,其中根據(jù)基于回合的游戲/應用程序的步調將連接控制為同步網(wǎng)絡連接或這異步網(wǎng)絡連接。此處使用的基于回合的游戲或應用程序可包含各種各樣的游戲和應用程序。在一個實施例中,它可以是有兩個或更多玩家且其中玩家交替取得回合的游戲。這樣的游戲包括例如國際象棋、西洋跳棋和某些牌類游戲。在另一實施例中,不需要順序地取得回合,這意味著玩家不需要按特定次序取得其回合。每一玩家可取得一個或多個回合,不必按設置的次序,并且服務器306將更新會話的游戲狀態(tài)并向每一玩家發(fā)送所更新的游戲狀態(tài)的通知,之后允許玩家采取進一步的回合。這樣的游戲可包括大規(guī)模多玩家的策略和探索游戲,諸如Diplomacy 和 Civilization 類型的游戲。游戲的步調可由玩家或游戲本身指示,并且可從取得的接近連續(xù)的回合到回合之間的長等待時間而變化,等待時間例如,分鐘、小時、天等。最初,使用客戶機(例如客戶機300A)的玩家連接到服務302。這可以是發(fā)起游戲會話或為玩家返回已經(jīng)開始的游戲會話。在任一種情況下,在該示例中,客戶機300A最初以異步網(wǎng)絡連接開始,并且最初沒有同步地連接到任何其他客戶機。客戶機認證它自身并且登錄。此后,可啟動游戲會話。此時,客戶機300A與參與該游戲會話的任何其他客戶機 300 一起被標識并且與游戲會話相關聯(lián)。在步驟400,服務302尋找來自客戶機300A的連接。一旦進行了連接,則在步驟404中服務302尋找一個或多個客戶機動作,如果找到,則在步驟406中服務302處理那些客戶機動作??蛻魴C動作例如可以是客戶機向其他客戶機查詢關于是否存在任何所存儲的通知。如以上解釋的,當一個或多個其他玩家(300B和/或300C等)已經(jīng)在異步玩的游戲會話中取得其回合時,游戲應用程序處理由其他玩家采取的動作,并且存儲可由客戶機300A 在步驟404中查詢的數(shù)據(jù)。另選地或另外地,客戶機動作可以是客戶機300A提交回合。在檢查所存儲的通知之前或之后,在步驟404中客戶機可提交回合,并且在各種實施例中,無論所存儲的通知在等待或不在等待,客戶機都可提交回合。在步驟406,服務302處理步驟404中所采取的任何客戶機動作。如果客戶機300A 對于所存儲的通知進行查詢,則在步驟406可將那些通知發(fā)送給客戶機300A。或者,如果不存儲所存儲的通知,則服務可響應于客戶機查詢來發(fā)送將無數(shù)據(jù)回復。作為對通知的查詢的替換或補充,如果在步驟404客戶機300A取得游戲中的回合,則在步驟406服務302可以處理該動作。具體而言,游戲服務器306可處理客戶機動作以生成新的游戲狀態(tài)。在步驟408,基于步驟404中所接收的客戶機動作以及步驟406中對動作的處理來生成新通知。如果客戶機300A僅查詢了所存儲的通知,則步驟408中所生成的新通知可反映這一內容。如果客戶機取得回合,則步驟408中所生成的新通知可反映客戶機300A進行的移動以及更新的游戲狀態(tài)。可想到客戶機300A被連接,但沒有查詢所存儲的通知,沒有取得回合,也沒有在步驟404執(zhí)行任何其它動作。在這一情況下,步驟408仍可生成指示客戶機300A在給定時間連接的通知。如下解釋的,如果存在所連接的其他玩家,則這一新通知可被存儲或向其他玩家發(fā)出。在其他實施例中,在步驟408服務302可僅在客戶機在步驟404中取得回合時生成新通知。在這一實施例中,僅連接或查詢所存儲的通知可能不會在步驟408中生成新通知。接著在步驟412,服務302可檢查游戲會話的其他客戶機是否與客戶機300A同時連接。如果是,則在步驟414可將客戶機300A的動作所生成的新通知發(fā)送給一個或多個其他所連接的客戶機。在步驟436連接管理器304隨后可確定是否滿足某些同步連接準則, 該準則用于在客戶機300A與其他所連接的一個或多個客戶機之間建立同步連接,如以下解釋的。如果是,則在步驟440連接管理器304在所連接的客戶機之間維護同步連接,如以下也將解釋的。在步驟412,如果確定沒有其他客戶機連接,則可在步驟416將由客戶機300A的動作生成的新通知存儲在數(shù)據(jù)庫312中。在步驟418客戶機300A隨后可選擇終止會話。在這一情況下,在步驟420連接被丟棄,并且不對于客戶機300A執(zhí)行進一步動作,直到在步驟 400客戶機300A再次連接。在具有比客戶機300A和300B更多的參與者的游戲會話中,可以為離線的這些參與者存儲通知,并且可以將通知直接轉發(fā)給連接的那些參與者。代替在步驟418終止連接,客戶機300A可改為選擇保持連接。例如,客戶機300A 可獲悉不存在連接的其他客戶機,但出于周期性地輪詢服務302以查詢是否有其他游戲會話客戶機連接的目的,客戶機300A可保持連接。在步驟422,服務302從客戶機300A接收周期性查詢。在從客戶機300A接收查詢之后,在步驟436連接管理器304確定是否滿足用于將客戶機與一個或多個其他游戲會話客戶機連接的同步連接準則。同步連接準則將在以下解釋。如果滿足該準則,則連接管理器在所連接的游戲會話客戶機之間維護同步連接。如果不滿足準則,則服務302可返回步驟418以查看客戶機300A是希望終止連接還是在步驟 422繼續(xù)向服務302輪詢其他游戲會話客戶機。在步驟422從客戶機接收的周期性查詢可由連接管理器304或客戶機來控制,并且可根據(jù)各種方案來執(zhí)行。在一個實施例中,客戶機向服務302輪詢以尋找來自其他客戶機的通知的頻率或輪詢間隔可隨著通知實際上等待了多久而變化。由此,在一個實施例中 (繼續(xù)客戶機300A),客戶機300A可在最后一次查詢之后輪詢一分鐘。如果沒有通知在等待,則客戶機300A隨后可在再次連接之前等待兩分鐘。如果兩分鐘后沒有通知在等待,則客戶機300A隨后可在再次連接之前等待四分鐘。如果四分鐘后沒有通知在等待,則客戶機 300A隨后可在再次連接之前等待十分鐘。如果十分鐘后沒有通知在等待,則客戶機300A隨后可在再次連接之前等待半小時。依此類推。以上提到的具體時間段僅作為示例,并且每一輪詢間隔可以長于或短于以上闡明的時間段。在某一時刻,如果找到通知,則系統(tǒng)可將輪詢間隔自動地降低回到例如一分鐘。如果輪詢導致滿足步驟436中的同步連接準則的通知,則連接管理器隨后可將客戶機切換成同步連接。以上描述的步驟400至422都可經(jīng)由客戶機300A與服務器302的異步連接來發(fā)生。雖然以上描述是按照客戶機300A闡明的,可以理解,以上描述的步驟可應用于通過服務302連接到游戲會話的任何客戶機?,F(xiàn)在將描述步驟436的同步連接準則。如果在步驟412確定一個或多個附加游戲會話客戶機與客戶機300A同時連接,則步驟436的同步連接準則可以僅是由服務302生成且被發(fā)送到所連接的客戶機使其知道它們都被連接并且詢問它們是否想要經(jīng)由同步連接繼續(xù)游戲會話的消息。如果所連接的客戶機作出肯定響應,則在步驟440在所連接的游戲會話客戶機之間維護同步連接。在其他實施例中,如果在步驟412確定了多個游戲會話客戶機同時連接,則連接管理器304可跳過步驟436,并且可向所連接的游戲會話客戶機通知它們的游戲會話正經(jīng)由同步網(wǎng)絡連接來維護。如上所述,在步驟412確定了沒有其他客戶機被連接時,客戶機300A可保持被連接以便周期性地向服務302輪詢,以查看是否有來自其他客戶機的新消息到來。如果沒有找到存儲的通知,則相繼查詢之間的間隔可增加,而一旦找到存儲的通知,則間隔可減小。 這一間隔可由連接管理器304或由作出查詢的客戶機300來控制。連接管理器304監(jiān)視這些查詢和找到的通知,并且在步驟436確定是否一達到某一“同步閾值”。如果是,則連接管理器基于與服務302的這些交互在兩個客戶機之間維護同步連接。在步驟436中對其作出這一判斷的同步閾值可以按多種方式定義。在以上提到的一個示例中,連接管理器304可跟蹤玩給定游戲的客戶機300連接到控制臺服務以尋找存儲的通知的頻率、以及客戶機多久找到這些存儲的通知。如果連接管理器確定在客戶機連接的某一閾值百分比的時間存在連接之后未發(fā)送的通知,則在步驟440連接管理器可將該客戶機的連接切換到同步連接。在此實施例中,同步閾值基于當客戶機連接時客戶機多久接收通知。在實施例中,這可從20%變化到80%,但該閾值百分比將高于或低于其他實施例中的閾值百分比。在其他實施例中,如果存在等待排成行的閾值數(shù)量的客戶機的先前連接的通知, 則連接管理器可切換到同步連接,而不是使用閾值百分比。在此實施例中,例如客戶機可以已經(jīng)連接了任何次數(shù)其中沒有通知在等待,但這些嘗試之后,如果客戶機連接并且在連續(xù)預定次數(shù)中每一次均有通知在等待,例如兩次或四次,則在步驟440連接管理器可將該客戶機切換到同步連接。閾值數(shù)量在此實施例中可以小于兩個,或在其他實施例中大于四個。在其他實施例中,連接管理器可僅查看不同客戶機取得其回合的頻率。如果兩個客戶機在某閾值頻率內取得其回合,則在步驟440連接管理可在它們之間維護同步連接。 以上描述的用于建立同步連接的準則可應用于兩人游戲會話中的兩個客戶機,或者它可應用于例如涉及超過兩個玩家的游戲會話中的更大客戶機組的兩個或更多客戶機??梢岳斫?,同步連接可通過形成服務302的一部分的中央服務器來進行。然而,可以理解,同步連接可通過各種其他網(wǎng)絡方案來進行。例如連接可以是對等連接、或另選地是通過中繼型服務器來進行的同步連接?,F(xiàn)在參考圖4B的步驟444,在兩個或更多服務器之間建立了同步連接之后,服務接著檢查具有回合的客戶機中的一個是否及時響應。S卩,當經(jīng)由同步網(wǎng)絡連接通信時,服務可具有預定義的“異步閾值”時間段,在該時間段內它必須從當前是其回合的客戶機接收響應。預定義的異步閾值時間段可以變化,但可以例如是15秒到五分鐘,盡管在其他實施例中可以長于或短于該時間段。如果具有回合的客戶機及時響應,則在步驟448游戲會話服務器306處理客戶機動作并且生成新通知。
另一方面,如果在預定義的異步閾值時間段內沒有從當前是其回合的客戶機接收到動作,則在步驟450服務可生成要發(fā)送給無響應的客戶機的提示消息。如果在諸如上述某預定義的時間段內無響應的客戶機沒有對提示作出響應,則在步驟456同步連接可被丟棄。流程隨后可返回圖4A的步驟400,以等待客戶機的下一次連接。在其他實施例中可省略提示步驟450和454,在該情況下在步驟444中沒有接收到及時響應之后,系統(tǒng)將在步驟 456丟棄連接。另一方面,如果在步驟444具有回合的客戶機及時響應或在步驟4M及時響應該提示,則在步驟448游戲會話服務器306處理客戶機動作并且生成新消息。在步驟458,進行將新通知經(jīng)由同步網(wǎng)絡連接直接發(fā)送給其他客戶機的嘗試。如果通知失敗,則在步驟462 系統(tǒng)存儲通知,并且該流程返回步驟420(圖4A)其中同步網(wǎng)絡連接被丟棄。流程返回步驟 400并且在異步網(wǎng)絡連接上堅持游戲會話,直到再次到達如同步閾值的時間。在此情況中, 連接管理器可隨后將游戲會話切換到同步網(wǎng)絡連接。另一方面,如果在步驟460通知成功,則維持同步網(wǎng)絡連接。服務返回步驟444以處理來自所有所連接的客戶機的其它回合,如以上描述的。只要客戶機回合在異步閾值時間段(或提示時間段)內被取得,并且通知被成功發(fā)送,系統(tǒng)就支持客戶機經(jīng)由同步網(wǎng)絡連接玩游戲會話。流程返回步驟444并且在同步網(wǎng)絡連接上堅持游戲會話,直到再次到達如異步閾值的時間、或通知發(fā)送失敗。連接管理器隨后將游戲會話切換到異步網(wǎng)絡連接。給定以上描述,本領域技術人員將理解,可以對以上描述的圖4A和4B的步驟進行變型而不背離本發(fā)明的精神。以上描述的圖4A和4B的步驟用于兩個玩家的基于回合的游戲以及超過兩個玩家的基于回合的游戲。在存在超過兩個玩家的情況下,當其中一個玩家丟失連接時,只要這些剩余玩家中的一個繼續(xù)取得回合則可堅持剩余玩家之間的同步連接,如以上描述的。如果游戲會話到達需要來自離線用戶的動作的時刻,則可丟棄游戲會話中其他玩家的同步連接,直到如兩個或更多玩家被連接且能夠以超過同步閾值的步調玩游戲的時間。以上描述主要是在基于回合的系統(tǒng)的上下文中進行的(是A的回合而不是B的回合),但可以在其中用戶平行地提交數(shù)據(jù)的MMO中應用。本發(fā)明技術一般涉及一種用于將網(wǎng)絡連接從同步修改成異步、以及從異步修改成同步以平衡服務器性能并且提高用戶體驗的系統(tǒng)。在以上描述的實施例中,同步與異步模式之間的轉換是基于玩的步調的。給定以上公開,本領域技術人員將理解在其上可觸發(fā)轉變的其他機制。在一個這樣的其他實施例中,游戲應用軟件本身可指示游戲的某些部分通過同步網(wǎng)絡連接來玩,而游戲的其他部分可通過異步網(wǎng)絡連接來玩。在另一實施例中,用戶可通過系統(tǒng)偏好中的設置來設置連接何時在同步與異步模式之間改變以及是否改變。在其他實施例中,其他觸發(fā)是可能的。本發(fā)明系統(tǒng)的前述詳細描述是出于說明和描述的目的而提供的。這并不旨在窮舉本發(fā)明系統(tǒng)或將本發(fā)明系統(tǒng)限于所公開的精確形式。鑒于上述教導,許多修改和變型都是可能的。選擇所述實施方式以最好地解釋本發(fā)明系統(tǒng)的原理及其實踐應用,從而允許本領域技術人員能夠在各種實施方式中并采用各種適于所構想的特定用途的修改來最好地利用本發(fā)明系統(tǒng)。本發(fā)明系統(tǒng)的范圍旨在由所附權利要求書來定義。
權利要求
1.一種在具有包括顯示器(150)和用戶界面選擇設備(104)的用戶界面的游戲和媒體系統(tǒng)(100)中、為客戶機(300)提供網(wǎng)絡連接來連接到所述系統(tǒng)以便玩基于回合的游戲會話的方法,所述方法包括(a)如果來自兩個或多個客戶機(300)的回合之間的等待時間超過第一閾值,則將所述游戲會話的網(wǎng)絡連接設置成異步網(wǎng)絡連接(步驟420);以及(b)如果所述游戲會話中兩個或多個客戶機(300)玩所述游戲會話的步調超過第二閾值,則將所述網(wǎng)絡連接設置成同步網(wǎng)絡連接(步驟440)。
2.如權利要求1所述的方法,其特征在于,還包括生成關于所述游戲會話的狀態(tài)的通知的步驟。
3.如權利要求2所述的方法,其特征在于,還包括當所述網(wǎng)絡連接被設置成異步模式時存儲對客戶機的通知的步驟。
4.如權利要求2所述的方法,其特征在于,還包括當所述網(wǎng)絡連接被設置成同步模式時將對客戶機的通知直接從服務器轉發(fā)到所述客戶機的步驟。
5.如權利要求2所述的方法,其特征在于,還包括當所述網(wǎng)絡連接被設置成同步模式時在對等網(wǎng)絡中將對第一客戶機的通知直接從第二客戶機轉發(fā)到所述第一客戶機的步驟。
6.如權利要求1所述的方法,其特征在于,所述步驟(b)包括接收來自客戶機的周期性查詢以確定其他客戶機是否已留下通知、以及在所述查詢和通知滿足預定義的準則之后將所述連接從異步改變成同步的步驟。
7.如權利要求6所述的方法,其特征在于,所述周期性查詢之間的間隔是由查詢通過其被路由的服務器和進行所述查詢的客戶機中的一個來設置的。
8.如權利要求1所述的方法,其特征在于,所述步驟(b)包括在第一客戶機具有等待所述第一客戶機連接到所述系統(tǒng)的預定義的時間百分比的通知的情況下和/或在所述第一客戶機和第二客戶機在預定義的時間段內采取基于回合的游戲會話中的動作的情況下,將所述第一客戶機的網(wǎng)絡連接設置成同步網(wǎng)絡連接的步驟。
9.一種在具有包括顯示器(150)和用戶界面選擇設備(104)的用戶界面的游戲和媒體系統(tǒng)(100)中、為客戶機(300)提供網(wǎng)絡連接來連接到所述系統(tǒng)以便玩基于回合的游戲會話的方法,所述方法包括(a)在由來自第一客戶機(300)的動作生成的通知沒有被成功地直接轉發(fā)給至少一個其他客戶機(300)的情況下(步驟460)、或者如果通知被成功地發(fā)送給至少一個其他客戶機但沒有在預定義的時間段內接收到來自所述至少一個其他客戶機(300)的響應(步驟454),則將第一客戶機(300)的網(wǎng)絡連接從所述游戲會話的同步網(wǎng)絡連接修改成(步驟 456)異步網(wǎng)絡連接;以及(b)如果所述第一客戶機(300)具有等待所述第一客戶機(300)連接到所述系統(tǒng)的預定義的次數(shù)的通知(步驟436),則將所述第一客戶機(300)的網(wǎng)絡連接從所述游戲會話的異步網(wǎng)絡連接修改成(步驟440)同步網(wǎng)絡連接。
10.如權利要求9所述的方法,其特征在于,還包括當所述網(wǎng)絡被設置成異步模式時或者當所述通知沒有被成功地轉發(fā)給所述至少一個其他客戶機時存儲對所述至少一個其他客戶機的通知的步驟。
11.如權利要求9所述的方法,其特征在于,所述步驟(b)包括在所述第一客戶機具有等待所述第一客戶機連接到所述系統(tǒng)預定義的時間百分比的通知的情況下、將所述第一客戶機的網(wǎng)絡連接設置成同步網(wǎng)絡連接的步驟。
12.一種游戲和媒體系統(tǒng)(100),包括至少一個用于處理游戲會話信息的游戲服務器(306);用于存儲游戲會話信息的數(shù)據(jù)庫(312);以及網(wǎng)絡連接管理器(304),所述網(wǎng)絡連接管理器管理所述網(wǎng)絡連接以便如果來自兩個或更多客戶機的回合之間的等待時間超過閾值、則將所述游戲會話的網(wǎng)絡連接從同步網(wǎng)絡連接改變成異步網(wǎng)絡連接,并且所述網(wǎng)絡連接管理器管理所述網(wǎng)絡連接以便如果第一客戶機具有等待所述第一客戶機連接到所述系統(tǒng)的預定義的次數(shù)的通知、和/或在所述第一客戶機和第二客戶機在預定義的時間段內在所述游戲會話中采取動作的情況下,將所述游戲會話的網(wǎng)絡連接從異步網(wǎng)絡連接改變成同步網(wǎng)絡連接。
13.如權利要求12所述的游戲和媒體系統(tǒng),其特征在于,在不經(jīng)由同步網(wǎng)絡連接直接遞送通知的情況下,所述數(shù)據(jù)庫存儲對由所述第一客戶機的動作導致的游戲狀態(tài)中的改變的通知。
14.如權利要求12所述的游戲和媒體系統(tǒng),其特征在于,在要求來自未在閾值時間段內作出響應的客戶機的動作的情況下,所述網(wǎng)絡管理器將所述第一客戶機的網(wǎng)絡連接設置成異步網(wǎng)絡連接。
15.如權利要求12所述的游戲和媒體系統(tǒng),其特征在于,在第一客戶機具有等待所述第一客戶機連接到所述系統(tǒng)的預定義的時間百分比以及所述第一客戶機連接到所述系統(tǒng)的排成行的預定義的次數(shù)之一的通知的情況下,和/或在所述第一客戶機和第二客戶機在預定義的時間段內在所述游戲會話中采取動作的情況下,所述網(wǎng)絡管理器將所述第一客戶機的網(wǎng)絡連接設置成同步網(wǎng)絡連接。
全文摘要
本發(fā)明公開了用于同步和異步游戲模式的方法和系統(tǒng)。公開了一種用于在同步和異步網(wǎng)絡連接之間切換以實現(xiàn)基于回合的多玩家游戲的系統(tǒng)。網(wǎng)絡連接管理器處理客戶機設備連接,以便將連接設置成異步網(wǎng)絡連接或者同步網(wǎng)絡連接。連接管理器可基于各種觸發(fā)準則在異步與同步網(wǎng)絡連接模式之間切換。
文檔編號G06F19/00GK102209105SQ20111011730
公開日2011年10月5日 申請日期2011年4月29日 優(yōu)先權日2010年5月3日
發(fā)明者A·必林, T·吉爾 申請人:微軟公司