專利名稱:基于服務(wù)器/客戶機(jī)的無縫游戲世界系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明總的來說涉及用于在線游戲的計(jì)算機(jī)系統(tǒng)及其所使用的方法,尤其涉及在基于客戶機(jī)/服務(wù)器架構(gòu)形式的大規(guī)模多玩家在線游戲中,將分割成幾個(gè)小型游戲世界的游戲世界分區(qū)鏈接起來形成整個(gè)游戲世界的無縫游戲世界系統(tǒng)及其所使用的方法。
背景技術(shù):
隨著因特網(wǎng)和無線通信技術(shù)的出現(xiàn),大規(guī)模多玩家在線游戲(massivelymultiplayer online game)在最近幾年變得越來越流行。雖然P2P架構(gòu)已經(jīng)在理論上得到了若干年的研究,并且已經(jīng)有了以P2P方式實(shí)現(xiàn)的游戲,但是出于游戲安全和管理方面的考慮,大多數(shù)商業(yè)化運(yùn)行的大規(guī)模多玩家在線游戲一般還是客戶機(jī)/服務(wù)器架構(gòu)的。
在客戶機(jī)/服務(wù)器架構(gòu)形式的大規(guī)模多玩家在線游戲中,玩家在其本地的游戲硬件設(shè)施(一般是PC或游戲控制臺(tái))上運(yùn)行一個(gè)客戶機(jī)程序,而這些游戲硬件設(shè)施僅僅起輸入/輸出設(shè)備的作用。本地機(jī)器接受從遠(yuǎn)程游戲服務(wù)器傳送來的命令,并且再現(xiàn)游戲世界(game world)的玩家視圖,跨越網(wǎng)絡(luò)來發(fā)送按鍵、鼠標(biāo)或控制器命令,以便用信號(hào)指令游戲者在游戲內(nèi)的移動(dòng)。每個(gè)玩家在游戲世界里由被稱為游戲角色的實(shí)體代表,其狀態(tài)由用戶輸入來控制。管理游戲世界的狀態(tài)所需的大多數(shù)或全部處理由在遠(yuǎn)程游戲服務(wù)器上執(zhí)行的游戲邏輯操作。
游戲邏輯服務(wù)器一般來說執(zhí)行計(jì)算管理游戲世界的狀態(tài)所需的全部計(jì)算。在大規(guī)模再現(xiàn)游戲中,因?yàn)檎麄€(gè)游戲世界非常大,并且沒有任何單一服務(wù)器能夠獨(dú)立支持游戲世界中的所有活動(dòng),因此游戲世界通常要被分割成幾個(gè)小型游戲世界,并且一族游戲服務(wù)器一起操作所參與的游戲世界。由于單一服務(wù)器架構(gòu)(單一服務(wù)器操作整個(gè)游戲世界)非常簡單,因此,這里僅僅涉及多服務(wù)器架構(gòu)的技術(shù)。
在大規(guī)模多玩家在線游戲中,游戲世界被映射到不同的服務(wù)器族。JarettA、Estanislao J、Dunin E、MacLean J、Robbins B、Rohrl D、Welch J和ValadaresJ在“(2003)IGDA Online Games White Paper”(第63-64頁,2003年出版)引進(jìn)了這樣的一種地圖(map)。在該文獻(xiàn)中,用于對(duì)游戲世界分區(qū)的最通用的手段是將游戲世界內(nèi)的不同地理學(xué)上的區(qū)域(geographical region)劃分成區(qū)域(zone),給一個(gè)游戲服務(wù)器分配一個(gè)區(qū)域。每個(gè)區(qū)域由多個(gè)單元(cell)組成,這些單元為基本地圖單位。近鄰的單元鏈接起來組成區(qū)域,而不同服務(wù)器上的近鄰區(qū)域鏈接起來形成整個(gè)游戲世界。
參考圖1,其中示出游戲世界的一個(gè)示例。在圖1中,該游戲世界由四個(gè)區(qū)域所構(gòu)成,這四個(gè)區(qū)域分別為區(qū)域1、區(qū)域2、區(qū)域3和區(qū)域4。區(qū)域1由16個(gè)基本地圖單位即單元組成,區(qū)域2由24個(gè)單元組成,區(qū)域3由24個(gè)單元組成,而區(qū)域4由36個(gè)單元組成。區(qū)域1、區(qū)域2、區(qū)域3和區(qū)域4分別分配給作為服務(wù)器的計(jì)算機(jī)1、計(jì)算機(jī)2、計(jì)算機(jī)3和計(jì)算機(jī)4。
為了通過減少網(wǎng)絡(luò)帶寬需求以便增加同時(shí)參與游戲者的數(shù)量,實(shí)體通常僅僅向與其有關(guān)的那些節(jié)點(diǎn)散發(fā)更新包,這些節(jié)點(diǎn)被稱為感興趣區(qū)域(area ofinterest)。在多服務(wù)器大規(guī)模多玩家在線游戲中,游戲角色感興趣區(qū)域有可能跨越邊界。因此,根據(jù)區(qū)域交互性和感興趣區(qū)域管理方法,可以將多服務(wù)器大規(guī)模多玩家在線游戲分成兩類。這兩類在線游戲中的一類是離散游戲世界。在這種架構(gòu)中,游戲世界被分區(qū)成禁止玩家從一個(gè)區(qū)域向另一個(gè)區(qū)域移動(dòng),或者在游戲內(nèi)具有特別用途的入口或邊界交點(diǎn),它們對(duì)應(yīng)于區(qū)域進(jìn)入和退出點(diǎn)。
離散游戲世界具有這樣三大缺陷1)在由不同服務(wù)器操作的兩個(gè)區(qū)域之間切換時(shí),明顯地感覺到正在玩的游戲出現(xiàn)中斷。事實(shí)上,在兩個(gè)區(qū)域之間的切換是這樣來實(shí)現(xiàn)的首先,游戲邏輯從原始服務(wù)器中釋放游戲角色,然后將其登錄到另一服務(wù)器上。因此,玩家會(huì)感覺到在客戶機(jī)站點(diǎn)上不連貫的視覺效果的嚴(yán)重問題。2)區(qū)域邊界禁止玩家看游戲世界的另一邊,這反過來降低了游戲的交互性和娛樂性。3)增加了游戲服務(wù)器場(chǎng)(game server farm)的動(dòng)態(tài)負(fù)荷平衡的難度(即在沒有游戲服務(wù)器的經(jīng)常業(yè)務(wù)的影響的情況下游戲角色的分批移動(dòng)是非常具有挑戰(zhàn)性的任務(wù))。
多服務(wù)器大規(guī)模多玩家在線游戲中的另一類是連續(xù)或無縫游戲世界。在相反的分成區(qū)域的游戲世界中,大規(guī)模多玩家在線游戲可以被設(shè)計(jì)成創(chuàng)建無縫世界,在這樣的無縫世界中,玩家可以做其在離散游戲世界中做的任何事,而不用受到邊界的限制。玩家可以與對(duì)象、計(jì)算機(jī)控制的人物或自己的游戲角色正在服務(wù)器上執(zhí)行的其他玩家交互。使用關(guān)于大規(guī)模多玩家在線游戲的無縫游戲世界設(shè)計(jì)有很多優(yōu)點(diǎn)。
在連續(xù)或無縫游戲世界中,游戲設(shè)計(jì)者可以在一個(gè)較大而且連續(xù)的游戲世界上設(shè)計(jì)其游戲內(nèi)容,這可以使得他們?cè)O(shè)計(jì)出更復(fù)雜/全面的內(nèi)容。而且隨著游戲世界規(guī)模越來越大、玩家越來越多,交互量也會(huì)增加,并且會(huì)因此而觸發(fā)某些更高級(jí)的游戲風(fēng)格——像更復(fù)雜的組織以及更多虛擬裝備交易,這會(huì)提高游戲的娛樂性。除此而外,動(dòng)態(tài)負(fù)載平衡的粒度能夠根據(jù)真實(shí)負(fù)荷而不是靜態(tài)游戲世界分區(qū)域進(jìn)行調(diào)整。
由于無縫游戲世界的上述這些優(yōu)點(diǎn),形成無縫游戲世界系統(tǒng)的方式是很重要的。為了形成連續(xù)的游戲世界,首先在游戲服務(wù)器上的游戲角色感興趣區(qū)域(或可視范圍)跨越到其他服務(wù)器時(shí),他可以覺察到同一場(chǎng)景中的由其他服務(wù)器負(fù)責(zé)的實(shí)體。其次,游戲角色可以從一個(gè)游戲服務(wù)器、以很少的代價(jià)、平穩(wěn)地?zé)o縫遷移到另一個(gè)游戲服務(wù)器而且保證游戲角色的游戲體驗(yàn)的連續(xù)性。
提供這種功能的現(xiàn)有系統(tǒng)使用緩沖區(qū)法。通過利用其近鄰的服務(wù)重疊由服務(wù)器管理的區(qū)域的邊界上的單元,從而將邊界單元用作緩沖區(qū)。一旦游戲角色進(jìn)入邊界區(qū)域,則兩個(gè)服務(wù)器會(huì)都有一份實(shí)例的拷貝。這種方法由Jiung-yao Huang、Yi-chang Du和Chien-Min Wang公開在“Design of the ServerCluster to Support Avatar Migration”(Proceedings of IEEE Virtual Reality2003(VR’03)第7-14頁,2003年出版)。由于這種方法的復(fù)雜性,總是需要將地圖事先有規(guī)律地分割成固定大小和形狀的形式,然后以錯(cuò)位方塊法(interleaved-squaring method)鏈接起來。
緩沖區(qū)解決方案的主要弱點(diǎn)是需要游戲地圖被重構(gòu),地圖單元的形狀和大小也受到限制,并且在處理動(dòng)態(tài)變化的感興趣區(qū)域時(shí)出現(xiàn)難以抉擇的情況。如果最大的感興趣區(qū)域被選定為重疊區(qū)域的范圍,那么,它會(huì)增加它們的冗余計(jì)算和通信負(fù)荷,并且降低游戲服務(wù)器場(chǎng)的整體資源使用率。
發(fā)明內(nèi)容
因此,本發(fā)明的目的是提供一種所有玩家具有一致的無縫游戲世界視圖的無縫游戲世界系統(tǒng)及其操作方法,使得當(dāng)游戲角色感興趣區(qū)域跨越其他服務(wù)器時(shí),可以覺察到氛圍中的其他服務(wù)器上的實(shí)體,并且游戲角色還可以無縫地從一個(gè)服務(wù)器遷移到另一個(gè)服務(wù)器。
為了實(shí)現(xiàn)本發(fā)明的上述和其他目的,根據(jù)本發(fā)明的一個(gè)方面,提供一種包含多個(gè)游戲服務(wù)器和至少一個(gè)客戶機(jī)的無縫游戲世界系統(tǒng),每個(gè)所述游戲邏輯服務(wù)器被分配給分成區(qū)域的游戲世界中的一個(gè)區(qū)域,用于執(zhí)行計(jì)算管理游戲世界的狀態(tài)所需的全部計(jì)算,所述客戶機(jī)由游戲玩家控制來接受從遠(yuǎn)程游戲服務(wù)器傳送來的命令、再現(xiàn)游戲世界的玩家視圖并且跨越網(wǎng)絡(luò)來發(fā)送按鍵、鼠標(biāo)或控制器命令,以便用信號(hào)指令游戲角色在游戲內(nèi)的移動(dòng),所述游戲角色為玩家在游戲世界里的實(shí)體,其狀態(tài)由用戶輸入來控制,其特征在于,所述無縫游戲世界系統(tǒng)包括游戲邏輯計(jì)算模塊,用于計(jì)算游戲角色的新狀態(tài);地圖控制器,用于根據(jù)所述游戲角色計(jì)算模塊所計(jì)算出來的游戲角色的新狀態(tài),檢測(cè)游戲角色感興趣區(qū)域是否穿越游戲角色的宿主服務(wù)器的邊界并橫跨近鄰游戲服務(wù)器,并根據(jù)檢查結(jié)果確定在近鄰游戲服務(wù)器上創(chuàng)建/刪除/同步副本,所述副本表示主行為者游戲角色在近鄰游戲服務(wù)器上的化身,所述主行為者游戲角色為具有副本游戲角色的游戲角色;以及游戲角色狀態(tài)更新模塊,用于在所述地圖控制器通知其近鄰游戲服務(wù)器從游戲角色列表中刪除副本之后,根據(jù)所述游戲邏輯計(jì)算模塊的計(jì)算結(jié)果對(duì)游戲角色進(jìn)行正常狀態(tài)更新。
根據(jù)本發(fā)明的一個(gè)方面,還提供一種使游戲世界的每一層實(shí)現(xiàn)無縫游戲世界的方法,所述游戲世界被分成區(qū)域,每個(gè)區(qū)域分配給一個(gè)游戲服務(wù)器管理,游戲玩家控制客戶機(jī)來接受從遠(yuǎn)程游戲服務(wù)器傳送來的命令、再現(xiàn)游戲世界的玩家視圖并且跨越網(wǎng)絡(luò)來發(fā)送按鍵、鼠標(biāo)或控制器命令,以便用信號(hào)指令游戲角色在游戲內(nèi)的移動(dòng),所述游戲角色為玩家在游戲世界里的實(shí)體,其狀態(tài)由用戶輸入來控制,其特征在于,所述方法包括步驟計(jì)算游戲角色的新狀態(tài);根據(jù)所述計(jì)算出來的游戲角色的新狀態(tài),檢測(cè)客戶感興趣的游戲角色感興趣區(qū)域是否穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器,并根據(jù)檢查結(jié)果確定在近鄰游戲服務(wù)器上創(chuàng)建/刪除/同步副本,所述副本表示主行為者游戲角色在近鄰游戲服務(wù)器上的化身;以及在從游戲角色列表中刪除副本之后,根據(jù)所計(jì)算結(jié)果對(duì)游戲角色進(jìn)行正常狀態(tài)更新。
根據(jù)本發(fā)明的一個(gè)方面,還提供一種包含執(zhí)行上述方法的步驟的指令的計(jì)算機(jī)可讀媒體。
根據(jù)本發(fā)明的地圖控制器可以被實(shí)施為負(fù)責(zé)管理副本的模塊,并且在游戲應(yīng)用程序和玩家之間擔(dān)任“看不見的手(hidden hand)”,因此,對(duì)傳統(tǒng)游戲系統(tǒng)沒有任何特別的要求,并且可以靈活地改變不同游戲角色視圖范圍且沒有任何冗余的副本游戲角色。此外,根據(jù)本發(fā)明的方法對(duì)地圖結(jié)構(gòu)沒有任何限制??梢苑奖愕赜糜趥鹘y(tǒng)游戲的改進(jìn)。
本領(lǐng)域熟練技術(shù)人員通過參考附圖可以更好地理解本發(fā)明,并且可以明白本發(fā)明的眾多目的、特征和優(yōu)點(diǎn)。不同附圖中采用的相同標(biāo)記表示相似或相同的部件。在附圖中圖1示出游戲世界的一個(gè)示例;圖2示出應(yīng)用根據(jù)本發(fā)明的無縫游戲世界系統(tǒng)的方框圖;圖3示出根據(jù)本發(fā)明的地圖控制器210的方框圖。
圖4是示出根據(jù)本發(fā)明的地圖控制器210的完整的狀態(tài)更新的流程圖;圖5是在游戲角色感興趣區(qū)域跨越游戲服務(wù)器時(shí),不同游戲服務(wù)器更新對(duì)應(yīng)的感興趣區(qū)域部分到客戶機(jī)的示意圖;以及圖6是圖解地圖控制器210的運(yùn)行流程圖。
具體實(shí)施例方式
以下描述用來提供對(duì)本發(fā)明一個(gè)實(shí)例進(jìn)行詳細(xì)說明,而不應(yīng)當(dāng)用來限制本發(fā)明。相反,本發(fā)明任何數(shù)量的改變都可能落入緊隨說明書的權(quán)利要求書所限定的發(fā)明范圍之內(nèi)。
圖2示出應(yīng)用根據(jù)本發(fā)明的無縫游戲世界系統(tǒng)中的游戲服務(wù)器的方框圖。參考圖2,應(yīng)用根據(jù)本發(fā)明的地圖控制器的無縫游戲世界系統(tǒng)包括多個(gè)游戲服務(wù)器和至少一個(gè)客戶機(jī)(未示出)。無縫游戲世界系統(tǒng)還包括游戲邏輯計(jì)算模塊200、地圖控制器210和游戲角色狀態(tài)更新模塊220。地圖控制器210位于常規(guī)的游戲邏輯計(jì)算模塊200和玩家的游戲角色狀態(tài)更新模塊220之間,并且與游戲應(yīng)用程序運(yùn)行環(huán)境集成在一起。
在上述應(yīng)用根據(jù)本發(fā)明的地圖控制器210的無縫游戲世界系統(tǒng)中,為了平滑游戲角色遷移,在游戲角色感興趣區(qū)域移到其區(qū)域之外并進(jìn)入一個(gè)或多個(gè)由近鄰游戲服務(wù)器操作的區(qū)域時(shí),在這些區(qū)域所對(duì)應(yīng)的服務(wù)器上創(chuàng)建游戲角色的副本(clone)。本發(fā)明利用副本表示主行為者游戲角色在另一服務(wù)器上的化身,實(shí)際上主行為者游戲角色及其副本對(duì)于玩家來說是察覺不到的,被認(rèn)為是同一對(duì)象,只是為了描述的方便而稱為“副本”而已。
以下將具有副本游戲角色的游戲角色(主行為者游戲角色)稱為主行為者(doer)。主行為者與副本之間的主要區(qū)別在于以下兩方面。一方面,主行為者是常規(guī)的游戲角色,其宿主服務(wù)器利用游戲邏輯計(jì)算模塊200計(jì)算其狀態(tài)變化并將其更新到客戶機(jī)。地圖控制器210還將根據(jù)所計(jì)算出來的新狀態(tài)更新其副本游戲角色。根據(jù)地圖相鄰關(guān)系,一個(gè)主行為者游戲角色可以具有幾個(gè)副本游戲角色。
另一方面,副本是主行為者的表示,其宿主服務(wù)器不利用游戲邏輯計(jì)算模塊200計(jì)算其新狀態(tài),而只根據(jù)從主行為者的宿主服務(wù)器接收到的其新狀態(tài)對(duì)其進(jìn)行更新。副本的宿主服務(wù)器還將副本添加到玩家列表中,并且用一個(gè)標(biāo)簽標(biāo)識(shí)其為副本。在狀態(tài)更新周期中,副本游戲角色的宿主服務(wù)器還通過地圖控制器210更新副本的感興趣區(qū)域的實(shí)體到客戶端。
應(yīng)當(dāng)注意,主行為者的任何狀態(tài)變換將通過網(wǎng)絡(luò)協(xié)議或在通信中間設(shè)備的支持下同步于副本。
為了實(shí)現(xiàn)本發(fā)明的無縫游戲世界系統(tǒng)的功能,游戲邏輯計(jì)算模塊200計(jì)算游戲角色的新狀態(tài)。在游戲邏輯計(jì)算模塊200計(jì)算出游戲角色的新狀態(tài)之后,地圖控制器210將根據(jù)游戲邏輯計(jì)算模塊200的計(jì)算結(jié)果,負(fù)責(zé)管理游戲角色感興趣區(qū)域的變化。地圖控制器210還具有根據(jù)游戲世界的策略為每個(gè)游戲角色保持一個(gè)獨(dú)有的游戲視圖的能力。為了實(shí)現(xiàn)這一點(diǎn),地圖控制器210監(jiān)視游戲角色的狀態(tài)變化,檢測(cè)游戲角色感興趣區(qū)域是否穿越游戲角色的宿主服務(wù)器的邊界并橫跨近鄰游戲服務(wù)器。而且與規(guī)定一個(gè)重疊區(qū)域作為緩沖區(qū)的方式不同,地圖控制器210還根據(jù)各個(gè)游戲角色感興趣區(qū)域和其他私有策略,在近鄰游戲服務(wù)器上創(chuàng)建副本。在近鄰游戲服務(wù)器上創(chuàng)建副本后,地圖控制器210將負(fù)責(zé)向所有副本更新游戲角色的任何變化。具體地說,主行為者游戲角色(doer avatar)的宿主服務(wù)器利用游戲邏輯計(jì)算模塊200計(jì)算出游戲角色的新狀態(tài),然后由地圖控制器210將其更新到所有副本。在主行為者游戲角色的更新周期中,所述服務(wù)器將其上的游戲角色感興趣區(qū)域更新到客戶機(jī),并且近鄰游戲服務(wù)器還將針對(duì)客戶機(jī)計(jì)算其上的副本的感興趣區(qū)域。這種處理的過程還將在以下結(jié)合圖5進(jìn)行詳細(xì)描述。
一旦游戲角色感興趣區(qū)域不再橫跨服務(wù)器的地圖,主行為者服務(wù)器的地圖控制器210將通知其近鄰游戲服務(wù)器從游戲角色列表中刪除副本。然后,游戲角色恢復(fù)到計(jì)算和更新的正常狀態(tài)。
一旦游戲角色穿越其宿主服務(wù)器的區(qū)域邊界并進(jìn)入到遷入服務(wù)器的區(qū)域,主行為者服務(wù)器的地圖控制器210將通知遷入服務(wù)器上的對(duì)等者,并且通過將主行為者游戲角色改變成副本游戲角色以及通過將遷入服務(wù)器的副本游戲角色改變成主行為者游戲角色來結(jié)束遷移處理。當(dāng)游戲角色最終遷移到遷入服務(wù)器時(shí),由于游戲角色的信息已經(jīng)存在于遷入服務(wù)器中,因此該游戲角色立即被遷入服務(wù)器接管。
圖3示出根據(jù)本發(fā)明的地圖控制器210的方框圖。參考圖3,地圖控制器210包括副本檢測(cè)器320、副本計(jì)劃器340、副本計(jì)劃發(fā)送器350、副本計(jì)劃接收和管理器360以及地圖信息池即地圖服務(wù)器表(Map-Server Table)存儲(chǔ)器330。
所述副本檢測(cè)器320負(fù)責(zé)檢測(cè)是否創(chuàng)建副本、刪除副本或同步副本狀態(tài)。具體地說,所述副本檢測(cè)器320從游戲邏輯計(jì)算模塊200接收最新的游戲角色狀態(tài),然后根據(jù)地圖服務(wù)器表存儲(chǔ)器330中的信息和游戲角色設(shè)置,作出關(guān)于是否創(chuàng)建副本、刪除副本或同步副本狀態(tài)的決定。
如果所述副本檢測(cè)器320決定創(chuàng)建副本、刪除副本或同步副本狀態(tài),就由副本計(jì)劃器340創(chuàng)建副本計(jì)劃。所述副本計(jì)劃包括參與者的近鄰(目的地)和行為(1)添加副本;(2)刪除副本或 (3)更新副本狀態(tài)。為了更新副本狀態(tài),副本計(jì)劃還包括將要被同步的游戲角色的最新狀態(tài)。這里,每種狀態(tài)都具有對(duì)應(yīng)于不同近鄰游戲服務(wù)器的幾份不同的行為。
如果所述副本檢測(cè)器320決定不創(chuàng)建副本、不刪除副本和不同步副本狀態(tài),則不采取副本創(chuàng)建/刪除/同步行為,也就是說,副本計(jì)劃器340在這種情況下不進(jìn)行任何工作。
副本計(jì)劃發(fā)送器350負(fù)責(zé)將行為命令發(fā)送到其近鄰。具體地說,所述副本計(jì)劃發(fā)送器350首先讀取計(jì)劃的目的地地址項(xiàng)(近鄰的地址),然后將所述行為命令通過網(wǎng)絡(luò)協(xié)議或在通信中間設(shè)備的支持下發(fā)送到不同的目的地。
副本計(jì)劃接收和管理器360負(fù)責(zé)收集由對(duì)等者發(fā)送來的所有近鄰游戲服務(wù)器的副本計(jì)劃,然后根據(jù)副本計(jì)劃信息進(jìn)行副本添加、刪除或狀態(tài)同步處理。
地圖服務(wù)器表存儲(chǔ)器330是描述區(qū)域地圖之間的服務(wù)器地圖關(guān)系和近鄰關(guān)系的數(shù)據(jù)庫的存儲(chǔ)器。
在本發(fā)明的一個(gè)實(shí)施例中,地圖控制器210還包括一個(gè)游戲策略構(gòu)造器310以及游戲角色策略數(shù)據(jù)庫存儲(chǔ)器315。策略構(gòu)造器310收集由游戲邏輯計(jì)算模塊200商定的游戲角色策略層信息,以構(gòu)造游戲角色策略,并將其存儲(chǔ)在游戲角色策略數(shù)據(jù)庫存儲(chǔ)器315中。游戲角色策略包括游戲角色的視圖范圍以及可以用于計(jì)算游戲角色感興趣區(qū)域的其他特殊信息(比如地形等)。
地圖控制器210與游戲應(yīng)用程序運(yùn)行在同一運(yùn)行環(huán)境上。游戲應(yīng)用程序運(yùn)行環(huán)境像設(shè)計(jì)游戲應(yīng)用程序那樣支持正在經(jīng)受的游戲角色游戲邏輯處理。地圖控制器210在游戲角色狀態(tài)計(jì)算模塊200計(jì)算出結(jié)果后開始工作,直到游戲角色狀態(tài)更新模塊220開始工作時(shí)結(jié)束。地圖控制器210為游戲世界的每一層實(shí)現(xiàn)無縫游戲世界。
地圖控制器210的上述功能可以通過讓其執(zhí)行圖4所示的步驟來實(shí)現(xiàn)。圖4是示出完整的狀態(tài)更新的流程圖。參考圖4,在步驟S410,地圖控制器210監(jiān)視游戲角色的狀態(tài)變化,檢測(cè)游戲角色感興趣區(qū)域是否穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器。
如果在步驟S410中檢測(cè)到游戲角色感興趣區(qū)域在邊界內(nèi)部,也即是游戲角色感興趣區(qū)域沒有穿越邊界,沒有橫跨近鄰游戲服務(wù)器,則過程前進(jìn)到步驟S420,在其中,地圖控制器210通知主行為者服務(wù)器根據(jù)游戲邏輯計(jì)算模塊200計(jì)算出的游戲角色的新狀態(tài),更新游戲角色的狀態(tài)。
如果在步驟S410中檢測(cè)到游戲角色感興趣區(qū)域穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器,則過程前進(jìn)到步驟S430,在其中,地圖控制器210根據(jù)各個(gè)游戲角色感興趣區(qū)域和其他私有策略,在近鄰游戲服務(wù)器上創(chuàng)建副本。
然后,過程前進(jìn)到步驟S440,在其中,主行為者服務(wù)器(doer server)利用游戲邏輯計(jì)算模塊200計(jì)算出游戲角色的新狀態(tài),并且利用地圖控制器210同步副本的狀態(tài)。
接下來,過程前進(jìn)到步驟S450,在其中,主行為者服務(wù)器和近鄰游戲服務(wù)器對(duì)同一游戲角色執(zhí)行狀態(tài)更新。
接下來,過程前進(jìn)到步驟S465,在其中,地圖控制器210檢測(cè)游戲角色感興趣區(qū)域是否橫跨服務(wù)器的地圖并進(jìn)入到遷入服務(wù)器的區(qū)域。如果在步驟S465檢測(cè)出游戲角色感興趣區(qū)域不再橫跨服務(wù)器的地圖邊界,那么,過程前進(jìn)到步驟S460,在其中,地圖控制器210通知近鄰游戲服務(wù)器從游戲角色列表中刪除副本。然后,過程退回到步驟S420。
如果在步驟S465檢測(cè)出游戲角色穿越其宿主服務(wù)器的區(qū)域邊界并進(jìn)入到遷入服務(wù)器的區(qū)域,那么,過程前進(jìn)到步驟S470,在其中,地圖控制器210將通知遷入服務(wù)器上的對(duì)等者,并且通過將主行為者游戲角色改變成副本游戲角色以及通過將遷入服務(wù)器的副本游戲角色改變成主行為者游戲角色來結(jié)束遷移處理。
然后,過程前進(jìn)到步驟S480,在其中,在遷入服務(wù)器中計(jì)算游戲角色的狀態(tài),并結(jié)束該狀態(tài)更新過程。
針對(duì)玩家形成無縫游戲世界視圖的細(xì)節(jié)可以利用圖5進(jìn)行說明。圖5示出在游戲角色感興趣區(qū)域跨越服務(wù)器時(shí),不同服務(wù)器更新對(duì)應(yīng)的感興趣區(qū)域部分到客戶機(jī)的示意圖。參考圖5,一旦地圖控制器210發(fā)現(xiàn)某個(gè)游戲角色感興趣區(qū)域在其區(qū)域之外,它就通知相關(guān)的近鄰對(duì)等者創(chuàng)建副本。
以下將結(jié)合圖5詳細(xì)描述在主行為者游戲角色的更新周期中,服務(wù)器將其上的游戲角色感興趣區(qū)域更新到客戶機(jī),并且近鄰游戲服務(wù)器針對(duì)客戶機(jī)計(jì)算其上的副本的感興趣區(qū)域的過程。
如圖5所示,作為主行為者服務(wù)器的服務(wù)器A所控制的區(qū)域由空白方框表示,作為近鄰游戲服務(wù)器的服務(wù)器B所控制的區(qū)域由陰影方框表示。
附圖標(biāo)記500指示的是游戲玩家的感興趣區(qū)域跨越服務(wù)器的示意圖。在該示意圖中,區(qū)域510指示的是游戲者在位置P1時(shí)的感興趣區(qū)域,而當(dāng)游戲玩家從位置P1移動(dòng)到位置P2時(shí),游戲者在位置P2時(shí)的感興趣區(qū)域由區(qū)域520指示。從附圖標(biāo)記500指示的示意圖顯然可以看出,游戲者在位置P2時(shí)的感興趣區(qū)域跨越近鄰游戲服務(wù)器的區(qū)域。在這種情況下,地圖控制器210將在近鄰游戲服務(wù)器(服務(wù)器B)中創(chuàng)建副本游戲角色,并且將所述副本游戲角色的狀態(tài)與主行為者游戲角色的狀態(tài)同步。
為了創(chuàng)建并同步副本,當(dāng)游戲玩家從位置P1移動(dòng)到位置P2并且游戲者的感興趣區(qū)域跨越近鄰游戲服務(wù)器的區(qū)域時(shí),游戲玩家的命令仍然要被發(fā)送到服務(wù)器A。
附圖標(biāo)記500’指示的是創(chuàng)建并同步副本的示意圖。在該示意圖中,區(qū)域530指示游戲玩家感興趣區(qū)域在服務(wù)器A所控制的區(qū)域中的部分,而區(qū)域540指示游戲玩家感興趣區(qū)域在近鄰游戲服務(wù)器B所控制的區(qū)域中的部分。區(qū)域530由主行為者游戲角色操作,而區(qū)域530由副本游戲角色操作。游戲玩家將其命令發(fā)送到服務(wù)器A,然后服務(wù)器A根據(jù)游戲邏輯處理游戲玩家所發(fā)送的命令,并將其狀態(tài)更新消息發(fā)送給主行為者游戲角色(視圖的一部分)。另外,在服務(wù)器B進(jìn)行更新期間,也將其狀態(tài)更新消息發(fā)送給副本游戲角色(視圖的另一部分)。從而達(dá)到將新的游戲角色感興趣區(qū)域更新到客戶機(jī)的目的。通過上述處理,客戶機(jī)有了一個(gè)連續(xù)的視圖,這個(gè)連續(xù)的視圖由服務(wù)器A和服務(wù)器B分別控制。
地圖控制器210所采用的方法可以結(jié)合圖6詳細(xì)描述如下。圖6是圖解地圖控制器210的運(yùn)行流程圖。參考圖6,在步驟S610,地圖控制器210在游戲邏輯計(jì)算模塊200接收到玩家命令并且計(jì)算出新狀態(tài)之后,調(diào)用副本檢測(cè)器320,以便由其根據(jù)所計(jì)算出的、游戲角色的當(dāng)前狀態(tài)以及游戲角色的策略和地圖服務(wù)器表,作出關(guān)于是否創(chuàng)建副本、刪除副本或同步副本狀態(tài)的決定。
如果在步驟S610決定需要?jiǎng)?chuàng)建、刪除副本或更新現(xiàn)有的副本的狀態(tài),那么,進(jìn)程轉(zhuǎn)移到步驟S620,在其中利用副本計(jì)劃器340生成副本計(jì)劃,這種計(jì)劃包括參與者的近鄰(目的地)和行為(1)添加副本;(2)刪除副本或(3)更新副本狀態(tài)。對(duì)于更新行為,它還包括游戲角色的、需要同步的最新狀態(tài)。每個(gè)計(jì)劃可以具有對(duì)應(yīng)于不同近鄰游戲服務(wù)器的幾項(xiàng)不同的行為。然后,進(jìn)程轉(zhuǎn)移到步驟S630。
而如果在步驟S610決定不需要?jiǎng)?chuàng)建、刪除副本和更新現(xiàn)有的副本的狀態(tài),那么,進(jìn)程直接轉(zhuǎn)移到步驟S640,在那里進(jìn)行近鄰副本計(jì)劃收集和管理處理,以便收集近鄰的副本計(jì)劃,并根據(jù)所收集到的副本計(jì)劃的命令進(jìn)行相應(yīng)處理。
然后,在步驟S630,利用副本計(jì)劃發(fā)送器350根據(jù)副本計(jì)劃的目的地(近鄰)項(xiàng),通過網(wǎng)絡(luò)協(xié)議或在通信中間設(shè)備的支持下,將副本計(jì)劃的行為命令發(fā)送到其近鄰。然后,進(jìn)程轉(zhuǎn)移到步驟S640。
接下來,在步驟S640,利用計(jì)劃接收和管理器360收集由對(duì)等者發(fā)送來的、其所有近鄰的副本計(jì)劃,并根據(jù)副本計(jì)劃執(zhí)行副本添加、刪除或狀態(tài)同步處理。然后,進(jìn)程轉(zhuǎn)移到步驟S650。
接下來,在步驟S650,在步驟S640執(zhí)行所有副本計(jì)劃之后,在主行為者的更新周期中,其服務(wù)器將更新其上的游戲角色感興趣區(qū)域到客戶機(jī),而在副本更新周期中,副本服務(wù)器也將計(jì)算其上的副本的感興趣區(qū)域,并且更新信息到客戶機(jī)。
根據(jù)本發(fā)明的上述實(shí)施例的描述可以看出,本發(fā)明通過在傳統(tǒng)大規(guī)模多玩家在線游戲系統(tǒng)的游戲邏輯計(jì)算模塊200和游戲角色狀態(tài)更新模塊220之間增加地圖控制器210,可以使所有玩家具有一致的無縫游戲世界視圖。當(dāng)游戲角色感興趣區(qū)域跨越非游戲者的主行為者服務(wù)器,而到了其他服務(wù)器時(shí),游戲者可以覺察到可視范圍中的其他服務(wù)器上的游戲角色。游戲角色還可以無縫地從一個(gè)服務(wù)器遷移到另一個(gè)服務(wù)器。
根據(jù)本發(fā)明的系統(tǒng)和方法非常靈活地支持可改變和不同游戲角色視圖范圍,而且,也沒有任何冗余的副本游戲角色,因而與傳統(tǒng)的重疊區(qū)域方式相比,具有較少的計(jì)算量和通信負(fù)荷。
根據(jù)本發(fā)明的方法對(duì)地圖結(jié)構(gòu)也沒有任何限制??梢苑奖愕赜糜趥鹘y(tǒng)游戲的改進(jìn)。
此外,地圖控制器210可以被實(shí)施為負(fù)責(zé)管理副本的模塊,并且在游戲應(yīng)用程序和玩家之間擔(dān)任“看不見的手(hidden hand)”,因此,對(duì)傳統(tǒng)游戲系統(tǒng)沒有任何特別的要求。
雖然上面主要以硬件結(jié)構(gòu)或方法步驟來描述了本發(fā)明的優(yōu)選實(shí)施例,但根據(jù)本發(fā)明的、大規(guī)模多玩家在線游戲系統(tǒng)操作方法也可以實(shí)施為計(jì)算機(jī)程序軟件。例如,按照本發(fā)明的示范實(shí)施例的方法可以體現(xiàn)成一種計(jì)算機(jī)程序產(chǎn)品,它可以使得計(jì)算機(jī)執(zhí)行所示范的一種或多種方法。所述計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀的介質(zhì),其上包含計(jì)算機(jī)程序邏輯或代碼部分,用于使得所述大規(guī)模多玩家在線游戲系統(tǒng)能夠按照一種或多種示范方法執(zhí)行大規(guī)模多玩家在線游戲。
所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是被安裝在計(jì)算機(jī)主體中的內(nèi)置介質(zhì)或者被布置使得它可以從計(jì)算機(jī)主體拆卸的可移動(dòng)介質(zhì)。所述內(nèi)置介質(zhì)的示例包括但不限于可重寫的非易失性存儲(chǔ)器,諸如RAM、ROM、快閃存儲(chǔ)器和硬盤??梢苿?dòng)介質(zhì)的示例可以包括但不限于光存儲(chǔ)媒體,諸如CD-ROM和DVD;磁光存儲(chǔ)媒體,諸如MO;磁存儲(chǔ)媒體,諸如軟盤(商標(biāo))、盒帶和可移動(dòng)硬盤;具有內(nèi)置的可重寫的非易失性存儲(chǔ)器的媒體,諸如存儲(chǔ)卡;具有內(nèi)置的ROM的媒體,諸如ROM盒。
根據(jù)本發(fā)明的方法的程序也可以被提供為外部提供的傳播信號(hào)和/或在載波中包括的計(jì)算機(jī)數(shù)據(jù)信號(hào)的形式。體現(xiàn)為示范方法的一個(gè)或多個(gè)指令或功能的所述計(jì)算機(jī)數(shù)據(jù)信號(hào)可以被承載在用于通過執(zhí)行示范方法的指令或功能的實(shí)體來發(fā)送和/或接收的載波上。而且,這樣的程序當(dāng)被記錄在計(jì)算機(jī)可讀存儲(chǔ)媒體上時(shí)可以容易地被存儲(chǔ)和分發(fā)。
本發(fā)明的上述說明本質(zhì)上僅僅是示范性的,因此不脫離本發(fā)明的要旨的改變打算在本發(fā)明的范圍內(nèi)。這樣的改變不被看作與本發(fā)明的精神和范圍的脫離。
權(quán)利要求
1.一種包含多個(gè)游戲服務(wù)器和至少一個(gè)客戶機(jī)的無縫游戲世界系統(tǒng),每個(gè)所述游戲邏輯服務(wù)器被分配給分成區(qū)域的游戲世界中的一個(gè)區(qū)域,用于執(zhí)行計(jì)算管理游戲世界的狀態(tài)所需的全部計(jì)算,所述客戶機(jī)用信號(hào)指令游戲角色在游戲內(nèi)的移動(dòng),所述游戲角色為玩家在游戲世界里的實(shí)體,其狀態(tài)由用戶輸入來控制,其特征在于,所述無縫游戲世界系統(tǒng)包括游戲邏輯計(jì)算模塊,用于計(jì)算游戲角色的新狀態(tài);地圖控制器,用于根據(jù)所述游戲角色計(jì)算模塊所計(jì)算出來的游戲角色的新狀態(tài),檢測(cè)游戲角色感興趣區(qū)域是否穿越游戲角色的宿主服務(wù)器的邊界并橫跨近鄰游戲服務(wù)器,并根據(jù)檢查結(jié)果確定在近鄰游戲服務(wù)器上創(chuàng)建/刪除/同步副本,所述副本表示主行為者游戲角色在近鄰游戲服務(wù)器上的化身,所述主行為者游戲角色為具有副本游戲角色的游戲角色;以及游戲角色狀態(tài)更新模塊,用于在所述地圖控制器通知其近鄰游戲服務(wù)器從游戲角色列表中刪除副本之后,根據(jù)所述游戲邏輯計(jì)算模塊的計(jì)算結(jié)果對(duì)游戲角色進(jìn)行正常狀態(tài)更新。
2.根據(jù)權(quán)利要求1所述的無縫游戲世界系統(tǒng),其中,所述游戲邏輯計(jì)算模塊、地圖控制器以及游戲角色狀態(tài)更新模塊與游戲應(yīng)用程序運(yùn)行環(huán)境集成在一起。
3.根據(jù)權(quán)利要求1所述的無縫游戲世界系統(tǒng),其中,每個(gè)主行為者游戲角色具有幾個(gè)副本游戲角色。
4.根據(jù)權(quán)利要求1-3之一所述的無縫游戲世界系統(tǒng),其中,所述地圖控制器還包括角色遷移處理器,用于在游戲角色穿越游戲角色的宿主服務(wù)器的邊界并進(jìn)入到遷入服務(wù)器的區(qū)域時(shí),通知遷入服務(wù)器上的對(duì)等者,并且通過將主行為者游戲角色改變成副本游戲角色以及通過將遷入服務(wù)器的副本游戲角色改變成主行為者游戲角色來結(jié)束遷移處理。
5.根據(jù)權(quán)利要求1-3之一所述的無縫游戲世界系統(tǒng),其中,所述地圖控制器包括副本檢測(cè)器,用于從所述游戲邏輯計(jì)算模塊接收所計(jì)算出的游戲角色的新狀態(tài),并根據(jù)地圖服務(wù)器表信息和游戲角色策略,決定是否創(chuàng)建副本、刪除副本或同步副本狀態(tài);副本計(jì)劃器,用于創(chuàng)建副本計(jì)劃,所述副本計(jì)劃包括參與者的近鄰游戲服務(wù)器和行為添加副本、刪除副本或更新副本狀態(tài);副本計(jì)劃發(fā)送器,用于讀取副本計(jì)劃的近鄰游戲服務(wù)器的地址,并將所述行為命令通過網(wǎng)絡(luò)協(xié)議或在通信中間設(shè)備的支持下發(fā)送到不同的近鄰游戲服務(wù)器;以及副本計(jì)劃接收和管理器,用于收集由對(duì)等者發(fā)送來的所有近鄰游戲服務(wù)器的副本計(jì)劃,并根據(jù)副本計(jì)劃信息進(jìn)行副本添加、刪除或狀態(tài)同步處理。
6.根據(jù)權(quán)利要求5所述的無縫游戲世界系統(tǒng),其中,所述副本計(jì)劃還包括將要被同步的游戲角色的新狀態(tài)。
7.根據(jù)權(quán)利要求6所述的無縫游戲世界系統(tǒng),其中,每種狀態(tài)都具有對(duì)應(yīng)于不同近鄰游戲服務(wù)器的幾份不同的行為。
8.根據(jù)權(quán)利要求5所述的無縫游戲世界系統(tǒng),還包括地圖服務(wù)器表存儲(chǔ)器,用于存儲(chǔ)描述區(qū)域地圖之間的服務(wù)器地圖關(guān)系和近鄰關(guān)系的數(shù)據(jù)。
9.根據(jù)權(quán)利要求5所述的無縫游戲世界系統(tǒng),還包括游戲策略構(gòu)造器,用于收集由所述游戲邏輯計(jì)算模塊商定的游戲角色策略層信息,以構(gòu)造游戲角色策略,所述游戲角色策略包括游戲角色的視圖范圍以及用于計(jì)算游戲角色感興趣區(qū)域的其他特殊信息。
10.根據(jù)權(quán)利要求9所述的無縫游戲世界系統(tǒng),還包括游戲角色策略數(shù)據(jù)庫存儲(chǔ)器,用于存儲(chǔ)游戲角色策略數(shù)據(jù)庫,所述游戲角色策略數(shù)據(jù)庫是描述區(qū)域地圖之間的服務(wù)器地圖關(guān)系和近鄰關(guān)系的數(shù)據(jù)庫。
11.一種使游戲世界的每一層實(shí)現(xiàn)無縫游戲世界的方法,所述游戲世界被分成區(qū)域,每個(gè)區(qū)域分配給一個(gè)游戲服務(wù)器管理,游戲玩家控制客戶機(jī)來接受從遠(yuǎn)程游戲服務(wù)器傳送來的命令、再現(xiàn)游戲世界的玩家視圖并且跨越網(wǎng)絡(luò)來發(fā)送按鍵、鼠標(biāo)或控制器命令,以便用信號(hào)指令游戲角色在游戲內(nèi)的移動(dòng),所述游戲角色為玩家在游戲世界里的實(shí)體,其狀態(tài)由用戶輸入來控制,其特征在于,所述方法包括步驟a)計(jì)算游戲角色的新狀態(tài);b)根據(jù)所述計(jì)算出來的游戲角色的新狀態(tài),檢測(cè)客戶感興趣的游戲角色感興趣區(qū)域是否穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器,并根據(jù)檢查結(jié)果確定在近鄰游戲服務(wù)器上創(chuàng)建/刪除/同步副本,所述副本表示主行為者游戲角色在近鄰游戲服務(wù)器上的化身;以及c)在從游戲角色列表中刪除副本之后,根據(jù)所計(jì)算結(jié)果對(duì)游戲角色進(jìn)行正常狀態(tài)更新。
12.根據(jù)權(quán)利要求11所述的方法,其中,每個(gè)主行為者游戲角色具有幾個(gè)副本游戲角色。
13.根據(jù)權(quán)利要求11所述的方法,其中,所述步驟b)在游戲角色穿越其宿主服務(wù)器的區(qū)域邊界并進(jìn)入到遷入服務(wù)器的區(qū)域時(shí),還通知遷入服務(wù)器上的對(duì)等者,并且通過將主行為者游戲角色改變成副本游戲角色以及通過將遷入服務(wù)器的副本游戲角色改變成主行為者游戲角色來結(jié)束遷移處理。
14.根據(jù)權(quán)利要求11-13之一所述的方法,其中,所述步驟b)包括子步驟b1)從所計(jì)算出的游戲角色的新狀態(tài),并根據(jù)地圖服務(wù)器表信息和游戲角色策略,決定是否創(chuàng)建副本、刪除副本或同步副本狀態(tài);b2)當(dāng)在b1)中決定創(chuàng)建副本、刪除副本或同步副本狀態(tài)時(shí),創(chuàng)建副本計(jì)劃,所述副本計(jì)劃包括參與者的近鄰游戲服務(wù)器和行為添加副本、刪除副本或更新副本狀態(tài);b3)讀取副本計(jì)劃的近鄰游戲服務(wù)器的地址,并將所述行為命令通過網(wǎng)絡(luò)協(xié)議或在通信中間設(shè)備的支持下發(fā)送到不同的近鄰游戲服務(wù)器;以及b4)收集由對(duì)等者發(fā)送來的所有近鄰游戲服務(wù)器的副本計(jì)劃,并根據(jù)副本計(jì)劃信息進(jìn)行副本添加、刪除或狀態(tài)同步處理。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述副本計(jì)劃還包括將要被同步的游戲角色的新狀態(tài)。
16.根據(jù)權(quán)利要求15所述的方法,其中,每種狀態(tài)都具有對(duì)應(yīng)于不同近鄰游戲服務(wù)器的幾份不同的行為。
17.根據(jù)權(quán)利要求14所述的方法,還包括步驟收集由所述游戲邏輯計(jì)算模塊商定的游戲角色策略層信息,以構(gòu)造游戲角色策略,所述游戲角色策略包括游戲角色的視圖范圍以及用于計(jì)算游戲角色感興趣區(qū)域的其他特殊信息。
18.根據(jù)權(quán)利要求14所述的方法,其中,所述步驟b1)包括子步驟b11)監(jiān)視游戲角色的狀態(tài)變化,檢測(cè)游戲角色感興趣區(qū)域是否穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器;b12)如果在步驟b11)中檢測(cè)到游戲角色感興趣區(qū)域在邊界內(nèi)部,則決定由主行為者服務(wù)器計(jì)算出游戲角色的新狀態(tài),并更新游戲角色的狀態(tài),而如果在步驟b11)中檢測(cè)到游戲角色感興趣區(qū)域穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器,則決定根據(jù)各個(gè)游戲角色感興趣區(qū)域和其他私有策略,在近鄰游戲服務(wù)器上創(chuàng)建副本。
19.根據(jù)權(quán)利要求18所述的方法,其中,所述步驟b1)還包括子步驟b13)檢測(cè)游戲角色感興趣區(qū)域是否橫跨服務(wù)器的地圖并進(jìn)入到遷入服務(wù)器的區(qū)域;b14)如果在步驟c5)檢測(cè)出游戲角色感興趣區(qū)域不再橫跨服務(wù)器的地圖邊界,則通知近鄰游戲服務(wù)器從游戲角色列表中刪除副本,然后執(zhí)行步驟c2),而如果在步驟c5)檢測(cè)出游戲角色穿越其宿主服務(wù)器的區(qū)域邊界并進(jìn)入到遷入服務(wù)器的區(qū)域,則通知遷入服務(wù)器上的對(duì)等者,并且通過將主行為者游戲角色改變成副本游戲角色以及通過將遷入服務(wù)器的副本游戲角色改變成主行為者游戲角色來結(jié)束遷移處理;以及b15)在遷入服務(wù)器中計(jì)算游戲角色的狀態(tài)。
20.根據(jù)權(quán)利要求11-13之一所述的方法,其中,所述步驟b)包括子步驟1)監(jiān)視游戲角色的狀態(tài)變化,檢測(cè)游戲角色感興趣區(qū)域是否穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器;2)如果在步驟1)中檢測(cè)到游戲角色感興趣區(qū)域在邊界內(nèi)部,則主行為者服務(wù)器計(jì)算出的游戲角色的新狀態(tài),并更新游戲角色的狀態(tài),而如果在步驟1)中檢測(cè)到游戲角色感興趣區(qū)域穿越其宿主服務(wù)器的區(qū)域邊界并橫跨近鄰游戲服務(wù)器,則根據(jù)各個(gè)游戲角色感興趣區(qū)域和其他私有策略,在近鄰游戲服務(wù)器上創(chuàng)建副本;3)主行為者服務(wù)器計(jì)算出游戲角色的新狀態(tài),并且同步副本的狀態(tài);4)主行為者服務(wù)器和近鄰游戲服務(wù)器對(duì)同一游戲角色執(zhí)行狀態(tài)更新;5)檢測(cè)游戲角色感興趣區(qū)域是否橫跨服務(wù)器的地圖并進(jìn)入到遷入服務(wù)器的區(qū)域;6)如果在步驟5)檢測(cè)出游戲角色感興趣區(qū)域不再橫跨服務(wù)器的地圖邊界,則通知近鄰游戲服務(wù)器從游戲角色列表中刪除副本,然后執(zhí)行步驟2),而如果在步驟5)檢測(cè)出游戲角色穿越其宿主服務(wù)器的區(qū)域邊界并進(jìn)入到遷入服務(wù)器的區(qū)域,則通知遷入服務(wù)器上的對(duì)等者,并且通過將主行為者游戲角色改變成副本游戲角色以及通過將遷入服務(wù)器的副本游戲角色改變成主行為者游戲角色來結(jié)束遷移處理;以及7)在遷入服務(wù)器中計(jì)算游戲角色的狀態(tài)。
21.根據(jù)權(quán)利要求11所述的方法,其中,當(dāng)游戲者的感興趣區(qū)域跨越近鄰游戲服務(wù)器的區(qū)域時(shí),游戲玩家的命令被發(fā)送到主行為者服務(wù)器,然后在近鄰游戲服務(wù)器更新期間,將其發(fā)送給副本游戲角色在近鄰游戲服務(wù)器中創(chuàng)建副本游戲角色,并且將所述副本游戲角色的狀態(tài)與主行為者游戲角色的狀態(tài)同步。
22.一種包含執(zhí)行權(quán)利要求11-21之一所述的方法的步驟的指令的計(jì)算機(jī)可讀媒體。
全文摘要
本發(fā)明提供大規(guī)模多玩家在線游戲系統(tǒng)領(lǐng)域中的一種包含多個(gè)被分配給分成區(qū)域的游戲世界中的一個(gè)區(qū)域的游戲服務(wù)器和至少一個(gè)客戶機(jī)的無縫游戲世界系統(tǒng),包括游戲邏輯計(jì)算模塊,用于計(jì)算游戲角色的新狀態(tài);地圖控制器,用于根據(jù)所述游戲角色計(jì)算模塊所計(jì)算出來的游戲角色的新狀態(tài),檢測(cè)游戲角色感興趣區(qū)域是否穿越游戲角色的宿主服務(wù)器的邊界并橫跨近鄰游戲服務(wù)器,并根據(jù)檢查結(jié)果確定在近鄰游戲服務(wù)器上創(chuàng)建/刪除/同步副本;以及游戲角色狀態(tài)更新模塊,用于在所述地圖控制器通知其近鄰游戲服務(wù)器從游戲角色列表中刪除副本之后,根據(jù)所述游戲邏輯計(jì)算模塊的計(jì)算結(jié)果對(duì)游戲角色進(jìn)行正常狀態(tài)更新。
文檔編號(hào)G06F19/00GK1848124SQ20051006495
公開日2006年10月18日 申請(qǐng)日期2005年4月12日 優(yōu)先權(quán)日2005年4月12日
發(fā)明者程龍, 葉萌, 戈弋, 邵凌 申請(qǐng)人:國際商業(yè)機(jī)器公司