本發(fā)明涉及網(wǎng)絡(luò)游戲領(lǐng)域,具體是一種游戲場景高效載入的方法。
背景技術(shù):
一般的游戲中從存儲媒介中加載資源時,當操作系統(tǒng)中存在大量文件的文件句柄,操作系統(tǒng)的運行速度就會變得非常慢。為了進行優(yōu)化,很多游戲都只能從打包的資源文件中加載必需的資源。這些打包的資源文件就是一個個大型的文件數(shù)據(jù)庫,以單個文件或一組文件的形式存在著。在這些數(shù)據(jù)庫中,都保存著一個完整的目錄層次信息。資源文件有效地解決了文件句柄開銷過大的問題。但是又帶來了另外一個嚴重的問題。這些資源文件的順序通常就是硬盤上的目錄結(jié)構(gòu)的一個鏡像。而游戲很少會按照資源文件在目錄結(jié)構(gòu)中的順序來訪問它們。相反,多數(shù)情況下,它們都會在資源文件中跳躍式地訪問資源文件。這就成了一個主要的瓶頸。如果游戲使用的數(shù)據(jù)集十分大,那么其資源文件的布局中存在的這個弱點就會暴露出來,使得游戲的資源加載進度非常慢,尤其是游戲場景的載入速度過慢,嚴重影響了玩家的游戲體驗。
技術(shù)實現(xiàn)要素:
為解決游戲中游戲場景載入緩慢的問題,本發(fā)明提供一種游戲場景高效載入的方法。
本發(fā)明的目的可以通過以下技術(shù)方案實現(xiàn):
一種游戲場景高效載入的方法,根據(jù)玩家在游戲場景中的坐標,推算出附近隱藏的場景入口,再根據(jù)玩家的運動軌跡進行邏輯推算,推算出玩家即將進入的場景,并通過邏輯推算的結(jié)果提前加載地圖資源,本發(fā)明稱之為演算法;根據(jù)玩家獲取的任務(wù)推算出玩家即將前往的場景,并將此邏輯推理結(jié)果反饋至游戲客戶端,游戲客戶端提前進行地圖資源加載,本發(fā)明稱之為內(nèi)嵌法,內(nèi)嵌法在演算法的基礎(chǔ)上方可進行。
演算法的步驟為:
s1:客戶端啟動;
s2:坐標單元上傳玩家坐標;
s3:數(shù)據(jù)處理模塊進行數(shù)據(jù)處理;
s4:游戲終端進行邏輯計算;
內(nèi)嵌法步驟為:
s5:玩家是否有未完成的游戲任務(wù);
s6:任務(wù)中是否涉及其他游戲地圖;
s7:客戶端加載地圖數(shù)據(jù)。
所述步驟s1中客戶端在啟動時進行資源加載時,并非是加載游戲內(nèi)所有地圖場景的資源:當玩家在游戲結(jié)束時,游戲內(nèi)的坐標單元將玩家離線時的坐標位置保存至游戲終端,玩家在下次登錄游戲時,游戲終端向客戶端發(fā)送玩家離線時的坐標指令,游戲客戶端只會加載玩家在游戲中離線時所在的地圖場景,這樣即可提高客戶端的加載速率。
所述步驟s2中坐標單元對玩家在游戲中的位置進行實時監(jiān)測,并將玩家實時坐標上傳至數(shù)據(jù)處理模塊。
所述步驟s3中數(shù)據(jù)處理模塊對坐標進行標記,并將標記后的數(shù)據(jù)和數(shù)據(jù)終端內(nèi)的所有數(shù)據(jù)進行標記比對,標記比對原理在于:某區(qū)域內(nèi)的任意坐標均可標記為同一點,標記后的坐標表達為特定的標記點,利用該標記點和數(shù)據(jù)庫內(nèi)的數(shù)據(jù)進行比對計算,從而減小數(shù)據(jù)處理模塊的計算量;根據(jù)數(shù)據(jù)庫比對后的結(jié)果,可以統(tǒng)計出坐標范圍內(nèi)的場景入口;數(shù)據(jù)處理模塊將處理后的數(shù)據(jù)上傳至游戲終端。
所述步驟s4中游戲終端接收到數(shù)據(jù)處理模塊上傳的數(shù)據(jù)后開始進行邏輯計算,游戲終端根據(jù)玩家現(xiàn)有的等級、戰(zhàn)斗能力以及運動軌跡等因素,確定玩家可能會去的地圖場景,并將確定后的結(jié)果反饋至游戲客戶端,游戲客戶端根據(jù)游戲終端反饋的結(jié)果開始預(yù)先加載地圖。
所述步驟s5中若玩家具有未完成的任務(wù),則進入s6;若玩家沒有未完成的任務(wù),則游戲終端邏輯計算進入演算法。
所述步驟s6中若任務(wù)內(nèi)沒有涉及到其他場景,則游戲終端邏輯計算進入演算法;若任務(wù)中涉及到其他游戲場景,游戲終端反饋至游戲客戶端。
所述步驟s7中游戲客戶端根據(jù)游戲終端反饋的數(shù)據(jù),進行地圖加載,同時,游戲客戶端向玩家發(fā)送信息,提醒玩家有任務(wù)尚未完成,是否前去完成。
附圖說明
下面結(jié)合附圖對本發(fā)明作進一步的說明。
圖1是本發(fā)明中演算法流程示意圖;
圖2是本發(fā)明中內(nèi)嵌法邏輯計算流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
一種游戲場景高效載入的方法,其原理在于根據(jù)玩家在游戲場景中的坐標,推算出附近隱藏的場景入口,再根據(jù)玩家的運動軌跡進行邏輯推算,推算出玩家即將進入的場景,并根據(jù)邏輯推算的結(jié)果提前加載場景資源;另一種加載游戲場景資源的原理為根據(jù)玩家獲取的任務(wù)推算出玩家即將前往的場景,并將此邏輯推理結(jié)果反饋至游戲客戶端,游戲客戶端提前進行場景資源加載,本發(fā)明稱之為演算法。
實施實例1
圖1所示為根據(jù)玩家在游戲中的坐標進行場景資源提前加載的流程。
s1:客戶端啟動;
其中,客戶端在啟動進行資源加載時,并非是加載游戲內(nèi)所有地圖場景的資源:玩家在游戲結(jié)束時,游戲內(nèi)的坐標單元將玩家離線時的坐標位置保存至游戲終端,玩家在下次登錄游戲時,游戲終端向客戶端發(fā)送玩家離線時的坐標指令,游戲客戶端只會加載玩家在游戲中離線時所在的地圖場景,這樣便可以提高客戶端的加載速率。
s2:坐標單元上傳玩家坐標;
其中,坐標單元對玩家在游戲中的位置進行實時監(jiān)測,并將玩家實時坐標上傳至數(shù)據(jù)處理模塊。
s3:數(shù)據(jù)處理模塊進行數(shù)據(jù)處理;
其中,數(shù)據(jù)處理模塊對坐標進行標記,并將標記后的數(shù)據(jù)和數(shù)據(jù)終端內(nèi)的所有數(shù)據(jù)進行標記比對,標記比對原理在于:某區(qū)域內(nèi)的任意坐標均可標記為同一點,標記后的坐標表達為特定的標記點,利用該標記點和數(shù)據(jù)庫內(nèi)的數(shù)據(jù)進行比對計算,從而減小數(shù)據(jù)處理模塊的計算量;根據(jù)數(shù)據(jù)庫比對后的結(jié)果,可以統(tǒng)計出坐標范圍內(nèi)的場景入口;數(shù)據(jù)處理模塊將處理后的數(shù)據(jù)上傳至游戲終端。
s4:游戲終端進行邏輯計算;
其中,游戲終端接收到數(shù)據(jù)處理模塊上傳的數(shù)據(jù)后開始進行邏輯計算,游戲終端根據(jù)玩家現(xiàn)有的等級、戰(zhàn)斗能力以及運動軌跡等因素,確定玩家可能會去的地圖場景,并將確定后的結(jié)果反饋至游戲客戶端,游戲客戶端根據(jù)游戲終端反饋的結(jié)果開始預(yù)先加載地圖。
綜合s1-s4所述,游戲終端通過對玩家實時坐標的邏輯推算,進而提前對地圖進行加載,有效節(jié)約了加載地圖的等待時間,提高游戲的流暢度。
在基于實施實例1的基礎(chǔ)上,現(xiàn)提出另一種實施實例。
實施實例2
本實施實例根據(jù)玩家現(xiàn)有的游戲任務(wù),進而提前加載游戲任務(wù)中涉及到的場景,本發(fā)明稱之為內(nèi)嵌法,如圖2所示為內(nèi)嵌法邏輯計算過程。
s5:玩家是否有未完成的游戲任務(wù);
其中,若玩家具有未完成的任務(wù),則進入s6;若玩家沒有未完成的任務(wù),則游戲終端邏輯計算進入實施實例1中。
s6:任務(wù)中是否涉及其他游戲地圖;
其中,若任務(wù)中沒有涉及到其他場景,則游戲終端邏輯計算進入實施實例1中;若任務(wù)中涉及到其他游戲場景,游戲終端反饋至游戲客戶端。
s7:客戶端加載地圖;
其中,游戲客戶端根據(jù)游戲終端反饋的數(shù)據(jù),進行地圖加載,同時,游戲客戶端向玩家發(fā)送信息,提醒玩家有任務(wù)尚未完成,是否前去完成。
內(nèi)嵌法通過對玩家游戲任務(wù)中涉及到的地圖進行提前加載,并結(jié)合演算法,提高了游戲的加載速度,使得游戲整體體驗得到提升。
以上內(nèi)容僅僅是對本發(fā)明結(jié)構(gòu)所作的舉例和說明,所屬本技術(shù)領(lǐng)域的技術(shù)人員對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,只要不偏離發(fā)明的結(jié)構(gòu)或者超越本權(quán)利要求書所定義的范圍,均應(yīng)屬于本發(fā)明的保護范圍。