專利名稱:網(wǎng)絡(luò)游戲客戶端資源處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)游戲技術(shù)領(lǐng)域,特別涉及一種網(wǎng)絡(luò)游戲客戶端資源處 理方法。
背景技術(shù):
網(wǎng)絡(luò)游戲玩家在進(jìn)行游戲之前需提前下載游戲客戶端程序,客戶端程
序的大小以及下載的煩瑣程序直接影響了游戲玩家對(duì)游戲的操作。3D網(wǎng) 絡(luò)游戲出現(xiàn)后,游戲客戶端程序越來越大,下載速度慢,時(shí)間久,以及安 裝麻煩給玩家?guī)砹撕芏嗟穆闊H绻豢钣螒蛑锌蛻舳顺绦蛳鄬?duì)較大, 在遇到網(wǎng)絡(luò)下載速度非常慢的情況,直接影響到玩家對(duì)該游戲的興趣,進(jìn) 而導(dǎo)致游戲運(yùn)營中大量游戲玩家的流失。
在此問題下,就需要針對(duì)網(wǎng)絡(luò)游戲中大客戶端程序的下載及處理提供 一種簡(jiǎn)便的操作方式,如改進(jìn)客戶端的下載方式、提高客戶端的下載速度 等,以滿足當(dāng)前大客戶端游戲下載的需求。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種網(wǎng)絡(luò)游戲客戶端資源處理方法, 采用該方法能使網(wǎng)絡(luò)游戲大客戶端程序的下載簡(jiǎn)便,游戲玩家能較快進(jìn)行 游戲體驗(yàn)。
為解決上述技術(shù)問題,本發(fā)明的網(wǎng)絡(luò)游戲客戶端的資源處理方法,包 括以下步驟.-(1 )通過hook工具對(duì)游戲客戶端所使用的資源文件進(jìn)行捕獲處理, 獲得游戲過程中所用到的資源文件并記錄文件調(diào)用路徑、調(diào)用時(shí)間;
(2) 利用資源編輯調(diào)整工具對(duì)上述獲得的游戲過程中所用到的資源 文件進(jìn)行編輯調(diào)整,生成最小客戶端資源和剩余資源;
(3) 將剩余資源發(fā)布到網(wǎng)絡(luò)游戲更新服務(wù)器上,并生成剩余資源文 件列表,將最小客戶端資源配置給游戲客戶端;
(4) 游戲客戶端啟動(dòng)游戲,首先檢測(cè)本地更新目錄下有無需要更新 的已下載的剩余資源文件,如果有,就將需要更新的已下載的剩余資源文 件填充到客戶端的原始位置,然后進(jìn)入游戲,并開啟下載程序,在后臺(tái)進(jìn) 行尚未下載的剩余資源的下載,更新本地更新文件列表、更新本地更新目 錄;如果無,則直接進(jìn)入游戲、開啟下載程序,在后臺(tái)進(jìn)行尚未下載的剩 余資源的下載,更新本地更新文件列表、更新本地更新目錄。
上述步驟(1)中,可以在利用hook工具對(duì)游戲客戶端所使用的資源 文件進(jìn)行捕獲處理時(shí),先將用來記錄文件調(diào)用路徑和文件調(diào)用時(shí)間功能的 模塊以dll的形式注入到游戲進(jìn)程中,對(duì)游戲進(jìn)程特定的資源文件讀取接 口進(jìn)行捕獲處理,從而獲得游戲過程中所用到的資源文件,并將其保存在 內(nèi)存中,在hook用的dll退出時(shí),將保存的游戲過程中所用到的資源文 件調(diào)用路徑、調(diào)用時(shí)間按照一定的格式記錄到指定的文件中。
可以將所述剩余資源打包成多個(gè)剩余資源包后發(fā)布到網(wǎng)絡(luò)游戲更新 服務(wù)器上。
可以根據(jù)游戲過程中所用到的資源文件在一定的游戲邏輯的游戲過 程中所被調(diào)用的時(shí)間順序,選擇滿足基本游戲操作的最早被調(diào)用的游戲過程中所用到的資源文件生成最小客戶端資源。 下載程序可以包括以下步驟
(1) 啟動(dòng);
(2) 判斷本地是否有本地更新文件列表、是否有本地更新目錄,如 果沒有則首先創(chuàng)建本地更新文件列表、本地更新目錄;
(3) 將本地更新文件列表同網(wǎng)絡(luò)游戲更新服務(wù)器上的剩余資源文件 列表進(jìn)行比較;
(4) 如果沒有完成所有剩余資源的下載則繼續(xù)下載后續(xù)剩余資源文
件,并更新本地更新文件列表、更新本地更新目錄,然后進(jìn)行步驟(3);
(5) 如果已完成所有剩余資源的下載,則退出。
本發(fā)明的網(wǎng)絡(luò)游戲客戶端的資源處理方法,游戲玩家僅需配置一最 小客戶端資源就能進(jìn)行游戲體驗(yàn),能夠使玩家下載一個(gè)相對(duì)較小的游戲客 戶端來體驗(yàn)一款網(wǎng)絡(luò)游戲,在玩家進(jìn)行游戲的同時(shí)后臺(tái)下載其他游戲資 源,從而實(shí)現(xiàn)原始游戲客戶端資源的分批下載,使游戲資源的下載和填充 實(shí)現(xiàn)透明,能使網(wǎng)絡(luò)游戲大客戶端程序的下載簡(jiǎn)便,游戲玩家能較快進(jìn)行 游戲體驗(yàn)。
下面結(jié)合附圖及具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
圖1是本發(fā)明的網(wǎng)絡(luò)游戲客戶端的資源處理方法一實(shí)施方式示意圖。
具體實(shí)施例方式
本發(fā)明的網(wǎng)絡(luò)游戲客戶端的資源處理方法一實(shí)施方式如圖1所示。首先,通過hook(鉤子)工具對(duì)游戲客戶端所使用的資源文件進(jìn)^1捕
獲處理,獲得游戲過程中所用到的資源文件(即游戲客戶端資源文件), 并記錄資源文件被游戲進(jìn)程調(diào)用的調(diào)用路徑、調(diào)用時(shí)間,為生成最小客戶
端(Mini-client)提供最原始的數(shù)據(jù)源。
hook(鉤子),是Windows消息處理機(jī)制的一個(gè)平臺(tái),應(yīng)用程序可以在 上面設(shè)置子程以監(jiān)視指定窗口的某種消息,而且所監(jiān)視的窗口可以是其他 進(jìn)程所創(chuàng)建的。當(dāng)消息到達(dá)后,在目標(biāo)窗口處理函數(shù)之前處理它。鉤子機(jī) 制允許應(yīng)用程序截獲處理window消息或特定事件。鉤子實(shí)際上是一個(gè)處 理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出, 在沒有到達(dá)目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數(shù)先得到 控制權(quán)。這時(shí)鉤子函數(shù)即可以加工處理(改變)該消息,也可以不作處理 而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。
每一個(gè)客戶端資源文件附加了一個(gè)該文件被游戲進(jìn)程調(diào)用的首次時(shí) 間。如果是重復(fù)調(diào)用的文件,則只記錄第一次調(diào)用的時(shí)間,如果客戶端資 源文件被打包成固有的文件系統(tǒng)格式的子文件,則每一個(gè)子文件將會(huì)被定 位到其被打包的包文件。在通過hook(鉤子)工具捕獲處理客戶端所使用 的資源文件時(shí),會(huì)先將用來記錄文件調(diào)用路徑和文件調(diào)用時(shí)間功能的模塊 以dll (動(dòng)態(tài)鏈接庫)的形式注入到游戲進(jìn)程中,對(duì)游戲進(jìn)程特定的資源 文件讀取接口進(jìn)行捕獲處理,從而獲得游戲過程中所用到的資源文件(即 游戲客戶端資源文件),并將其保存在內(nèi)存中。用于hook的dll退出時(shí), 將保存的文件調(diào)用路徑和文件調(diào)用時(shí)間按照一定的格式記錄到指定的文 件中。其次,打開可視化資源編輯工具,加載游戲客戶端資源文件、加載記 錄的文件調(diào)用路徑和文件調(diào)用時(shí)間,在可視化編輯工具中對(duì)通過hook(鉤 子)工具捕獲處理得到的游戲客戶端資源文件進(jìn)行編輯,根據(jù)游戲客戶端 資源文件在一定的游戲邏輯的游戲過程中所被調(diào)用的時(shí)間順序,選擇滿足 基本游戲操作的最早被調(diào)用的游戲客戶端資源文件生成最小客戶端資源; 游戲客戶端資源除去最小客戶端資源之外的為剩余資源,對(duì)剩余資源文件 進(jìn)行排序,生成剩余資源包,并編輯好需要用默認(rèn)資源來進(jìn)行替換剩余資 源文件的設(shè)置,文件替換有兩個(gè)原則,首先是部分關(guān)聯(lián)性很強(qiáng)的文件,例 如賽車類游戲中一個(gè)人物有模型、動(dòng)作、貼圖等,那么我們會(huì)用一套文件 將之替換;其次,排除了那種特定的關(guān)聯(lián)性質(zhì)很強(qiáng)的文件外,其他的文件
的替換規(guī)則為文件的格式,即用一個(gè)文件格式的默認(rèn)資源文件去替換所有 的相同格式的需要被替換的資源文件。
在可視化編輯工具中, 一側(cè)的樹形結(jié)構(gòu)為完整游戲客戶端資源,另一 側(cè)為最小客戶端資源,游戲開發(fā)人員可以根據(jù)游戲資源的類別進(jìn)行編輯, 根據(jù)游戲客戶端資源文件在一定的游戲邏輯的游戲過程中所被調(diào)用的時(shí) 間順序,在一側(cè)的完整游戲客戶端資源中選擇滿足基本游戲操作的最早被 調(diào)用的游戲客戶端資源文件填充到游戲最小客戶端資源列表中,生成最小
客戶端資源;而一側(cè)的完整游戲客戶端資源中沒有被選中的游戲客戶端資 源文件作為剩余資源,將按順序(比如賽車類游戲中會(huì)將地圖資源、銷售 的物品資源等調(diào)整到比較靠前的位置),按一定大小打包到剩余資源包當(dāng) 中。這些剩余資源包在客戶端游戲運(yùn)行時(shí)被下載到客戶端,當(dāng)下次游戲啟 動(dòng)的時(shí)候這些資源將會(huì)被填充到客戶端的原始位置。將打包后的剩余資源發(fā)布到網(wǎng)絡(luò)游戲更新服務(wù)器上,并生成剩余資源 文件列表,將最小客戶端資源配置給游戲客戶端。
游戲客戶端包括最小客戶端資源及下載程序。游戲客戶端啟動(dòng),首先 會(huì)檢測(cè)本地更新目錄下有無需要更新的已下載的剩余資源文件。如果有, 就將需要更新的剩余資源文件填充到客戶端的原始位置,進(jìn)行文件更新, 然后進(jìn)入游戲,并啟動(dòng)下載程序,在后臺(tái)進(jìn)行尚未下載的剩余資源文件的
下載;如果無,會(huì)直接啟動(dòng)游戲并啟動(dòng)下載程序;游戲基于最小客戶資源
及已經(jīng)更新的剩余資源配置運(yùn)行,當(dāng)游戲運(yùn)行過程中需要最小客戶資源及
已經(jīng)更新的剩余資源以外的資源時(shí),用默認(rèn)資源來進(jìn)行替換;下載程序在 運(yùn)行游戲的同時(shí)在后臺(tái)進(jìn)行尚未下載的剩余資源文件的下載,并更新本地 更新文件列表、本地更新目錄;當(dāng)再次啟動(dòng)游戲客戶端時(shí),檢測(cè)到本地更 新目錄下有需要更新的已下載的剩余資源文件時(shí),會(huì)首先將這些需要更新 的資源文件填充到客戶端的原始位置,進(jìn)行文件更新,然后再啟動(dòng)游戲, 并啟動(dòng)下載程序。如果已完成全部客戶端資源的下載,則退出下載程序。 下載程序包括以下步驟
(1) 啟動(dòng);
(2) 判斷是否有本地更新文件列表、是否有本地更新目錄,如果沒 有則首先創(chuàng)建本地更新文件列表、本地更新目錄;
(3) 將本地更新文件列表同網(wǎng)絡(luò)游戲更新服務(wù)器上的剩余資源文件 列表進(jìn)行比較;
(4) 如果沒有完成所有剩余資源的下載則繼續(xù)下載后續(xù)剩余資源文 件,并更新本地更新文件列表、更新本地更新目錄,然后進(jìn)行步驟(3);(5)如果已完成所有剩余資源的下載,則退出下載程序。 為了不影響游戲的質(zhì)量,在下載進(jìn)程中對(duì)下載的速度進(jìn)行了限制。 下面結(jié)合我們對(duì)瘋狂賽車游戲的操作進(jìn)行描述
首先,啟動(dòng)瘋狂賽車游戲客戶端,并將hook(鉤子)程序注入到客戶
端中,游戲過程中進(jìn)行登陸服務(wù)器,進(jìn)入游戲大廳,選擇房間進(jìn)行游戲等 操作,通過hook(鉤子)程序,在這些操作過程中所使用到的游戲客戶端 資源文件及其被游戲進(jìn)程調(diào)用的調(diào)用路徑、調(diào)用時(shí)間將被記錄,為生成最 小客戶端提供最原始的數(shù)據(jù)源。
其次,打開可視化資源編輯工具,加載游戲客戶端資源,加載游戲客 戶端資源文件被游戲進(jìn)程調(diào)用的調(diào)用路徑、調(diào)用時(shí)間記錄。從完整的游戲 客戶端資源列表中選擇資源文件(如人物動(dòng)畫文件,地圖資源文件,聲音
文件,3D模型等),根據(jù)游戲客戶端資源文件在一定的游戲邏輯的游戲過
程中所被調(diào)用的時(shí)間順序,在完整游戲客戶端資源中選擇滿足基本游戲操 作的最早被調(diào)用的游戲客戶端資源文件填充到游戲最小客戶端資源列表
中,生成最小客戶端資源;而完整游戲客戶端資源中沒有被選中的游戲客
戶端資源文件將作為剩余資源,按照一定的順序進(jìn)行排序,比如說賽車游 戲中游戲地圖資源的優(yōu)先級(jí)比較高,因此要被排列在前端,而貼圖類的文 件可能相對(duì)的優(yōu)先級(jí)比較低,可以排列在后面,這些除了最小客戶端資源
之外的游戲資源文件將按照一定的大小(如一個(gè)包20M)被打包到剩余資 源包當(dāng)中。
將瘋狂賽車游戲最小客戶端資源配置給游戲客戶端,并架設(shè)好網(wǎng)絡(luò)游 戲更新服務(wù)器,將瘋狂賽車游戲剩余資源包配置到網(wǎng)絡(luò)游戲更新服務(wù)器上,并生成剩余資源文件列表。用戶安裝瘋狂賽車最小客戶端時(shí),除了在 可視化工具中選擇的最小客戶端資源外,其他的客戶端資源會(huì)按照默認(rèn)資 源的規(guī)則被替換成默認(rèn)資源,比如一些貼圖都會(huì)是相同的一個(gè)貼圖資源, 幾個(gè)人物的模型和動(dòng)作都是一樣的等,用戶啟動(dòng)瘋狂賽車最小客戶端后, 后臺(tái)下載程序會(huì)從網(wǎng)絡(luò)游戲更新服務(wù)器上下載相應(yīng)的剩余資源包文件,在 下一次客戶端啟動(dòng)的時(shí)候上次下載的剩余資源文件會(huì)被更新到當(dāng)前的客 戶端中,例如已下載的剩余資源包中有最小客戶端資源未包括的其他地圖 資源文件,那么當(dāng)該剩余資源文件更新完后,該客戶端就可以進(jìn)行所有地 圖的游戲了 (在玩家等級(jí)足夠的情況下)。
本發(fā)明的網(wǎng)絡(luò)游戲客戶端的資源處理方法,能夠使玩家下載一個(gè)相對(duì) 較小的游戲客戶端來體驗(yàn)一款網(wǎng)絡(luò)游戲,在玩家進(jìn)行游戲的同時(shí)后臺(tái)下載 其他游戲資源,從而實(shí)現(xiàn)原始游戲客戶端資源的分批下載,使游戲資源的 下載和填充實(shí)現(xiàn)透明,能使網(wǎng)絡(luò)游戲大客戶端程序的下載簡(jiǎn)便,游戲玩家 能較快進(jìn)行游戲體驗(yàn)。
權(quán)利要求
1、一種網(wǎng)絡(luò)游戲客戶端資源處理方法,其特征在于,包括以下步驟(1)通過hook工具對(duì)游戲客戶端所使用的資源文件進(jìn)行捕獲處理,獲得游戲過程中所用到的資源文件并記錄文件調(diào)用路徑、調(diào)用時(shí)間;(2)利用資源編輯調(diào)整工具對(duì)上述獲得的游戲過程中所用到的資源文件進(jìn)行編輯調(diào)整,生成最小客戶端資源和剩余資源;(3)將剩余資源發(fā)布到網(wǎng)絡(luò)游戲更新服務(wù)器上,并生成剩余資源文件列表,將最小客戶端資源配置給游戲客戶端;(4)游戲客戶端啟動(dòng)游戲,首先檢測(cè)本地更新目錄下有無需要更新的已下載的剩余資源文件,如果有,就將需要更新的已下載的剩余資源文件填充到客戶端的原始位置,然后進(jìn)入游戲,并開啟下載程序,在后臺(tái)進(jìn)行尚未下載的剩余資源的下載,更新本地更新文件列表、更新本地更新目錄;如果無,則直接進(jìn)入游戲、開啟下載程序,在后臺(tái)進(jìn)行尚未下載的剩余資源的下載,更新本地更新文件列表、更新本地更新目錄。
2、 根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)游戲客戶端資源處理方法,其特征在于,步驟(1)中,在利用hook工具對(duì)游戲客戶端所使用的資源文件進(jìn)行捕獲處理時(shí),先將用來記錄文件調(diào)用路徑和文件調(diào)用時(shí)間功能的模塊以dll的形式注入到游戲進(jìn)程中,對(duì)游戲進(jìn)程特定的資源文件讀取接口進(jìn)行捕獲處理,從而獲得游戲過程中所用到的資源文件,并將其保存在內(nèi)存中,在hook用的dll退出時(shí),將保存的游戲過程中所用到的資源文件調(diào)用路徑、調(diào)用時(shí)間按照一定的格式記錄到指定的文件中。
3、 根據(jù)權(quán)利要求l所述的網(wǎng)絡(luò)游戲客戶端資源處理方法,其特征在于,將所述剩余資源打包成多個(gè)剩余資源包后發(fā)布到網(wǎng)絡(luò)游戲更新服務(wù)器上。
4、 根據(jù)權(quán)利要求l所述的網(wǎng)絡(luò)游戲客戶端資源處理方法,其特征在于,根據(jù)游戲過程中所用到的資源文件在一定的游戲邏輯的游戲過程中所被調(diào)用的時(shí)間順序,選擇滿足基本游戲操作的最早被調(diào)用的游戲過程中所用到的資源文件生成最小客戶端資源。
5、 根據(jù)權(quán)利要求l所述的網(wǎng)絡(luò)游戲客戶端資源處理方法,其特征在于,還編輯好需要用默認(rèn)資源來進(jìn)行替換的剩余資源文件的設(shè)置。
6、 根據(jù)權(quán)利要求1至5任一項(xiàng)所述的網(wǎng)絡(luò)游戲客戶端資源處理方法,其特征在于,下載程序包括以下步驟(1) 啟動(dòng);(2) 判斷本地是否有本地更新文件列表、是否有本地更新目錄,如果沒有則首先創(chuàng)建本地更新文件列表、本地更新目錄;(3 )將本地更新文件列表同網(wǎng)絡(luò)游戲更新服務(wù)器上的剩余資源文件列表進(jìn)行比較;(4) 如果沒有完成所有剩余資源的下載則繼續(xù)下載后續(xù)剩余資源文件,并更新本地更新文件列表、更新本地更新目錄,然后進(jìn)行步驟(3);(5) 如果己完成所有剩余資源的下載,則退出。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)游戲客戶端資源處理方法,通過hook工具對(duì)游戲客戶端所使用的資源文件進(jìn)行捕獲處理,獲得游戲過程中所用到的資源文件并記錄文件調(diào)用路徑、調(diào)用時(shí)間;利用資源編輯調(diào)整工具對(duì)上述獲得的游戲過程中所用到的資源文件進(jìn)行編輯調(diào)整,生成最小客戶端資源和剩余資源;將剩余資源發(fā)布到網(wǎng)絡(luò)游戲更新服務(wù)器上,將最小客戶端資源配置給游戲客戶端;游戲客戶端啟動(dòng)游戲,將需要更新的已下載的剩余資源文件填充到客戶端的原始位置,然后進(jìn)入游戲,并同時(shí)開啟下載程序,在后臺(tái)進(jìn)行尚未下載的剩余資源的下載,更新本地更新文件列表、更新本地更新目錄。采用該方法能使網(wǎng)絡(luò)游戲大客戶端程序的下載簡(jiǎn)便,游戲玩家能較快進(jìn)行游戲體驗(yàn)。
文檔編號(hào)H04L29/08GK101626391SQ20081004360
公開日2010年1月13日 申請(qǐng)日期2008年7月8日 優(yōu)先權(quán)日2008年7月8日
發(fā)明者勇 余, 崢 徐, 冰 李, 許世峰 申請(qǐng)人:盛大計(jì)算機(jī)(上海)有限公司