首页
/
每日頭條
/
科技
/
怎麼區分遊戲組件還是系統組件
怎麼區分遊戲組件還是系統組件
更新时间:2024-07-19 20:12:02

本文首發“遊戲開發那些事

作者:Jerish

回放系統,是電子遊戲中常見的一項功能。通過回放,我們可以觀摩高手之間的對決,重複享受遊戲中的精彩瞬間,甚至還可以拿到敵方玩家的比賽錄像進行分析和學習。總的來說,回放功能常用于記錄整個比賽的過程細節或者展示遊戲中的精彩瞬間,非常貼合競技類遊戲玩家的需求。

從實現技術角度來講,下面的這些功能本質上都屬于回放的一部分:

  • 精彩瞬間展示: FIFA / 實況足球 / NBA2K / 守望先鋒 / 極限競速:地平線 / 跑跑卡丁車
  • 死亡回放: 守望先鋒 / 彩虹六号 / 使命召喚 / CODM
  • 全局比賽錄制、下載、播放: 守望先鋒 / CSGO / Dota / LOL / 魔獸争霸 / 星際争霸 / 紅色警戒 / 坦克世界 / 絕地求生 / 王者榮耀
  • 觀戰(常用于非實時觀戰): CSGo / 堡壘之夜 / Dota
  • 時光倒流:Braid / 極限競速:地平線

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)1

彩虹6号中的擊殺回放

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)2

守望先鋒中的完整比賽回放

其實早在20世紀90年代,回放系統就已經誕生并廣泛用于即時戰略、第一人稱射擊以及體育競技等類型的遊戲當中。

回放系統的錄制方式

當我們打開CSGo或者Dota回放文件夾的時候會發現這些回放的文件并不大,一場比賽下來最多也就幾十兆,遠小于對應時長的視頻,那麼回放到底是如何實現的呢?

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)3

Dota錄制文件大小,打開後一般是亂碼

通常來說有三種方式,我們會逐一的展開來講:

  1. 逐幀的錄制遊戲畫面
  2. 逐幀錄制玩家的輸入操作
  3. 定時錄制玩家以及遊戲場景對象的狀态

第一種,逐幀的錄制遊戲畫面。就像現實中體育賽事用攝像機捕捉現場畫面那樣,我們可以遊戲渲染的時候直接從底層抓取畫面信息來持續的生成一個視頻流文件,然後通過任意的一個視頻播放器都進行解析和回放。

優點:

  • 播放簡單,随便找個視頻播放器即可
  • 方便分享到社交平台
  • 完美支持倒放和跳躍進度

缺點:

  • 占用大量的存儲空間
  • 錄制性能開銷較大
  • 加載速度慢,很難實時地用于遊戲中
  • 不夠靈活,視角受限,無法定制特殊功能

一般來說,由于存儲空間以及各種性能問題,錄制遊戲畫面方式幾乎不會被用于遊戲開發中。

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)4

實況足球比賽回放(可以任意調整視角)

第二種,逐幀錄制玩家的輸入操作。其實遊戲本身就是一個可視化的軟件程序(或者說是一個渲染器),每一時刻的畫面都是通過玩家的操作邏輯來驅動的。在考慮遊戲内進行回放的情況下(比如死亡回放),我們完全沒有必要去錄制冗餘的畫面信息,隻需要記錄玩家的輸入信息然後去驅動遊戲邏輯改變畫面就可以了。

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)5

錄制幀輸入,回放時按照時間觸發這些指令信息即可

優點:

  • 錄制數據極小,存儲空間友好,網絡發送便捷
  • 錄制性能開銷幾乎可以忽略
  • 對于幀同步的遊戲,額外開發工作較少
  • 播放視角可以随意調整和定制

缺點:

  • 回放消耗性能很大,等價于重新跑遊戲
  • 進度跳躍比較困難、倒放很困難
  • 隻能在遊戲内播放
  • 要嚴格保證遊戲内邏輯計算結果的一緻性

通常來說,這種實現方式可以完美的利用遊戲邏輯去進行回放,而且消耗非常小。對于幀同步(LockStep)的網絡遊戲,不需要額外做太多的工作,适合性能要求嚴格、物理計算不太需要同步的RTS、MOBA、FTG等類型遊戲。

有了玩家輸入信息我們可以較好的向前推進遊戲流程,但是卻很難執行倒退、向前跳躍等操作。舉個場景,假如玩家A在第10幀點擊攻擊按鈕擊殺了一個AI并回複了5點生命值,第20幀點擊武器制作按鈕制作了一把新的武器但是同時由于被敵人擊殺而掉落。

如果回放時想從第50幀跳回到第5幀的畫面,那麼就需要把玩家A複活,新創建的武器删掉,扣掉恢複的生命并複活AI。按照上述的第二種方案我們在隻記錄玩家的輸入信息【5幀:攻擊按鈕 20幀:制作按鈕】的情況下,幾乎不可能順利還原所有邏輯。根本的原因是,遊戲很容易根據當前的場景和玩家輸入推算出下一幀的結果,卻很難根據當前一幀的結果和玩家輸入推算出上一幀的遊戲狀态。

除此之外,我們需要保證任何一個操作都必須有一個回滾的邏輯并且不同播放端回滾後的結果是嚴格一緻的的,這些都都遠遠增大了跳躍播放的難度。

因此,我們可以考慮第三種方案,定時記錄玩家以及遊戲世界的狀态信息(或者說遊戲快照)。所謂的狀态信息就是某一時刻的對象身上附帶的狀态信息,比如玩家的生命值、移動位置等。如果我有了每一幀玩家的坐标信息,我就可以完美的處理播放、快進、跳躍等邏輯,但很明顯這樣要記錄的數據要多很多。

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)6

Dota中的回放,錄制狀态信息

優點:

  • 錄制數據量中等,可以根據具體情況調整和優化
  • 錄制性能開銷較少
  • 回放時性能消耗尚可
  • 可以支持跳躍、倒放等常見功能
  • 不用擔心計算一緻性問題(浮點數精度、随機數等)
  • 播放視角可以随意調整和定制

缺點:

  • 實現邏輯相對複雜
  • 隻能在遊戲内播放
  • 錄制數據量和性能上不如第二種方案

總的來說,回放的本質是記錄遊戲的過程信息,畫面是最終的表現效果。為了更好的利用遊戲程序本身提供渲染功能和邏輯計算功能,同時從性能、數據量、自由度等多角度考慮,我們通常會根據遊戲的類型來選擇第二種或者第三種方案來實現遊戲内部的回放系統。

回放系統與網絡同步

通過上面的描述,我們很容易發現,回放系統的實現邏輯與網絡同步非常相似。從原理上來講,我們完全可以認為網絡同步是實現回放系統的技術基礎,上面第二種方案對應的就是網絡同步中的“幀同步(LockStep)”技術,第三種方案對應就是網絡同步中的“狀态同步”技術。

雖然大家常把網絡同步可以簡單分為幀同步和狀态同步,但實際上這兩個概念是國内開發者不斷摸索和自創的名詞,并非嚴格指某種固定的算法,他們有很多變種,甚至可以結合到一起去使用。

在如今的遊戲中,狀态同步是比較流行的實現方式,也可以比較好支持回放的各種功能(比如吃雞、守望、彩六等)。但是如果頻繁的錄制整個世界的快照會導緻消耗非常大,所以通常會采用定時錄制快照 持續錄制Delta的方式進行處理,簡單來說就是每隔一段時間錄制一個存檔點(稱為Checkpoint),每個存檔點之間持續的錄制Delta數據(變化的狀态信息),每次加載回放的時候都先找到合适的存檔點,然後再通過讀取中間的Delta數據快進過去。

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)7

Checkpoint Delta方案示意圖

Unreal的回放系統就是按照上面的方式實現的,可以比較好的支持快進、跳轉、暫停等大部分回放功能,我會在下一篇文章中詳細的分析虛幻引擎回放系統的實現原理,盡請期待!

怎麼區分遊戲組件還是系統組件(遊戲中的回放系統是如何實現的)8

UE中的回放錄制命令

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
更新ios15會不會更加耗電
更新ios15會不會更加耗電
上周蘋果正式發布了iOS15.4,由于增加了在戴口罩的情況下可以通過FaceID解鎖的功能,而被稱之為世紀更新。但也因為在表情包中新增了男性孕肚符号,而引起了不小的争議。不過,目前看來,關于該版本更大的争議還在于升級之後。有媒體報道,近來有...
2024-07-19
手機鍍膜和貼膜哪個好
手機鍍膜和貼膜哪個好
手機鍍膜是真的,手機鍍膜的學名叫手機納米防護,現在市面上手機鍍膜,手機納米防護也很多,下面帶大家去了解一下手機鍍膜和手機納米防護市面上的手機鍍膜大多數采用汽車鍍晶液,納米矽油,液體玻璃,防指紋油來忽悠消費者一、汽車鍍膜液。透明無色。也叫汽車...
2024-07-19
小米10手機換了官方的電池怎麼樣
小米10手機換了官方的電池怎麼樣
告别續航瓶頸小米10拆機實測電池容量4400mAh小米9因為輕薄機身設計,電池容量和續航是一大短闆,很多人關心小米10的電池會不會有明顯改善。如今答案揭曉:4400mAh。今天下午,雷軍在微博繼續爆料:小米10系列采用對稱對稱式立體聲,上下...
2024-07-19
現階段最值得入手的顯卡
現階段最值得入手的顯卡
1單卡4K離我們還遠麼?說起4K這個詞可能大部分對于消費類電子産業有一些了解的人們都有一些印象,對于這項技術肯定都不太陌生,其實4K分辨率也就是目前1080p分辨率的4倍,能夠給我們更加精細以及精美的畫面體驗,将這項技術放在顯示器上可以說是...
2024-07-19
會議有哪些品牌
會議有哪些品牌
會議有哪些品牌?中芯國際14納米芯片量産,搭載國産CPU和國産操作系統的華為筆記本電腦上市銷售,國産化辦公軟件龍頭“金山軟件”科創闆上市……近期一系列的大事件都表明,我國民族企業正在以前所未有的努力去進行技術創新,正在以最快的速度在科技領域...
2024-07-19
Copyright 2023-2024 - www.tftnews.com All Rights Reserved