廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,該方法包括以下步驟:在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲;將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算;將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。本發(fā)明通過在終端設(shè)備上運(yùn)行具體游戲的業(yè)務(wù)邏輯,服務(wù)器僅用于處理廣域網(wǎng)實(shí)時互動游戲運(yùn)行后的數(shù)據(jù),從而減少了服務(wù)器的壓力。另外,本發(fā)明還提供了一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置及一種使用廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法的網(wǎng)絡(luò)系統(tǒng)。
【專利說明】廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)軟件領(lǐng)域,尤其涉及一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有的網(wǎng)絡(luò)游戲大多采用集中式處理。游戲場景、物品生成、游戲邏輯執(zhí)行及結(jié)果判定均由游戲服務(wù)器進(jìn)行處理和運(yùn)算。同時,所有客戶端均和服務(wù)器進(jìn)行直連通訊,數(shù)據(jù)吞吐量非常大,服務(wù)器的帶寬和機(jī)器配置都要求非常高。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法、裝置及系統(tǒng),將大部分業(yè)務(wù)邏輯放在客戶端完成,從而降低服務(wù)器的性能需求。
[0004]本發(fā)明實(shí)施例提供一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,該方法包括以下步驟:
[0005]在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲;
[0006]將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算;
[0007]將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。
[0008]其中,在將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算的步驟中還包括以下子步驟:
[0009]判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透:
[0010]若網(wǎng)絡(luò)狀況可進(jìn)行P2P穿透,采用P2P穿透技術(shù)同步。
[0011]其中,在將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算的步驟中還包括以下子步驟:
[0012]獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令;
[0013]按照時間先后順序保存所述己方輸入指令;
[0014]根據(jù)預(yù)設(shè)的幀時間間隔將所述己方輸入指令及所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)生成至少一個己方數(shù)據(jù)幀,各所述己方數(shù)據(jù)幀分別對應(yīng)一個所述己方輸入指令及當(dāng)時對應(yīng)的所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài);
[0015]發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值;
[0016]獲取其他所述廣域網(wǎng)實(shí)時互動游戲發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包;[0017]判斷當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于所述同步臨界值;
[0018]若當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差小于所述同步臨界值,將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
[0019]其中,在所述獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令的步驟之前還包括:
[0020]通過服務(wù)器聯(lián)網(wǎng)各終端設(shè)備內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲;
[0021]同步至少兩個所述終端設(shè)備的所述廣域網(wǎng)實(shí)時互動游戲的初始狀態(tài)至相同。
[0022]其中,在所述若當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差小于所述同步臨界值,將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲的步驟中還包括以下子步驟:
[0023]解析所述他方數(shù)據(jù)包,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài);
[0024]將所述他方數(shù)據(jù)包內(nèi)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng);
[0025]將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。
[0026]其中,在所述將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步的步驟之后還包括以下步驟:
[0027]判斷所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)是否全部同步;
[0028]若所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)全部同步,則根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
[0029]其中,在所述發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值步驟中,還包括以下步驟:
[0030]根據(jù)通信過程中網(wǎng)絡(luò)狀態(tài)的變化,動態(tài)檢測并調(diào)整所述同步臨界值,當(dāng)網(wǎng)絡(luò)狀況好的情況下,減小所述同步臨界值;當(dāng)網(wǎng)絡(luò)狀況差的情況,增加所述同步臨界值。
[0031]相應(yīng)的,本發(fā)明實(shí)施例還提供了一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置包括:
[0032]處理模塊,用于在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲;
[0033]同步模塊,用于將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算;
[0034]上報模塊,用于將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。
[0035]其中,所述同步模塊還包括:
[0036]網(wǎng)絡(luò)判斷模塊,用于判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透;
[0037]穿透模塊,用于采用P2P穿透技術(shù)同步。
[0038]其中,所述同步模塊還包括:
[0039]獲取模塊,用于獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令;
[0040]指令存儲模塊,用于按照時間先后順序保存所述己方輸入指令;
[0041]數(shù)據(jù)幀生成模塊,用于根據(jù)預(yù)設(shè)的幀時間間隔將所述己方輸入指令及所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)生成至少一個己方數(shù)據(jù)幀,各所述己方數(shù)據(jù)幀分別對應(yīng)一個所述己方輸入指令及當(dāng)時對應(yīng)的所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài);
[0042]發(fā)送模塊,用于發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值;
[0043]接收模塊,用于獲取其他所述廣域網(wǎng)實(shí)時互動游戲發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包;
[0044]判斷模塊,用于判斷當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于所述同步臨界值;
[0045]同步子模塊,用于將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
[0046]其中,所述同步模塊還包括:
[0047]通信模塊,用于通過服務(wù)器聯(lián)網(wǎng)各終端設(shè)備內(nèi)置的廣域網(wǎng)實(shí)時互動游戲;
[0048]初始化模塊,用于同步至少兩個終端設(shè)備的廣域網(wǎng)實(shí)時互動游戲的初始狀態(tài)至相同。
[0049]其中,所述同步子模塊還包括:
[0050]解析子模塊,用于解析所述他方數(shù)據(jù)包,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài);
[0051]映射子模塊,用于將所述他方數(shù)據(jù)包內(nèi)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng);
[0052]所述處理子模塊,用于將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。
[0053]其中,所述同步子模塊還包括:
[0054]同步進(jìn)程子模塊,用于判斷所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)是否全部同步;
[0055]運(yùn)行子模塊,用于當(dāng)所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)全部同步后,根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
[0056]其中,所述發(fā)送模塊還包括:
[0057]調(diào)整模塊,用于根據(jù)通信過程中網(wǎng)絡(luò)狀態(tài)的變化,動態(tài)檢測并調(diào)整所述同步臨界值,當(dāng)網(wǎng)絡(luò)狀況好的情況下,減小所述同步臨界值;當(dāng)網(wǎng)絡(luò)狀況差的情況,增加所述同步臨界值。
[0058]一種網(wǎng)絡(luò)系統(tǒng),所述網(wǎng)絡(luò)系統(tǒng)包括服務(wù)器及至少兩個終端設(shè)備,各所述終端設(shè)備均運(yùn)行一個廣域網(wǎng)實(shí)時互動游戲,所述至少兩個終端設(shè)備通過所述服務(wù)器進(jìn)行廣域網(wǎng)聯(lián)網(wǎng),并同步各所述廣域網(wǎng)實(shí)時互動游戲,其中,各所述終端設(shè)備均包括上述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置。
[0059]其中,所述服務(wù)器根據(jù)各所述終端設(shè)備內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲中玩家的熟練程度、系統(tǒng)相應(yīng)速度、網(wǎng)絡(luò)狀態(tài)及硬件配置進(jìn)行配對。
[0060]本發(fā)明實(shí)施例中,通過在終端設(shè)備上運(yùn)行具體游戲的業(yè)務(wù)邏輯,服務(wù)器僅用于處理廣域網(wǎng)實(shí)時互動游戲運(yùn)行后的數(shù)據(jù),從而減少了服務(wù)器的壓力。
【專利附圖】
【附圖說明】
[0061]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0062]圖1是本發(fā)明第一實(shí)施方式提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法的網(wǎng)絡(luò)不意圖;
[0063]圖2是本發(fā)明第一實(shí)施方式提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法的流程圖;
[0064]圖3是本發(fā)明第一實(shí)施方式提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置的模塊化結(jié)構(gòu)圖;
[0065]圖4是本發(fā)明第二實(shí)施方式提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法的服務(wù)端及客戶端示意圖;
[0066]圖5是本發(fā)明第二實(shí)施例提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法的流程圖;
[0067]圖6是圖5的部分流程圖;
[0068]圖7是本發(fā)明第二實(shí)施例提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置的數(shù)據(jù)交換示意圖;
[0069]圖8是本發(fā)明第二實(shí)施例提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置的模塊化結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0070]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0071]本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法、裝置及系統(tǒng),將大部分業(yè)務(wù)邏輯放在客戶端完成,從而降低服務(wù)器的性能需求,大大降低服務(wù)器的帶寬需求,最終達(dá)到低成本服務(wù)器架構(gòu)的游戲系統(tǒng)。以下分別進(jìn)行詳細(xì)說明。
[0072]請參閱圖1,是本發(fā)明實(shí)施例提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法的流程圖。其中,圖1所描述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法適用于各種終端設(shè)備,例如移動手機(jī)、掌上電腦(Personal Digital Assistant, PDA)、掌上游戲機(jī)、平板電腦、數(shù)碼相機(jī)以及其他移動互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices, MID)等,同樣適合電視、機(jī)頂盒、PC和手提電腦等終端,本發(fā)明實(shí)施例不作具體限定。所述廣域網(wǎng)實(shí)時互動游戲可以是街機(jī)廣域網(wǎng)實(shí)時互動游戲、家用機(jī)廣域網(wǎng)實(shí)時互動游戲、電腦廣域網(wǎng)實(shí)時互動游戲、手掌機(jī)廣域網(wǎng)實(shí)時互動游戲、電腦用手機(jī)廣域網(wǎng)實(shí)時互動游戲等游戲,本發(fā)明實(shí)施例不作限定。至少兩個所述廣域網(wǎng)實(shí)時互動游戲通過廣域網(wǎng)聯(lián)網(wǎng),并同步各所述廣域網(wǎng)實(shí)時互動游戲,建立一個網(wǎng)絡(luò)系統(tǒng)I。所述分布式聯(lián)網(wǎng)方法僅通過廣域網(wǎng)傳輸數(shù)據(jù),即沒有采用現(xiàn)有的RPC(Remote Procedure Call Protocol,遠(yuǎn)程過程調(diào)用協(xié)議)通信機(jī)制。具體地,兩個所述廣域網(wǎng)實(shí)時互動游戲通過對等連接(P2P,Peer-to-Peer)或者服務(wù)器中轉(zhuǎn)通信方式通信。請一并參閱圖1及圖2,本發(fā)明第一實(shí)施方式提供的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法可以包括以下步驟。
[0073]步驟101,在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,在終端設(shè)備100及終端設(shè)備200上運(yùn)行廣域網(wǎng)實(shí)時互動游戲。所述廣域網(wǎng)實(shí)時互動游戲?yàn)槟M器游戲。所述終端設(shè)備100及終端設(shè)備200均為手機(jī),所述終端設(shè)備100及終端設(shè)備200實(shí)現(xiàn)所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法的具體步驟相同。所述終端設(shè)備100及終端設(shè)備200分別安裝一個所述廣域網(wǎng)實(shí)時互動游戲。具體地,所述廣域網(wǎng)實(shí)時互動游戲?yàn)樵诮K端設(shè)備100及終端設(shè)備200上預(yù)先安裝的使用模擬器軟件模擬街機(jī)運(yùn)行rom游戲文件運(yùn)行的“拳皇”、“合金彈頭”等對戰(zhàn)類游戲。所述終端設(shè)備100和終端設(shè)備200上分別運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。所述廣域網(wǎng)實(shí)時互動游戲的游戲場景、物品生成、怪物生成及主要的業(yè)務(wù)邏輯等均在終端設(shè)備上實(shí)現(xiàn),減少服務(wù)器的性能需求及運(yùn)行壓力。當(dāng)然,在其他實(shí)施方式中,所述廣域網(wǎng)實(shí)時互動游戲也可以是“英雄聯(lián)盟”、CF、跑跑卡丁車等網(wǎng)游。所述廣域網(wǎng)實(shí)時互動游戲同步方法可用于3個、4個或更多個終端設(shè)備運(yùn)行。
[0074]步驟103,將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算。本實(shí)施方式中,所述終端設(shè)備100及終端設(shè)備200與所述服務(wù)器300廣域網(wǎng)聯(lián)網(wǎng),并同步各所述廣域網(wǎng)實(shí)時互動游戲,建立一個網(wǎng)絡(luò)系統(tǒng)。兩個所述終端設(shè)備100、200通信時通過UDP協(xié)議進(jìn)行通信。當(dāng)然,在其他實(shí)施方式中,所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法可用于3個、4個或更多個終端設(shè)備運(yùn)行。
[0075]所述終端設(shè)備100及終端設(shè)備200可以通過P2P穿透或服務(wù)器轉(zhuǎn)發(fā)建立客戶端之間的通信鏈路。所述終端設(shè)備100通過路由器9、服務(wù)器300及路由器8與所述終端設(shè)備100進(jìn)行廣域網(wǎng)連接,通過對所述終端設(shè)備100及終端設(shè)備200的網(wǎng)絡(luò)狀況進(jìn)行分析判斷是否可進(jìn)行P2P穿透(即兩個主機(jī)間建立一條直接進(jìn)行數(shù)據(jù)通信的鍵路),若穿透無可能性,則切換為使用服務(wù)器轉(zhuǎn)發(fā)建立客戶端之間的通信鏈路。具體地,所述服務(wù)器300判斷所述終端設(shè)備100及終端設(shè)備200是否同時采用對稱網(wǎng)絡(luò)地址轉(zhuǎn)換(Symmetic NAT)。若所述終端設(shè)備100及終端設(shè)備200同時采用Symmetic NAT,則所述服務(wù)器300判斷所述終端設(shè)備100及終端設(shè)備200無法實(shí)現(xiàn)打通。若所述終端設(shè)備100及終端設(shè)備200中僅一個采用Symmetic NAT,則所述服務(wù)器300判斷所述終端設(shè)備100及終端設(shè)備200能夠?qū)崿F(xiàn)打通。本實(shí)施方式中,所述終端設(shè)備100采用Symmetic NAT,所述終端設(shè)備200采用錐形網(wǎng)絡(luò)地址轉(zhuǎn)換(Cone NAT)。Symmetic NAT每次發(fā)往不同的目標(biāo)端口映射會變化,Cone NAT每次發(fā)往不同的目標(biāo)端口映射不變。由于所述終端設(shè)備100及終端設(shè)備200中僅一個采用SymmeticNAT,所以所述終端設(shè)備100及終端設(shè)備200可以實(shí)現(xiàn)打通。當(dāng)然,在其他實(shí)施方式中,還可以采用其他方式進(jìn)行判斷網(wǎng)絡(luò)是否可進(jìn)行P2P穿透。
[0076]打通時,所述終端設(shè)備100通過其端口 9999連接所述服務(wù)器300的23.3.213.2:6666 端口,路由 9 產(chǎn)生一條 NAT 記錄 192.168.1.2:9999- > 23.3.213.2:6666[33.29.112.4:4000];同理所述終端設(shè)備200通過其端口 9999連接所述服務(wù)器300 的 23.3.213.2:6666 端口,所述路由器 8 產(chǎn)生一條 NAT 記錄 192.168.1.2:9999- >23.3.213.2:?[43.12.6.32:12100];所述服務(wù)器300識別到所述終端設(shè)備100為33.29.112.4:4000,識別到所述終端設(shè)備200為43.12.6.32:12100。此時為了讓所述終端設(shè)備100及終端設(shè)備200實(shí)現(xiàn)p2p通信,所述服務(wù)器300通知所述終端設(shè)備200去發(fā)送打洞包到33.29.112.4 =4000,使得所述路由器8上建立NAT記錄192.168.1.2:9999- > 33.29.112.4:?[43.12.6.32:12100],之后所述終端設(shè)備 100 發(fā)向 B43.12.6.32:12100的數(shù)據(jù)包通過所述路由器9的新NAT記錄192.168.1.2:9999- > 43.12.6.32:12100[33.29.112.4:4001]發(fā)往所述路由器8,可以通過所述路由器8的NAT,被所述終端設(shè)備200接收和處理,同時所述終端設(shè)備200更新所述終端設(shè)備100的地址和端口為33.29.112.4:4001,此時,所述終端設(shè)備200可以通過33.29.112.4:4001穿過所述路由器9的NAT給所述終端設(shè)備100發(fā)送消息,即實(shí)現(xiàn)了所述終端設(shè)備100及終端設(shè)備200的雙向P2P通信。P2P數(shù)據(jù)同步的邏輯是雙方在操作中將用戶各自的輸入指令(鍵盤、觸摸、鼠標(biāo)等)、游戲配置及運(yùn)行狀態(tài)同步給對端,雙方所述終端設(shè)備100及終端設(shè)備200負(fù)責(zé)處理輸入和狀態(tài),保證所述終端設(shè)備100及終端設(shè)備200得到相同的輸出畫面,使得雙方能一起享受游戲。游戲過程中可以不需要所述服務(wù)器300參與所述終端設(shè)備100及終端設(shè)備200各自的廣域網(wǎng)實(shí)時互動游`戲內(nèi)部數(shù)據(jù)的處理和同步。當(dāng)所述終端設(shè)備100及終端設(shè)備200無法通過P2P穿透時,所述服務(wù)器300僅負(fù)責(zé)轉(zhuǎn)發(fā)所述終端設(shè)備100及終端設(shè)備200之間的通信鏈路。所述服務(wù)器300不涉及所述終端設(shè)備100及終端設(shè)備200各自運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的業(yè)務(wù)邏輯及數(shù)據(jù)同步。
[0077]步驟105,將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。本實(shí)施方式中,所述運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果可以是得分、行為、勝負(fù)、游戲的對戰(zhàn)結(jié)果、獲勝次數(shù)、操作次數(shù)的統(tǒng)計、消滅怪物等參數(shù)。所述服務(wù)器300包含多臺應(yīng)用服務(wù)器(未圖示)。所述終端設(shè)備100及終端設(shè)備200各自的廣域網(wǎng)實(shí)時互動游戲的對戰(zhàn)結(jié)果上傳所述服務(wù)器300,所述服務(wù)器300做校驗(yàn)、統(tǒng)計、積分、比賽獎勵、輸贏結(jié)果等處理。
[0078]本實(shí)施方式提供的一種廣域網(wǎng)實(shí)時互動游戲同步方法主要用于對戰(zhàn)類游戲而設(shè)計。通過在終端設(shè)備上運(yùn)行具體游戲的業(yè)務(wù)邏輯,服務(wù)器僅用于處理廣域網(wǎng)實(shí)時互動游戲運(yùn)行后的數(shù)據(jù),從而減少了服務(wù)器的壓力。相對傳統(tǒng)集中式系統(tǒng)具有更強(qiáng)靈活性,服務(wù)器配置和帶寬要求不高,在同等條件下,可以支持更多客戶端接入。分布式游戲系統(tǒng)一臺普通業(yè)務(wù)服務(wù)器,最大可支撐6萬多活躍用戶同時在線。而傳統(tǒng)游戲系統(tǒng)中一臺高性能服務(wù)器一般只能支撐0.5?2萬的活躍用戶同時在線。根據(jù)實(shí)際測試,通過本發(fā)明實(shí)施例提供的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,服務(wù)端僅一臺業(yè)務(wù)服務(wù)器,可支撐6萬活躍用戶同時在線游戲。
[0079]請一并參閱圖1及圖3,為本發(fā)明第一實(shí)施方式提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置400。所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置400設(shè)置于一個終端設(shè)備100,200中。所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置400用于將2個所述終端設(shè)備100、200上運(yùn)行廣域網(wǎng)實(shí)時互動游戲廣域網(wǎng)聯(lián)網(wǎng)。
[0080]所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置400包括處理模塊410、同步模塊420及上報模塊430。
[0081]所述處理模塊410,用于在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,所述處理模塊410用于處理所述廣域網(wǎng)實(shí)時互動游戲的游戲場景、物品生成、怪物生成及主要的業(yè)務(wù)邏輯等。
[0082]所述同步模塊420,用于將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算。本實(shí)施方式中,兩個設(shè)置于所述終端設(shè)備100及終端設(shè)備200中的所述同步模塊420通過UDP協(xié)議進(jìn)行通信。兩個所述同步模塊420可以通過P2P穿透或服務(wù)器轉(zhuǎn)發(fā)建立客戶端之間的通信鏈路進(jìn)行同步。兩個所述同步模塊420分別將所述終端設(shè)備100及終端設(shè)備200各自的輸入指令(鍵盤、觸摸、鼠標(biāo)等)、游戲配置及運(yùn)行狀態(tài)同步給對端。游戲過程中不需要所述服務(wù)器300參與所述終端設(shè)備100及終端設(shè)備200各自的廣域網(wǎng)實(shí)時互動游戲內(nèi)部數(shù)據(jù)的處理和同步。當(dāng)兩個所述同步模塊420通過P2P穿透時,兩個所述同步模塊420通過所述終端設(shè)備100的路由器及所述終端設(shè)備200路由器,將用戶各自的輸入指令(鍵盤、觸摸、鼠標(biāo)等)、游戲配置及運(yùn)行狀態(tài)通過P2P數(shù)據(jù)同步方式同步給對端。當(dāng)兩個所述同步模塊420通過所述服務(wù)器300轉(zhuǎn)發(fā)建立客戶端之間的通信鏈路進(jìn)行同步時,所述服務(wù)器300不涉及所述終端設(shè)備100及終端設(shè)備200各自運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的業(yè)務(wù)邏輯,僅用于輔助實(shí)現(xiàn)數(shù)據(jù)同步。
[0083]所述上報模塊430,用于將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。本實(shí)施方式中,所述運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果可以是游戲的對戰(zhàn)結(jié)果、獲勝次數(shù)、操作次數(shù)的統(tǒng)計、消滅怪物等參數(shù)。所述終端設(shè)備100及終端設(shè)備200中的所述上報模塊430分別獲取各自的游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果,將其報所述服務(wù)器300。具體地,所述上報模塊430將各自的廣域網(wǎng)實(shí)時互動游戲的對戰(zhàn)結(jié)果上傳所述服務(wù)器300,所述服務(wù)器300做校驗(yàn)、統(tǒng)計、積分、比賽獎勵、輸贏結(jié)果等處理。
[0084]請一并參閱圖4至圖6,為本發(fā)明第二實(shí)施方式提供的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,該方法可以包括以下步驟。
[0085]步驟201,在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,兩個用戶分別在終端設(shè)備500及終端設(shè)備600上運(yùn)行各自的所述廣域網(wǎng)實(shí)時互動游戲。具體地,所述終端設(shè)備500及終端設(shè)備600上均運(yùn)行“拳皇97”。
[0086]步驟203,判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透。本實(shí)施方式中,根據(jù)服務(wù)器700反饋的指示判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透。具體地,根據(jù)所述終端設(shè)備100及終端設(shè)備200是否同時采用對稱網(wǎng)絡(luò)地址轉(zhuǎn)換判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透。若所述終端設(shè)備500及終端設(shè)備600同時采用Symmetic NAT,則判斷所述終端設(shè)備500及終端設(shè)備600無法實(shí)現(xiàn)打通。若所述終端設(shè)備500及終端設(shè)備600中僅一個采用Symmetic NAT,則判斷所述終端設(shè)備500及終端設(shè)備600能夠?qū)崿F(xiàn)打通。
[0087]步驟205,若網(wǎng)絡(luò)狀況可進(jìn)行P2P穿透,采用P2P穿透技術(shù)同步。本實(shí)施方式中,所述終端設(shè)備500通過其端口 9999連接所述服務(wù)器300的23.3.213.2:6666端口,路由19 產(chǎn)生一條 NAT 記錄 192.168.1.2:9999- > 23.3.213.2:6666[33.29.112.4:4000];同理所述終端設(shè)備600通過其端口 9999連接所述服務(wù)器700的23.3.213.2:6666端口,所述路由器(未圖示)產(chǎn)生一條 NAT 記錄 192.168.1.2:9999- > 23.3.213.2:?[43.12.6.32:12100];所述服務(wù)器700識別到所述終端設(shè)備500為33.29.112.4:4000,識別到所述終端設(shè)備600為43.12.6.32:12100。此時為了讓所述終端設(shè)備500及終端設(shè)備600實(shí)現(xiàn)p2p通信,所述服務(wù)器700通知所述終端設(shè)備700去發(fā)送打洞包到33.29.112.4:4000,使得所述路由器上建立 NAT 記錄 192.168.1.2:9999- > 33.29.112.4:?[43.12.6.32:12100],之后所述終端設(shè)備500發(fā)向B43.12.6.32:12100的數(shù)據(jù)包通過所述路由器(未圖示)的新NAT 記錄 192.168.1.2:9999-> 43.12.6.32:12100[33.29.112.4:4001]發(fā)往所述路由器,可以通過所述路由器的NAT,被所述終端設(shè)備600接收和處理,同時所述終端設(shè)備600更新所述終端設(shè)備500的地址和端口為33.29.112.4:4001,此時,所述終端設(shè)備600可以通過33.29.112.4:4001穿過所述路由器的NAT給所述終端設(shè)備500發(fā)送消息,即實(shí)現(xiàn)了所述終端設(shè)備500及終端設(shè)備600的雙向P2P通信。
[0088]步驟207、通過服務(wù)器聯(lián)網(wǎng)各終端設(shè)備內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,所述服務(wù)器700包含多臺應(yīng)用服務(wù)器,其中包括用戶中心服務(wù)701-用于用戶鑒權(quán)、用戶登陸注冊等。接入服務(wù)702-用戶接入交互、智能分配等服務(wù)。游戲業(yè)務(wù)服務(wù)703-用于處理所述終端設(shè)備50 0及終端設(shè)備600游戲數(shù)據(jù)的處理、輔助p2p穿透數(shù)據(jù)轉(zhuǎn)發(fā)和判定等。
[0089]本實(shí)施方式中,還包括以下子步驟:
[0090]將所述各終端設(shè)備內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲進(jìn)行配對。本實(shí)施方式中,所述接入服務(wù)702應(yīng)用服務(wù)器根據(jù)各終端設(shè)備內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲中玩家的熟練程度、系統(tǒng)相應(yīng)速度、網(wǎng)絡(luò)狀態(tài)及硬件配置等參數(shù)進(jìn)行配對。例如,玩家的等級相同或相近的配對,響應(yīng)速度相同或相近的配對、網(wǎng)絡(luò)延遲低和網(wǎng)絡(luò)延遲低的配對、網(wǎng)絡(luò)延遲高和網(wǎng)絡(luò)延遲高的配對,相同網(wǎng)絡(luò)運(yùn)營商的配對,硬件配置好的配對等等配對方式。使得各終端設(shè)備的玩家體驗(yàn)相近,提高用戶體驗(yàn),維護(hù)游戲公平性。
[0091]步驟209,同步至少兩個所述終端設(shè)備的所述廣域網(wǎng)實(shí)時互動游戲的初始狀態(tài)至相同。本發(fā)明實(shí)施例中,數(shù)據(jù)同步開始可以由服務(wù)器觸發(fā),或者由需要同步的任意一方出發(fā)開始信號,在參數(shù)初始化時,將終端設(shè)備100、終端設(shè)備200的廣域網(wǎng)實(shí)時互動游戲同時初始到游戲的開始界面,將兩個游戲進(jìn)行相同的配置。
[0092]步驟211,獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令。本實(shí)施方式中,以所述終端設(shè)備500為例,所述終端設(shè)備500接收用戶輸入,所述己方輸入指令可以是例如上下左右的方向鍵的輸入、A鍵、B鍵、X鍵、Y鍵、L鍵、R鍵的動作鍵的輸入指令、開始鍵、選擇鍵的狀態(tài)鍵的輸入指令、重力方向的輸入指令、動作輸入指令等輸入方式。所述己方輸入指令的輸入方式可以是通過物理鍵盤輸入、觸控輸入、外設(shè)手柄輸入、Wii標(biāo)準(zhǔn)控制器輸入、電視遙控器輸入、重力感應(yīng)輸入、游戲搖桿輸入、方向盤輸入、視頻動作捕捉技術(shù)輸入、鍵盤輸入、鼠標(biāo)輸入、掃描儀輸入、光筆輸入、手寫輸入板輸入、語音輸入等輸入方式。具體地,所述輸入方式為通過觸控所述終端設(shè)備500觸控屏顯示的虛擬的街機(jī)按鍵輸入。所述終端設(shè)備500的己方輸入指令相對于所述終端設(shè)備600而言為他方輸入指令。所述終端設(shè)備600及其他終端設(shè)備的己方輸入指令相對于所述終端設(shè)備500而言為他方輸入指令。本實(shí)施方式中,所述終端設(shè)備500作為己方。所述終端設(shè)備600作為他方。由于本實(shí)施方式中,是通過增加傳輸數(shù)據(jù)量減少單次傳輸時間產(chǎn)生的延遲,所以只要帶寬允許,所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法可以支持無限多的終端設(shè)備運(yùn)行。
[0093]步驟213,按照時間先后順序保存所述己方輸入指令。本實(shí)施方式中,將用戶輸入的多個己方輸入指令按照時間先后順序保存在緩存中,形成輸入序列。
[0094]步驟215,根據(jù)預(yù)設(shè)的幀時間間隔將所述己方輸入指令及所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)生成至少一個己方數(shù)據(jù)幀,各所述己方數(shù)據(jù)幀分別對應(yīng)一個所述己方輸入指令及當(dāng)時對應(yīng)的所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)。所述幀時間間隔At決定產(chǎn)生己方數(shù)據(jù)幀的頻率,所述幀時間間隔At可根據(jù)實(shí)際需要進(jìn)行調(diào)整,一般實(shí)時互動游戲同步的需求下取值范圍為IOms?IOOms之間。通過交換所述終端設(shè)備500的己方數(shù)據(jù)幀及所述終端設(shè)備600的他方數(shù)據(jù)幀,實(shí)現(xiàn)輸入及游戲?qū)崟r狀態(tài)的同步。本實(shí)施方式中,所述幀時間間隔At為50ms。具體請參閱圖7所示的表格中終端設(shè)備500第I列,為以所述幀時間間隔At等間隔劃分的16個時間節(jié)點(diǎn)。按照50ms的時間間隔生成多個能夠表示己方輸入指令及當(dāng)時對應(yīng)的運(yùn)行狀態(tài)的編碼格式的數(shù)據(jù),作為己方數(shù)據(jù)幀。并將生成的多個所述己方數(shù)據(jù)幀存儲在緩存中。相應(yīng)的,所述終端設(shè)備600也按照相同的幀時間間隔At生成多個他方數(shù)據(jù)幀,具體請參閱圖7所示的表格中終端設(shè)備600第I列。
[0095]步驟217,發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值。所述同步臨界值是可容忍最大等待的同步幀的幀數(shù),相當(dāng)于同步窗口的大小,即限定每次最多能同步幀的幀數(shù)。本實(shí)施方式中,所述同步臨界值是4,在平均延遲為4?5倍At的情況下實(shí)現(xiàn)數(shù)據(jù)同步。具體請參閱圖7所示的表格中終端設(shè)備500第2列。所述同步臨界值可根據(jù)實(shí)際需要進(jìn)行調(diào)整。當(dāng)接入所述終端設(shè)備較多時,所述同步臨界值可相應(yīng)減小。同時可在同步過程中適應(yīng)網(wǎng)絡(luò)狀況的變化而動態(tài)調(diào)整,例如,根據(jù)通信過程中網(wǎng)絡(luò)狀態(tài)的變化,動態(tài)檢測并調(diào)整所述同步臨界值,當(dāng)網(wǎng)絡(luò)狀況好的情況下,減小所述同步臨界值;減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量。當(dāng)網(wǎng)絡(luò)狀況差的情況,增加所述同步臨界值,保證較好的同步效果。具體地,將同步過程按時間間隔或按同步包數(shù)量分段,根據(jù)上一段同步過程的狀況,如出現(xiàn)所述己方數(shù)據(jù)幀的幀數(shù)大于等于所述同步臨界值次數(shù)較多,超過預(yù)設(shè)的上限閾值,例如5,說明當(dāng)前臨界值偏小,網(wǎng)絡(luò)延遲過大,所以適度增加所述同步臨界值,使得下一段同步過程減少出現(xiàn)大于等于所述同步臨界值的情況,提高同步流暢度。同理,如果完全未出現(xiàn)臨界值,說明網(wǎng)絡(luò)延遲低,可適當(dāng)減小所述同步臨界值,減少網(wǎng)絡(luò)通信數(shù)據(jù)量,節(jié)省網(wǎng)絡(luò)帶寬資源。
[0096]步驟219,獲取其他所述廣域網(wǎng)實(shí)時互動游戲發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包。本實(shí)施方式中,所述終端設(shè)備500接收所述終端設(shè)備600運(yùn)行的廣域網(wǎng)實(shí)時互動游戲所發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包。具體請參閱圖7所示的表格中終端設(shè)備500第3列。當(dāng)有3個或更多個終端設(shè)備進(jìn)行聯(lián)網(wǎng)時,將獲取不同終端設(shè)備發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的多個他方數(shù)據(jù)包。具體請參閱圖7所示的表格中終端設(shè)備600第2列。
[0097]步驟221,判斷當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于所述同步臨界值。本實(shí)施方式中,所述終端設(shè)備500判斷當(dāng)前生成的所述己方數(shù)據(jù)幀及所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于4。具體如圖7所示的t8時間,當(dāng)前生成的所述己方數(shù)據(jù)幀a8與B2數(shù)據(jù)包的b4的幀數(shù)相差等于4。當(dāng)有3個或更多個終端設(shè)備進(jìn)行聯(lián)網(wǎng)時,將當(dāng)前生成的所述己方數(shù)據(jù)幀分別與各個所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)比較,以相差最大的所述他方數(shù)據(jù)包為判斷標(biāo)準(zhǔn)、或折中或其他優(yōu)化的判斷方式進(jìn)行判斷。
[0098]步驟223,若當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差小于所述同步臨界值,將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,具體如圖7所示的表格中終端設(shè)備500第4列,如時間t4、t5時,將al與bl,a2與b2進(jìn)行同步運(yùn)算,從而實(shí)現(xiàn)所述終端設(shè)備500內(nèi)的街機(jī)游戲與所述終端設(shè)備600內(nèi)的街機(jī)游戲的同步。所述終端設(shè)備600內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲采用與所述終端設(shè)備500相同的方法同步運(yùn)行。具體如圖7所示的表格中終端設(shè)備600第4列,如時間t3、t4時,將bl與al,b2與a2進(jìn)行同步運(yùn)算。
[0099]本實(shí)施方式中,在所述步驟223中還包括以下子步驟(請參閱圖7):
[0100]步驟225,若當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差小于所述同步臨界值,解析所述他方數(shù)據(jù)包,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)。本實(shí)施方式中,將他方數(shù)據(jù)包中的數(shù)據(jù)幀進(jìn)行解碼,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài),并更新當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的緩存。
[0101 ] 步驟227,將所述他方數(shù)據(jù)包內(nèi)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng)。本實(shí)施方式中,由于終端設(shè)備500、終端設(shè)備600以相同的初始狀態(tài)開始運(yùn)行,所以所述終端設(shè)備500的所述己方輸入指令及己方運(yùn)行狀態(tài)的時序與所述終端設(shè)備600的他方輸入指令及他方運(yùn)行狀態(tài)的時序與相同時序是相同的,只是觸發(fā)的時間點(diǎn)由于延遲有差異。所以只需將他方輸入指令及他方運(yùn)行狀態(tài)的時間點(diǎn)對應(yīng)到所述終端設(shè)備500相同的時間點(diǎn),即可將兩方的輸入指令及他方運(yùn)行狀態(tài)進(jìn)行對應(yīng)。
[0102]步驟229,將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。本實(shí)施方式中,按照時間順序依次將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。
[0103]步驟231,判斷所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)是否全部同步。同步時,由于是指令序列,所以需要一個一個同步,如果一個所述他方數(shù)據(jù)包內(nèi)包括多個各他方輸入指令及他方運(yùn)行狀態(tài),需要判斷是否所有的同步是否完成,避免有遺漏。
[0104]步驟233,若所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)全部同步,則根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
[0105]步驟240,將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。本實(shí)施方式中,所述運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果可以是游戲的對戰(zhàn)結(jié)果、獲勝次數(shù)、操作次數(shù)的統(tǒng)計、消滅怪物等參數(shù)。所述終端設(shè)備500及終端設(shè)備600各自的廣域網(wǎng)實(shí)時互動游戲的對戰(zhàn)結(jié)果上傳所述服務(wù)器700,所述服務(wù)器700做校驗(yàn)、統(tǒng)計、積分、比賽獎勵、輸贏結(jié)果等處理。
[0106]在所述步驟203中,若網(wǎng)絡(luò)狀況無法進(jìn)行P2P穿透,則進(jìn)行所述步驟207,通過所述服務(wù)器700聯(lián)網(wǎng)及轉(zhuǎn)發(fā)數(shù)據(jù)。
[0107]在所述步驟221中,若當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差大于等于所述同步臨界值,返回所述步驟217,即暫停生成下一個己方數(shù)據(jù)幀,重新發(fā)送上一次發(fā)送的所述己方數(shù)據(jù)包。本實(shí)施方式中,所述終端設(shè)備500檢查接收到的所述終端設(shè)備600的他方數(shù)據(jù)幀與當(dāng)前生成的所述己方數(shù)據(jù)幀是否相差大于等于4,若大于等于4證明此時網(wǎng)絡(luò)可能出現(xiàn)阻塞或者異常,所述終端設(shè)備500暫停產(chǎn)生新的己方數(shù)據(jù)幀,并重發(fā)包含最近發(fā)送的包括多個己方數(shù)據(jù)幀的所述己方數(shù)據(jù)包。請參閱圖7中的時間t9,由于時間t8時己方數(shù)據(jù)幀a8與B2數(shù)據(jù)包的b4的幀數(shù)相差等于4,所以此時將重發(fā)與A8相同內(nèi)容的A9數(shù)據(jù)包。
[0108]在所述步驟231中,若所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)未全部同步,則返回到所述步驟229中繼續(xù)同步尚未同步的部分。
[0109]請參閱圖8,為本發(fā)明第二實(shí)施方式提供的一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置800。所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置800與第一實(shí)施方式提供的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置400基本相同。
[0110]所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置800包括處理模塊810、同步模塊820及上報模塊830。
[0111]所述處理模塊810用于在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,兩個用戶分別在終端設(shè)備500及終端設(shè)備600上運(yùn)行各自的所述廣域網(wǎng)實(shí)時互動游戲。具體地,所述終端設(shè)備500及終端設(shè)備600上均運(yùn)行“拳皇97”。
[0112]所述同步模塊820用于將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算。本實(shí)施方式中,所述同步模塊820還包括網(wǎng)絡(luò)判斷模塊821、穿透模塊822、通信模塊823、初始化模塊824、獲取模塊825、指令存儲模塊826、數(shù)據(jù)幀生成模塊827、發(fā)送模塊828、接收模塊829、判斷模塊830、反饋模塊831及同步子模塊832。
[0113]所述網(wǎng)絡(luò)判斷模塊821,用于判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透。本實(shí)施方式中,根據(jù)服務(wù)器700反饋的指示判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透。具體地,根據(jù)所述終端設(shè)備500及終端設(shè)備600是否同時采用對稱網(wǎng)絡(luò)地址轉(zhuǎn)換判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透。若所述終端設(shè)備500及終端設(shè)備600同時采用Symmetic NAT,則判斷所述終端設(shè)備500及終端設(shè)備600無法實(shí)現(xiàn)打通。若所述終端設(shè)備500及終端設(shè)備600中僅一個采用SymmeticNAT,則判斷所述終端設(shè)備500及終端設(shè)備600能夠?qū)崿F(xiàn)打通。
[0114]所述穿透模塊822,用于采用P2P穿透技術(shù)同步。[0115]所述通信模塊823,用于通過服務(wù)器聯(lián)網(wǎng)各終端設(shè)備內(nèi)置的廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,聯(lián)網(wǎng)兩個所述終端設(shè)備內(nèi)置的廣域網(wǎng)實(shí)時互動游戲。兩個所述終端設(shè)備通過服務(wù)器的輔助建立P2P鏈路,或者通過服務(wù)器轉(zhuǎn)發(fā)實(shí)現(xiàn)通信鏈路。
[0116]所述初始化模塊824,用于同步至少兩個終端設(shè)備的廣域網(wǎng)實(shí)時互動游戲的初始狀態(tài)至相同。本發(fā)明實(shí)施例中,所述初始化模塊824可以由服務(wù)器觸發(fā)開始,或者由需要同步的任意一方出發(fā)開始信號,在參數(shù)初始化時,所述初始化模塊824將終端設(shè)備500、終端設(shè)備600的廣域網(wǎng)實(shí)時互動游戲同時初始到游戲的開始界面,將兩個游戲進(jìn)行相同的配置。
[0117]所述獲取模塊825,用于獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令。本實(shí)施方式中,所述終端設(shè)備500作為己方。所述終端設(shè)備600作為他方。由于本實(shí)施方式中,是通過增加傳輸數(shù)據(jù)量減少單次傳輸時間產(chǎn)生的延遲,所以只要帶寬允許,所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法可以支持無限多的終端設(shè)備運(yùn)行。
[0118]所述指令存儲模塊826,用于按照時間先后順序保存所述己方輸入指令。本實(shí)施方式中,所述指令存儲模塊826將用戶輸入的多個己方輸入指令按照時間先后順序保存在緩存中,形成輸入序列。
[0119]所述數(shù)據(jù)幀生成模塊827,用于根據(jù)預(yù)設(shè)的幀時間間隔將所述己方輸入指令及所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)生成至少一個己方數(shù)據(jù)幀,各所述己方數(shù)據(jù)幀分別對應(yīng)一個所述己方輸入指令及當(dāng)時對應(yīng)的所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)。本實(shí)施方式中,所述幀時間間隔At為50ms。所述數(shù)據(jù)幀生成模塊827按照50ms的時間間隔生成多個能夠表示己方輸入指令及當(dāng)時對應(yīng)的運(yùn)行狀態(tài)的編碼格式的數(shù)據(jù),作為己方數(shù)據(jù)幀。并將生成的多個所述己方數(shù)據(jù)幀存儲在緩存中。
[0120]所述發(fā)送模塊828,用于發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值。本實(shí)施方式中,所述同步臨界值是4,在平均延遲為4?5倍At的情況下實(shí)現(xiàn)數(shù)據(jù)同步。所述同步臨界值可根據(jù)實(shí)際需要進(jìn)行調(diào)整的。當(dāng)接入所述終端設(shè)備較多時,所述同步臨界值可相應(yīng)減小。同時可在同步過程中適應(yīng)網(wǎng)絡(luò)狀況的變化而動態(tài)調(diào)整,例如,例如所述發(fā)送模塊828還可以包括一調(diào)整模塊,所述調(diào)整模塊用于根據(jù)通信過程中網(wǎng)絡(luò)狀態(tài)的變化,動態(tài)檢測并調(diào)整所述同步臨界值,當(dāng)網(wǎng)絡(luò)狀況好的情況下,減小所述同步臨界值;減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量。
[0121]所述接收模塊829,用于獲取其他所述廣域網(wǎng)實(shí)時互動游戲發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包。本實(shí)施方式中,所述接收模塊829接收所述終端設(shè)備600運(yùn)行的廣域網(wǎng)實(shí)時互動游戲所發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包。當(dāng)有3個或更多個終端設(shè)備進(jìn)行聯(lián)網(wǎng)時,將獲取不同終端設(shè)備發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的多個他方數(shù)據(jù)包。
[0122]所述判斷模塊830,用于判斷當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于所述同步臨界值。本實(shí)施方式中,所述判斷模塊830判斷當(dāng)前生成的所述己方數(shù)據(jù)幀及所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于4。當(dāng)有3個或更多個終端設(shè)備進(jìn)行聯(lián)網(wǎng)時,將當(dāng)前生成的所述己方數(shù)據(jù)幀分別與各個所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)比較,以相差最大的所述他方數(shù)據(jù)包為判斷標(biāo)準(zhǔn)、或折中或其他優(yōu)化的判斷方式進(jìn)行判斷。[0123]所述反饋模塊831,用于暫停生成下一個己方數(shù)據(jù)幀,重新發(fā)送上一次發(fā)送的所述己方數(shù)據(jù)包。本實(shí)施方式中,所述反饋模塊831向所述數(shù)據(jù)幀生成模塊827發(fā)送停止信號,控制所述數(shù)據(jù)幀生成模塊827暫停生成下一個己方數(shù)據(jù)幀,并控制所述發(fā)送模塊828重發(fā)包含最近發(fā)送的包括多個己方數(shù)據(jù)幀的所述己方數(shù)據(jù)包。
[0124]所述同步子模塊832,用于將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。本實(shí)施方式中,所述同步子模塊832還包括以下子模塊。
[0125]解析子模塊832a,用于解析所述他方數(shù)據(jù)包,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)。本實(shí)施方式中,所述解析子模塊832a將他方數(shù)據(jù)包中的數(shù)據(jù)幀進(jìn)行解碼,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài),并更新當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的緩存。
[0126]映射子模塊832b,用于將所述他方數(shù)據(jù)包內(nèi)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng)。本實(shí)施方式中,由于終端設(shè)備500、終端設(shè)備600以相同的初始狀態(tài)開始運(yùn)行,所以所述終端設(shè)備500的所述己方輸入指令及己方運(yùn)行狀態(tài)的時序與所述終端設(shè)備600的他方輸入指令及他方運(yùn)行狀態(tài)的時序與相同時序是相同的,只是觸發(fā)的時間點(diǎn)由于延遲有差異。所以只需將他方輸入指令及他方運(yùn)行狀態(tài)的時間點(diǎn)對應(yīng)到所述終端設(shè)備500相同的時間點(diǎn),即可將兩方的輸入指令及他方運(yùn)行狀態(tài)進(jìn)行對應(yīng)。
[0127]所述處理子模塊832c,用于將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。本實(shí)施方式中,所述處理子模塊832c按照時間順序依次將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。
[0128]所述同步進(jìn)程子模塊832d,用于判斷所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)是否全部同步。同步時,由于是指令序列,所以需要一個一個同步,如果一個所述他方數(shù)據(jù)包內(nèi)包括多個各他方輸入指令及他方運(yùn)行狀態(tài),需要所述同步進(jìn)程子模塊832d判斷是否所有的同步是否完成,避免有遺漏。
[0129]所述運(yùn)行子模塊832e,用于當(dāng)所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)全部同步后,根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
[0130]所述上報模塊840,用于將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。
[0131]通過實(shí)際測試,通過本實(shí)施方式提供的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法及系統(tǒng),在網(wǎng)絡(luò)最高延遲200ms?300ms的情況下,所述終端設(shè)備及所述終端設(shè)備之間的輸入同步頻率達(dá)到每秒20?60次,較傳統(tǒng)停等同步協(xié)議的每秒同步7次,極大的改善了停等同步方式下的卡頓問題,提供了流暢的游戲同步解決方案。
[0132]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取器(Random AccessMemory, RAM)、磁盤或光盤等。[0133] 以上對本發(fā)明實(shí)施例提供的閱讀源訂閱方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,該方法包括以下步驟: 在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲; 將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算; 將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。
2.如權(quán)利要求1所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,其特征在于,在所述將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算的步驟中還包括以下子步驟: 判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透: 若網(wǎng)絡(luò)狀況可進(jìn)行P2P穿透,采用P2P穿透技術(shù)同步。
3.如權(quán)利要求2所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,其特征在于,在所述將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算的步驟中還包括以下子步驟: 獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令; 按照時間先后順序保存所述己方輸入指令; 根據(jù)預(yù)設(shè)的幀時間間隔`將所述己方輸入指令及所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)生成至少一個己方數(shù)據(jù)幀,各所述己方數(shù)據(jù)幀分別對應(yīng)一個所述己方輸入指令及當(dāng)時對應(yīng)的所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài); 發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值; 獲取其他所述廣域網(wǎng)實(shí)時互動游戲發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包; 判斷當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于所述同步臨界值; 若當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差小于所述同步臨界值,將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
4.如權(quán)利要求3所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,其特征在于,在所述獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令的步驟之前還包括: 通過服務(wù)器聯(lián)網(wǎng)各終端設(shè)備內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲; 同步至少兩個所述終端設(shè)備的所述廣域網(wǎng)實(shí)時互動游戲的初始狀態(tài)至相同。
5.如權(quán)利要求4所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,其特征在于,在所述若當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差小于所述同步臨界值,將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲的步驟中還包括以下子步驟: 解析所述他方數(shù)據(jù)包,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài); 將所述他方數(shù)據(jù)包內(nèi)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng); 將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。
6.如權(quán)利要求5所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,其特征在于,在所述將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步的步驟之后還包括以下步驟: 判斷所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)是否全部同步; 若所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)全部同步,則根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
7.如權(quán)利要求3所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)方法,其特征在于,在所述發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值步驟中,還包括以下步驟: 根據(jù)通信過程中網(wǎng)絡(luò)狀態(tài)的變化,動態(tài)檢測并調(diào)整所述同步臨界值,當(dāng)網(wǎng)絡(luò)狀況好的情況下,減小所述同步臨界值;當(dāng)網(wǎng)絡(luò)狀況差的情況,增加所述同步臨界值。
8.一種廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,所述廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置包括: 處理模塊,用于在終端設(shè)備上運(yùn)行廣域網(wǎng)實(shí)時互動游戲; 同步模塊,用于將至少兩個所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的輸入指令、游戲配置及運(yùn)行狀態(tài)通過廣域網(wǎng)傳輸,并在各所述終端設(shè)備上進(jìn)行同步及游戲業(yè)務(wù)邏輯的運(yùn)算; 上報模塊,用于將各所述終端設(shè)備上運(yùn)行的廣域網(wǎng)實(shí)時互動游戲的運(yùn)行過程的用戶表現(xiàn)和游戲結(jié)果上報所述服務(wù)器。
9.如權(quán)利要求8所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,其特征在于,所述同步模塊還包括: 網(wǎng)絡(luò)判斷模塊,用于判斷網(wǎng)絡(luò)狀況是否可進(jìn)行P2P穿透; 穿透模塊,用于采用P2P穿透技術(shù)同步。
10.如權(quán)利要求9所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,其特征在于,所述同步模塊還包括: 獲取模塊,用于獲取當(dāng)前所述廣域網(wǎng)實(shí)時互動游戲的己方輸入指令; 指令存儲模塊,用于按照時間先后順序保存所述己方輸入指令; 數(shù)據(jù)幀生成模塊,用于根據(jù)預(yù)設(shè)的幀時間間隔將所述己方輸入指令及所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài)生成至少一個己方數(shù)據(jù)幀,各所述己方數(shù)據(jù)幀分別對應(yīng)一個所述己方輸入指令及當(dāng)時對應(yīng)的所述廣域網(wǎng)實(shí)時互動游戲的運(yùn)行狀態(tài);發(fā)送模塊,用于發(fā)送己方數(shù)據(jù)包,所述己方數(shù)據(jù)包包括至少一個待同步的所述己方數(shù)據(jù)幀,所述己方數(shù)據(jù)幀的幀數(shù)小于等于同步臨界值; 接收模塊,用于獲取其他所述廣域網(wǎng)實(shí)時互動游戲發(fā)送的與所述己方數(shù)據(jù)包相同方式生成的他方數(shù)據(jù)包; 判斷模塊,用于判斷當(dāng)前生成的所述己方數(shù)據(jù)幀與所述他方數(shù)據(jù)包內(nèi)的幀數(shù)最大的他方數(shù)據(jù)幀的幀數(shù)相差是否大于等于所述同步臨界值; 同步子模塊,用于將所述他方數(shù)據(jù)包內(nèi)的他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng),根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
11.如權(quán)利要求10所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,其特征在于,所述同步模塊還包括: 通信模塊,用于通過服務(wù)器聯(lián)網(wǎng)各終端設(shè)備內(nèi)置的廣域網(wǎng)實(shí)時互動游戲; 初始化模塊,用于同步至少兩個終端設(shè)備的廣域網(wǎng)實(shí)時互動游戲的初始狀態(tài)至相同。
12.如權(quán)利要求11所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,其特征在于,所述同步子模塊還包括: 解析子模塊,用于解析所述他方數(shù)據(jù)包,獲取他方數(shù)據(jù)幀對應(yīng)的各他方輸入指令及他方運(yùn)行狀態(tài); 映射子模塊,用于將所述他方數(shù)據(jù)包內(nèi)的各他方輸入指令及他方運(yùn)行狀態(tài)分別與相同時序的所述己方輸入指令及己方運(yùn)行狀態(tài)相對應(yīng); 所述處理子模塊,用于將所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)逐個同步。
13.如權(quán)利要求12所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,其特征在于,所述同步子模塊還包括: 同步進(jìn)程子模塊,用于判斷所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)是否全部同步; 運(yùn)行子模塊,用于當(dāng)所述他方輸入指令及他方運(yùn)行狀態(tài)與所述己方輸入指令及己方運(yùn)行狀態(tài)全部同步后,根據(jù)所述己方輸入指令、己方運(yùn)行狀態(tài)、所述他方輸入指令及他方運(yùn)行狀態(tài)同步運(yùn)行所述廣域網(wǎng)實(shí)時互動游戲。
14.如權(quán)利要求8所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置,其特征在于,所述發(fā)送模塊還包括: 調(diào)整模塊,用于根據(jù)通信過程中網(wǎng)絡(luò)狀態(tài)的變化,動態(tài)檢測并調(diào)整所述同步臨界值,當(dāng)網(wǎng)絡(luò)狀況好的情況下,減小所述同步臨界值;當(dāng)網(wǎng)絡(luò)狀況差的情況,增加所述同步臨界值。
15.一種網(wǎng)絡(luò)系統(tǒng),其特征在于,所述網(wǎng)絡(luò)系統(tǒng)包括服務(wù)器及至少兩個終端設(shè)備,各所述終端設(shè)備均運(yùn)行一個廣域網(wǎng)實(shí)時互動游戲,所述至少兩個終端設(shè)備通過所述服務(wù)器進(jìn)行廣域網(wǎng)聯(lián)網(wǎng),并同步各所述廣域網(wǎng)實(shí)時互動游戲,其中,各所述終端設(shè)備均包括如權(quán)利要求8-14中任意一項(xiàng)所述的廣域網(wǎng)實(shí)時互動游戲分布式聯(lián)網(wǎng)裝置。
16.如權(quán)利要求15所述的網(wǎng)絡(luò)系統(tǒng),其特征在于,所述服務(wù)器根據(jù)各所述終端設(shè)備內(nèi)置的所述廣域網(wǎng)實(shí)時互動游戲中玩家的熟練程度、系統(tǒng)相應(yīng)速度、網(wǎng)絡(luò)狀態(tài)及硬件配置進(jìn)行配對。
【文檔編號】A63F13/33GK103780694SQ201410029359
【公開日】2014年5月7日 申請日期:2014年1月8日 優(yōu)先權(quán)日:2014年1月8日
【發(fā)明者】陳喬, 何意 申請人:深圳市掌玩網(wǎng)絡(luò)技術(shù)有限公司