專利名稱:網絡休閑游戲錄放方法
技術領域:
本發(fā)明屬于網絡游戲領域,尤其涉及一種網絡休閑游戲錄放方法。
背景技術:
“網絡游戲”也就是人們一般所指的“在線游戲”,是通過互聯網進行、可以多人同時參與的電腦游戲,通過人與人之間的互動達到交流、娛樂和休閑的目的。
網絡休閑游戲是一種內容相對單一的網絡游戲,包括棋牌類游戲及其它益智趣味類網絡游戲等。棋牌類游戲,顧名思義就是把生活中的棋牌類游戲(包括麻將)移植到網絡上,游戲玩家通過網絡這一平臺與人對壘。益智趣味類網絡游戲的涵蓋面較廣,它基本包括了除棋牌類以外的所有桌面網絡游戲,如連連看、一起來找茬等,這其中有很多是流行的單機游戲改編而成,以實時比賽的方式實現互動,有些還在游戲中增加了部分道具以增強互動感。
網絡游戲中,通過重構游戲局面,可以讓游戲玩家享受到反復游戲的樂趣。另一方面,由于對相同結構游戲的熟練程度和能力的區(qū)別,在競技類游戲中必然存在高手與低手的區(qū)別。玩家是愿意去觀賞其它杰出玩家的藝術般的表演的。由此,休閑游戲錄放系統(tǒng)便應運而生。游戲錄放是經常在中小型競技類電腦游戲中擁有的功能,玩家可以對自己的游戲過程進行錄像,并把錄像內容保存成文件,觀看時用游戲客戶端打開即可。
現有的游戲錄放方法,其基本原理是將游戲過程中發(fā)生的事件按照時間順序記錄下來,并保存。以現有圍棋游戲的錄放方法為例,該方法包括1.獲得玩家每一次落子時,該棋子的顏色,以及棋子落在棋盤上的坐標值;2.記錄上述的棋子顏色以及棋子落在棋盤上的坐標值,按玩家落子的先后順序依次保存;3.播放錄像時,按照信息保存的先后順序,讀取預先保存的棋子的顏色以及棋子落在棋盤上的坐標值;4.將每條信息中所指定顏色的棋子,按照該條信息中所指定的位置,在棋盤上一一繪制出來。
在上述過程中,圍棋游戲的錄放方法與游戲本身的特性相關,比如圍棋中的棋子的坐標。對于不同種類的游戲,比如,象棋等其它的休閑游戲基本無法通用。
發(fā)明內容
本發(fā)明的目的在于提供一種網絡休閑游戲錄放方法,旨在解決現有技術中網絡休閑游戲錄放方法無法通用的問題。
為了實現上述發(fā)明目的,本發(fā)明的主要技術方案為一種網絡休閑游戲錄放方法,其特征在于,該方法通過含有消息引擎以及播放控制模塊構成的游戲錄放模塊的游戲客戶端執(zhí)行網絡休閑游戲的錄放,所述方法包括下述步驟A.游戲開啟后,播放控制模塊通過消息引擎接收,并復制游戲過程中游戲服務器發(fā)來的所有網絡消息,并將這些消息分類存放在游戲客戶端形成錄像文件;D.當收到打開錄像文件的指令時,播放控制模塊與游戲客戶端建立連接,并獲得該游戲客戶端與游戲服務器之間的消息接口;E.播放控制模塊讀取錄像文件中的游戲消息,并將其還原為消息流,通過上述游戲客戶端與游戲服務器之間的消息接口發(fā)送給游戲客戶端展現。
優(yōu)選的,在步驟A和D之間還包括步驟B.將額外消息數據分類存儲在錄像文件中。
優(yōu)選的,所述步驟B包括B1)當游戲結束時,游戲服務器根據當前游戲的特性,判斷是否有播放錄像所需的必要額外消息數據需要向游戲客戶端發(fā)送;如果沒有,步驟B結束,如果有,進行步驟B2);B2)游戲服務器將當前游戲中包含有的播放錄像所需額外消息數據發(fā)送給游戲客戶端;B3)游戲客戶端對額外消息數據單獨打包并通過消息引擎提供的接口將其與其他消息分開保存在錄像文件中。
優(yōu)選的,所述步驟B3)中,收集完錄像所需的所有消息后,保存成文件之前,還包括將消息壓縮打包,并做加密處理。
優(yōu)選的,在步驟D之前還包括C.播放控制模塊通過消息引擎將游戲客戶端在系統(tǒng)中的注冊ID保存在錄像文件中;步驟D包括D1)當收到打開錄像文件的指令時,播放控制模塊讀取錄像文件中包含的游戲客戶端在系統(tǒng)中的注冊ID;D2)播放控制模塊通過游戲客戶端在系統(tǒng)中的注冊ID查詢對應的游戲客戶端在本地的路徑;D3)播放控制模塊啟動其對應的游戲客戶端;D4)播放控制模塊查詢已經啟動的客戶端所開放的接口,并與之建立連接。
優(yōu)選的,游戲客戶端與游戲服務器之間的消息接口包括游戲邏輯消息傳遞接口,通用游戲消息傳遞接口,聊天消息傳遞接口。
優(yōu)選的,每條游戲消息中包含有時間戳,步驟E包括E1)讀取錄像文件中的游戲消息,將其還原為消息流;E2)按照每條游戲消息信息中所包含的時間戳建立計時器循環(huán);
E3)按照每條游戲消息信息中所包含的時間戳,將各個消息通過上述網絡休閑游戲客戶端與游戲服務器之間的消息接口發(fā)送給游戲客戶端;E4)游戲客戶端按照原有的消息處理邏輯,展現游戲過程。
優(yōu)選的,消息引擎封裝在一個動態(tài)鏈接庫中,所述步驟A之前還包括開啟游戲客戶端;在游戲開啟前,在游戲客戶端上首先加載存放有消息引擎的動態(tài)鏈接庫。
優(yōu)選的,錄像文件中存儲的消息包括游戲過程消息,游戲靜態(tài)消息,以及游戲附屬消息;游戲過程消息,即游戲過程中收到的消息;游戲靜態(tài)消息,即重復錄像時需要單獨保存的消息;游戲附屬消息,即在某些游戲過程中對過程消息進行附屬說明的消息。
優(yōu)選的,錄像文件以*.qrr文件的形式保存,錄像文件保存時設置該文件的打開方式為由游戲錄放模塊打開。
本發(fā)明通過在游戲客戶端不加處理得記錄游戲過程中游戲客戶端與游戲服務器之間的交互信息,并利用游戲客戶端本身具有的消息處理單元,通過游戲客戶端與游戲服務器之間的消息接口模擬游戲服務器與游戲客戶端之間的通信過程的方法,實現了對網絡休閑游戲的錄放,在本發(fā)明的方法中,沒有涉及對特定游戲特性的處理,故應用本發(fā)明的方法可以支持不同的休閑游戲使用。
圖1是本發(fā)明提供的網絡休閑游戲錄像方法的實現流程圖;圖2是本發(fā)明提供的網絡休閑游戲播放方法的實現流程圖。
具體實施例方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明的網絡休閑游戲錄放方法通過含有消息引擎以及播放控制模塊構成的游戲錄放模塊的游戲客戶端執(zhí)行網絡休閑游戲的錄放。消息引擎是提供所有消息流處理的接口,其封裝在一個動態(tài)鏈接庫(DLL)中。該動態(tài)鏈接庫中包裝了所有引擎提供接口的具體實現方法;而對于接口的使用不需要關心具體實現方法。播放控制模塊,用于解析錄像文件,啟動對應客戶端播放器,并對播放過程進行簡單的控制。標準的網絡休閑游戲的過程就是網絡消息在服務器與客戶端之間傳遞的過程,播放控制模塊的核心作用就是記錄游戲中所接收的來自服務器的所有消息,并分類保存。
結合圖1所示,網絡休閑游戲的錄制過程如下首先,游戲客戶端啟動;在游戲開始之前,游戲客戶端首先加載存放有消息引擎的動態(tài)鏈接庫;當游戲開始后,播放控制模塊通過消息引擎接收,并復制與當前游戲相關的每一條網絡消息,將這些消息按接收的順序分類存放在本地客戶端形成錄像文件;接收的網絡消息包括游戲過程消息,即游戲過程中收到的消息;游戲靜態(tài)消息,即重復錄像時需要單獨保存的消息,比如該局游戲中有哪幾個玩家,各自在開始時是怎樣的狀態(tài);游戲附屬消息,即在某些游戲過程中對過程消息進行附屬說明的消息。
當游戲結束時,游戲服務器針對錄像功能判定對于重現游戲過程而言,是否需要額外消息數據,即服務器在本局游戲中向其它游戲玩家發(fā)送的游戲消息,這些消息在服務器端均有保存,但客戶端在游戲過程中無法正常收到。對于需要獲得額外消息數據的游戲,游戲服務器將額外消息數據(比如棋牌游戲中,開局時,對局幾方的起手牌)發(fā)送給游戲客戶端,游戲客戶端對額外消息數據單獨打包并通過消息引擎提供的接口將其與其他消息分開保存在錄像文件中。
一般而言,對于游戲重現時顯現的信息與游戲過程中顯現的信息完全一樣的游戲,就不需要從服務器獲得一些額外消息數據,例如圍棋,跳棋,象棋等游戲,在游戲時,游戲客戶端即展現了游戲雙方的信息,游戲重現時需要展現的也是游戲雙方的信息;如果,對于游戲重現時顯現的信息會與游戲過程中顯現的信息不完全一樣的游戲,就需要從服務器獲得在游戲過程中沒有獲得的部分額外消息數據,例如在麻將游戲中,游戲客戶端僅展現己方麻將牌的情況以及3家其它玩家的出牌狀況,但是不會顯現在每一操作中,其它3家玩家的麻將牌情況,而在游戲重現時,則需要將所有玩家的麻將牌的情況全部展現出來。
上述所有的錄像相關信息均按照游戲指定的文件名,將該局游戲相關的所有信息按照時間順序記錄在客戶端,保存為檔案文件,例如可以保存為*.qrr文件。
最后,保存游戲客戶端的CLSID。CLSID即為該錄像對應游戲客戶端在系統(tǒng)中的注冊ID,播放控制模塊通過此ID與該游戲客戶端建立COM連接,并得到其與大廳通信的三個消息傳遞接口,即游戲邏輯消息傳遞接口,通用游戲消息傳遞接口,聊天消息傳遞接口。
結合圖2所示,對網絡休閑游戲進行重現播放的過程入下預先在游戲大廳安裝的時候,在注冊表中注冊.qqr文件的關聯打開方式為由播放控制模塊關聯打開。
游戲客戶端收到打開錄像文件的指令時,首先在注冊表中查找該類型文件對應的執(zhí)行方式,由于安裝時已經進行了注冊,所以此時會自動調用播放控制模塊打開錄像文件。即首先讀取文件中包含的CLSID,啟動其對應的游戲客戶端,其次,并將文件中的數據還原為游戲中的三種消息流,即游戲過程消息傳遞消息流,游戲靜態(tài)消息傳遞消息流,游戲附屬消息傳遞消息流。
游戲消息流被正確分解出來之后,播放控制模塊按照每條游戲消息信息中所包含的時間戳建立計時器循環(huán),將各個消息通過之前得到的消息傳遞接口發(fā)送給游戲客戶端,模擬游戲大廳和游戲通信的過程。
游戲客戶端則按照原有的消息處理邏輯,模擬當時游戲的全過程。
游戲的過程,就是與大廳通信,處理消息的過程,所以游戲本身提供了對這些消息的處理單元。而在上述的游戲重現播放的過程中,消息的來源并非即時來自于服務器,而是由播放控制模塊解析了已經保存的游戲消息,并模擬服務器,通過同樣方式發(fā)送給客戶端,從而達到采取原有游戲邏輯播放錄像的目的。
在同樣的發(fā)明原理下,也可以將各個游戲錄像注冊為不同的文件類型,在各個游戲內部封裝外部消息處理模塊。對于某些競技型游戲,可以將消息流的記錄保存轉化為操作流的保存。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種網絡休閑游戲錄放方法,其特征在于,該方法通過含有消息引擎以及播放控制模塊構成的游戲錄放模塊的游戲客戶端執(zhí)行網絡休閑游戲的錄放,所述方法包括下述步驟A.游戲開啟后,播放控制模塊通過消息引擎接收,并復制游戲過程中游戲服務器發(fā)來的所有網絡消息,并將這些消息分類存放在游戲客戶端形成錄像文件;D.當收到打開錄像文件的指令時,播放控制模塊與游戲客戶端建立連接,并獲得該游戲客戶端與游戲服務器之間的消息接口;E.播放控制模塊讀取錄像文件中的游戲消息,并將其還原為消息流,通過上述游戲客戶端與游戲服務器之間的消息接口發(fā)送給游戲客戶端展現。
2.如權利要求1所述的方法,其特征在于在步驟A和D之間還包括步驟B.將額外消息數據分類存儲在錄像文件中。
3.如權利要求2所述的方法,其特征在于所述步驟B包括B1)當游戲結束時,游戲服務器根據當前游戲的特性,判斷是否有播放錄像所需的必要額外消息數據需要向游戲客戶端發(fā)送;如果沒有,步驟B結束,如果有,進行步驟B2);B2)游戲服務器將當前游戲中包含有的播放錄像所需額外消息數據發(fā)送給游戲客戶端;B3)游戲客戶端對額外消息數據單獨打包并通過消息引擎提供的接口將其與其他消息分開保存在錄像文件中。
4.如權利要求3所述的方法,其特征在于所述步驟B3)中,收集完錄像所需的所有消息后,保存成文件之前,還包括將消息壓縮打包,并做加密處理。
5.如權利要求1,2,3或4所述的方法,其特征在于在步驟D之前還包括C.播放控制模塊通過消息引擎將游戲客戶端在系統(tǒng)中的注冊ID保存在錄像文件中;步驟D包括D1)當收到打開錄像文件的指令時,播放控制模塊讀取錄像文件中包含的游戲客戶端在系統(tǒng)中的注冊ID;D2)播放控制模塊通過游戲客戶端在系統(tǒng)中的注冊ID查詢對應的游戲客戶端在本地的路徑;D3)播放控制模塊啟動其對應的游戲客戶端;D4)播放控制模塊查詢已經啟動的客戶端所開放的接口,并與之建立連接。
6.如權利要求5所述的方法,其特征在于游戲客戶端與游戲服務器之間的消息接口包括游戲邏輯消息傳遞接口,通用游戲消息傳遞接口,聊天消息傳遞接口。
7.如權利要求1,2,3或4所述的方法,其特征在于,每條游戲消息中包含有時間戳,步驟E包括E1)讀取錄像文件中的游戲消息,將其還原為消息流;E2)按照每條游戲消息信息中所包含的時間戳建立計時器循環(huán);E3)按照每條游戲消息信息中所包含的時間戳,將各個消息通過上述網絡休閑游戲客戶端與游戲服務器之間的消息接口發(fā)送給游戲客戶端;E4)游戲客戶端按照原有的消息處理邏輯,展現游戲過程。
8.如權利要求1,2,3或4所述的方法,其特征在于消息引擎封裝在一個動態(tài)鏈接庫中,所述步驟A之前還包括開啟游戲客戶端;在游戲開啟前,在游戲客戶端上首先加載存放有消息引擎的動態(tài)鏈接庫。
9.如權利要求1,2,3或4所述的方法,其特征在于,錄像文件中存儲的消息包括游戲過程消息,游戲靜態(tài)消息,以及游戲附屬消息;游戲過程消息,即游戲過程中收到的消息;游戲靜態(tài)消息,即重復錄像時需要單獨保存的消息;游戲附屬消息,即在某些游戲過程中對過程消息進行附屬說明的消息。
10.如權利要求1,2,3或4所述的方法,其特征在于,錄像文件以*.qrr文件的形式保存,錄像文件保存時設置該文件的打開方式為由游戲錄放模塊打開。
全文摘要
本發(fā)明公開了一種網絡休閑游戲錄放方法,其特點在于,該方法通過含有消息引擎以及播放控制模塊構成的游戲錄放模塊的游戲客戶端執(zhí)行網絡休閑游戲的錄放,所述方法包括下述步驟A.游戲開啟后,播放控制模塊通過消息引擎接收,并復制游戲過程中游戲服務器發(fā)來的所有網絡消息,并將這些消息分類存放在游戲客戶端形成錄像文件;D.當收到打開錄像文件的指令時,播放控制模塊與游戲客戶端建立連接,并獲得該游戲客戶端與游戲服務器之間的消息接口;E.播放控制模塊讀取錄像文件中的游戲消息,并將其還原為消息流,通過上述游戲客戶端與游戲服務器之間的消息接口發(fā)送給游戲客戶端展現。應用本發(fā)明的方法可以支持不同的休閑游戲。
文檔編號G06F17/30GK101059823SQ20061003515
公開日2007年10月24日 申請日期2006年4月19日 優(yōu)先權日2006年4月19日
發(fā)明者王琛 申請人:騰訊科技(深圳)有限公司