遊戲錄像的功能還是挺有意思的,今天我就和大家說說怎麼樣來做遊戲錄像系統。
什麼是遊戲錄像系統,用一句通俗的話就是把遊戲過程重現出來, 不需要要任何玩家
的干預。
1:遊戲錄像系統有什麼用處?
遊戲錄像系統可以讓玩家回味剛纔精彩的一局,這個是對玩家最直觀的功能,遊戲錄像系統還能幫助我們定位一些比較難的bug
大家可能都遇到過一個問題,無論怎麼測試,一些bug能測試到,但是很難重現,偶爾重現一次,有很難解決,那麼錄像系統就很重要了。當重現的時候,你有錄像,這個時候可以回放數據,把bug完整的復現出來。幫助了測試,也幫助了程序能無數次的重現這個bug。
2: 遊戲錄像系統的具體設計
(1) 錄像數據採集;
錄像數據設計到遊戲的回放, 所有遊戲的關鍵數據都要保存起來,比如用戶的操作,比如產生一個新得物體等,這些推進遊戲進程的關鍵數據,都需要被保存起來。 回放的時候,我們還需要事件產生的時間戳,所以我們設計如下數據結構。
搞一個數組來存放每一個關鍵數據對象,[玩家射擊,怪物產生,玩家移動, 怪物發射子彈, …. ]
每個關鍵數據, 我們都會定義一個數據結構,大致如下:
{
時間戳:產生事件的時間戳
操作類型:
操作的關鍵數據對象;
}
還有一個關鍵的數據,就是遊戲開始的時間戳,這樣的話,把每個關鍵事件的時間戳減去上一個事件的時間戳,就能得到下一個播放事件的。
(2) 錄像回放:
錄像回放的時候,會重用很多遊戲的接口,那麼這個時候,我們要調整代碼,錄像模式和普通模式可以共用, 第一條數據執行的時間戳,是 第一條數據時間戳 - 開始的時間戳,後續,就是 當前關鍵操作的時間戳 - 上一條關鍵操作的時間戳。一條一條數據播放下去。這樣錄像系統就完成了。
3: 我們這邊給了一個完成的遊戲錄像和採集的案例,有興趣的朋友們可以加cocos creator學習交流羣。