一種基于數(shù)據(jù)同步的網(wǎng)游錄像與回放的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種錄像與回放的方法,尤其涉及一種基于數(shù)據(jù)同步的網(wǎng)游錄像與回放的方法,屬于計(jì)算機(jī)游戲領(lǐng)域。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)游戲錄像,即是把玩家在場景中交互的過程和效果保存到持久化存儲(比如磁盤)上。網(wǎng)絡(luò)游戲的回放,即是把錄像數(shù)據(jù)重新加載,重現(xiàn)玩家的交互過程和效果。
[0003]注意,這里提到的術(shù)語“場景”是指一張地圖的一個運(yùn)行實(shí)例。一個典型的場景包含了地理環(huán)境、場景對象、場景對象之間或場景對象與環(huán)境之間的交互。
[0004]網(wǎng)絡(luò)游戲的錄像和回放是玩家復(fù)盤和相互交流的重要手段。對于策略類游戲來說,回放游戲過程,反思游戲決策,是提升玩家游戲水平的重要方式。游戲開發(fā)者也希望玩家能通過回放游戲過程互相交流,激發(fā)他們對該游戲的興趣和關(guān)注度。
[0005]網(wǎng)游錄像與回放最直接的做法是用錄屏軟件錄制游戲過程,并用視頻播放軟件回放。這種做法的最大缺點(diǎn)是占用的存儲空間巨大。而對存儲空間的優(yōu)化通常是以犧牲圖像質(zhì)量為代價。雖然回放的速度可以控制,但是回放的內(nèi)容在視頻錄制的時候就已經(jīng)決定了,無法改變。
【發(fā)明內(nèi)容】
[0006]為克服以上所述的缺陷,本發(fā)明提出一種基于數(shù)據(jù)同步的網(wǎng)游錄像與回放的方法,截取并復(fù)制網(wǎng)游同步數(shù)據(jù)包,并用網(wǎng)游客戶端軟件讀取錄像數(shù)據(jù),回放游戲過程與效果O
[0007]本發(fā)明的游戲錄像與回放的方法適用于網(wǎng)絡(luò)游戲和單機(jī)游戲,尤其適用于多人聯(lián)網(wǎng)游戲。在一種典型的聯(lián)網(wǎng)游戲中,玩家的操作在服務(wù)端執(zhí)行產(chǎn)生的效果,會同步給場景中的其他玩家。其他玩家才能在場景中看到該玩家的存在,并與之交互。如果把這些同步數(shù)據(jù)存儲下來,并重新在客戶端模擬,就可以重現(xiàn)玩家的交互行為與效果。
[0008]本發(fā)明采用的技術(shù)方案提供一種基于數(shù)據(jù)同步的網(wǎng)游錄像與回放的方法,所述方法包括如下步驟:
A、在網(wǎng)游服務(wù)端的游戲程序的運(yùn)行過程中獲取包含游戲同步的狀態(tài)信息、事件信息和時間信息的同步數(shù)據(jù)包;
B、根據(jù)用戶選擇的游戲的目標(biāo)對象,從同步數(shù)據(jù)包中將與所選的目標(biāo)對象對應(yīng)的狀態(tài)信息、事件信息和時間信息的數(shù)據(jù)儲存為錄像數(shù)據(jù)文件;
C、通過游戲客戶端程序讀取錄像數(shù)據(jù)文件,并且依照時間信息處理相應(yīng)的狀態(tài)信息和事件信息,生成游戲場景的狀態(tài)和事件,從而能夠有選擇地回放游戲過程和游戲場景效果。
[0009]優(yōu)選地,其中,同步數(shù)據(jù)包的同步方式包括:同步場景對象的所有狀態(tài)信息的狀態(tài)同步;在處理場景對象的事件所對應(yīng)的狀態(tài)信息保持一致的情況下對該事件信息進(jìn)行的事件同步。
[0010]進(jìn)一步,其中所述步驟A還包括:在數(shù)據(jù)包中記錄游戲的全局狀態(tài)信息,以便在游戲回放時能夠從時間信息數(shù)據(jù)中定位任意時間點(diǎn)所對應(yīng)的狀態(tài)信息。
[0011]進(jìn)一步,其中所述步驟B還包括:存儲同步數(shù)據(jù)包的額外屬性信息,其中,所述額外屬性信息包括數(shù)據(jù)包發(fā)送時間戳和數(shù)據(jù)包同步目標(biāo)屬性,所述的數(shù)據(jù)包發(fā)送時間戳是指數(shù)據(jù)包發(fā)送時刻相對于預(yù)定的開始時刻的相對時間,所述的數(shù)據(jù)包同步目標(biāo)屬性是指滿足預(yù)設(shè)的游戲?qū)傩约s束的目標(biāo)對象。優(yōu)選地,所述的數(shù)據(jù)包發(fā)送時間戳采用游戲場景時間。
[0012]進(jìn)一步,其中所述步驟B還包括:在生成數(shù)據(jù)文件時,添加狀態(tài)信息和事件信息的分類信息。
[0013]進(jìn)一步,其中所述步驟C還包括:在游戲場景回放時,動態(tài)伸縮由所述時間信息組成的時間軸,從而當(dāng)狀態(tài)和/或事件消息的執(zhí)行速度快于所述時間軸的處理速度時實(shí)現(xiàn)回放快進(jìn),當(dāng)狀態(tài)和/或事件消息的執(zhí)行速度慢于所述時間軸的處理速度時實(shí)現(xiàn)回放慢進(jìn)。
[0014]進(jìn)一步,其中所述步驟C還包括:在回放游戲時,當(dāng)游戲角色離開預(yù)定的場景時,使角色恢復(fù)到在該場景中的初始狀態(tài)。
[0015]進(jìn)一步,其中所述步驟C還包括:回放結(jié)束后,刪除回放場景和所有場景對象。
[0016]進(jìn)一步,所述的基于數(shù)據(jù)同步的網(wǎng)游錄像與回放的方法,還包括:將包含處理游戲同步的狀態(tài)信息和事件信息等數(shù)據(jù)的邏輯獨(dú)立封裝為離線的庫文件,以便在不啟動客戶端程序或不聯(lián)機(jī)時播放錄像文件。
[0017]本發(fā)明的有益效果為:錄像數(shù)據(jù)占用的存儲空間極小,客戶端回放時模擬的圖像質(zhì)量沒有損失;在生成的數(shù)據(jù)文件上添加分類信息還可以有選擇地篩選內(nèi)容供游戲客戶端重放;錄像數(shù)據(jù)可定制,且通過編輯錄像數(shù)據(jù),玩家可以修改回放的內(nèi)容,操作非常靈活;回放速度可動態(tài)改變,用戶可隨意定位到感興趣的位置,用戶體驗(yàn)好。
【附圖說明】
[0018]圖1所示為根據(jù)本發(fā)明基于數(shù)據(jù)同步的網(wǎng)游錄像與回放的方法的步驟。
【具體實(shí)施方式】
[0019]本發(fā)明的游戲錄像與回放的方法適用于網(wǎng)絡(luò)游戲和單機(jī)游戲。具體地,在一個典型的第一人稱射擊結(jié)構(gòu)(CS結(jié)構(gòu))的多人聯(lián)網(wǎng)游戲中,玩家的操作在服務(wù)端執(zhí)行產(chǎn)生的效果,會同步給場景中的其他玩家。其他玩家才能在場景中看到該玩家的存在,并與之交互。如果把這些同步數(shù)據(jù)存儲下來,并重新在客戶端模擬,就可以重現(xiàn)玩家的交互行為與效果。
[0020]參照圖1,根據(jù)本發(fā)明的一種基于數(shù)據(jù)同步的網(wǎng)游錄像與回放的方法,包括如下步驟:A、在網(wǎng)游服務(wù)端的游戲程序的運(yùn)行過程中獲取包含游戲同步的狀態(tài)信息、事件信息和時間信息的同步數(shù)據(jù)包;B、根據(jù)用戶選擇的游戲的目標(biāo)對象,從同步數(shù)據(jù)包中將與所選的目標(biāo)對象對應(yīng)的狀態(tài)信息、事件信息和時間信息的數(shù)據(jù)儲存為錄像數(shù)據(jù)文件;C、通過游戲客戶端程序讀取錄像數(shù)據(jù)文件,并且依照時間信息處理相應(yīng)的狀態(tài)信息和事件信息,生成游戲場景的狀態(tài)和事件,從而能夠有選擇地回放游戲過程和游戲場景效果。
[0021]在本實(shí)施例中,數(shù)據(jù)包內(nèi)分為狀態(tài)同步和事件同步兩種同步方式。狀態(tài)同步是指同步場景對象的所有狀態(tài)信息。事件會引發(fā)狀態(tài)的改變。如果狀態(tài)一致,響應(yīng)事件的機(jī)制一致,那么響應(yīng)事件后的狀態(tài)也一致。這是事件同步成立的基礎(chǔ)。同步事件的好處是可以節(jié)省網(wǎng)絡(luò)流量,但必須保證處理事件前所處狀態(tài)的一致性。
[0022]在數(shù)據(jù)包中可以記錄全局狀態(tài)信息,以便在回放時快速定位到時間軸上的任意一點(diǎn)。實(shí)現(xiàn)定位有兩種方式。一種是定期存儲全局狀態(tài)信息,在定位時往前找到最近的全局狀態(tài),然后往后執(zhí)行到定位點(diǎn)。還有一種是從頭開始,一直執(zhí)行事件消息,直到執(zhí)行到定位點(diǎn)為止。當(dāng)然,如果定位點(diǎn)位于當(dāng)前播放位置的未來時刻,可以直接從當(dāng)前位置快進(jìn)到定位點(diǎn)。
[0023]在本實(shí)施例的方法中,還可以存儲同步數(shù)據(jù)包的額外屬性。這些額外屬性包括數(shù)據(jù)包發(fā)送時間戳和數(shù)據(jù)包同步目標(biāo)屬性。數(shù)據(jù)包發(fā)送時間戳是數(shù)據(jù)包發(fā)送時刻相對于游戲關(guān)卡開始時刻的相對時間。利用同步數(shù)據(jù)包進(jìn)行回放時,根據(jù)回放開始的時間和該時間戳就可以確定數(shù)據(jù)包的處理時刻。同步數(shù)據(jù)包的目標(biāo)屬性,是指數(shù)據(jù)包僅同步給滿足預(yù)設(shè)的游戲隊(duì)伍/勢力關(guān)系、可見性等屬性約束的目標(biāo)對象。游戲回放時,用戶可以根據(jù)這些屬性做出選擇,或回放整個場景,或僅回放場景的一部分。比如,用戶可以選擇不看聊天信息,或選擇僅觀看多人游戲中某隊(duì)