當前位置:
首頁 > 遊戲 > 為什麼遊戲讀盤時間還是那麼長?

為什麼遊戲讀盤時間還是那麼長?

急性子的夢魘

電子遊戲看起來做的一年比一年好了。

就在過去的幾個月中,我們見證了《地平線:黎明時分》、《荒野之息》以及《不義聯盟2》給玩家帶來的技術上的震撼;但是當遊戲畫面逐漸變好的同時,讀盤時間這一「所有急性子玩家的夢魘」卻絲毫不見改進。

它們在在那些發售前補丁中出現的時候簡直太令人生厭了。所以我們擁有的那些更強力、更值錢的遊戲設備究竟能不能有朝一日強到足夠消滅這些等待時間呢?

讀取ing……

我和一名程序員談了這個事情,他解釋道:雖然遊戲中的內容現在已經越來越多了,但是我們用來處理這些內容的硬體設施並沒有相應地進步。


硬傷

GPU和CPU的性能的提升遠遠超過了硬碟讀寫速度的提升幅度,」William Armstrong,一名曾經參與過製作《生化奇兵2》和《看火人》的程序員在郵件中這樣回復我。硬碟的性能還在被物理法則所束縛,他說,因為數據的讀寫還是取決於電子和設備之間的相互作用。「這個過程會比純電路要慢的多。」他說。「所有東西都比光要慢。」(譯註:光是電磁波)

誠然,現在的硬碟讀寫速度確實比十幾年前要快多了,現代的遊戲機也有比之前的機型有更大的內存容量,但是這個提升並不成比例。Robert Dieterich,一名參與過製作《Elite Beat Agents》和《Lips》的程序員,就拿畫面的材質——用來讓遊戲中的物體和環境顯得更逼真——的大小舉了個例子。

如果一位遊戲開發者想要把材質的平均解析度從1024x1024提升到2048x2048,數據大小就會是原來的四倍之多,如果是4096x4096就是16倍。

但是你從前幾年5400RPM的硬碟提升到最近流行的7200RPM的硬碟,卻只有33%的讀取速度提升。

「如果換用固態硬碟的話,讀取速度會大幅提升,但是花銷也更大,讀取速度還是趕不上遊戲數據大小的增幅。」Dieterich說。

而且不僅僅是材質的大小,Armsrong說。「遊戲的內容增加了,從而設置文件的大小也增加了很多。」他說。「諸如設置AI行為,動態物理效果,讓每個物品都在存儲讀取系統里註冊,等等。當遊戲內容增加的同時,這些設置文件的大小也在增加。」


曲線救國

總之,由於數據大小和硬碟讀寫速度的不相稱,遊戲讀取時間沒增加就已經是萬幸了。這是因為遊戲開發者們會使用各種技術去隱藏或者減少讀取時間。Dieterich說,讀盤界面通常並不是讀取過程的開始——它們通常是一系列後台進程的結尾,只是遊戲開發者用來避免程序響應時間過長而製作出來的。

GIF/3.9M

遊戲在播放開頭的公司logo畫面的時候就開始讀取數據了

舉例來說,在你真正開始遊戲之前讀取數據就會開始,這也是為什麼有的遊戲開頭logo畫面特別長還不能跳過。另外一些遊戲會在你遊戲的同時讀取,或者用一些兩者混合的手段。許多現代遊戲也會在你遊戲過程中逐漸地用數據生成一些數據,比如高清素材。換句話來說,也許一個牆的貼圖並不是從一個bmp文件來的,而是從數學公式中實時計算得到。

但是,所有這些東西都有自己的麻煩之處;最有效的減少讀取時間的方法是把一個部分所需要的素材打包,只在用到它得時候再讀取它。遊戲開發者可以根據玩家遊戲的進程以及可能採取的行為來將這些素材分類打包;直白地來說,這種技術通常會在一個關卡開始前使用。

但是玩家的行為並不是總那麼容易預測,尤其是現在越來越多的遊戲開始採用開放世界設計。「玩家的目的地越難以預測,你越難以預計下一步玩家可能會用到什麼樣的數據。」Dieterich說。「這就是為什麼你在開放世界遊戲中進行快速旅行的時候可能會遇到讀取畫面,但是如果你手動走過去就不會有讀取畫面的原因。」

很多情況下,遊戲開發者在開發完成之前都不知道自己的遊戲到底能不能快速地進行數據讀取。遊戲開發就好像是在拼一幅巨大的、不斷變換的拼圖,每一個小拼圖都可能在某個時刻帶來麻煩,這可以說是有利有弊。

有時候在這個地方做出個小改動可能就會導致在別的地方讀取時間大大增長或者產生崩潰的bug。當然,這也取決於遊戲引擎的使用。有的引擎會減少讀取時間,而且多數遊戲引擎都是在遊戲製作完成之前就投入使用的。所以讀盤時間這一方面我們只能猜測長度如何,但是猜的可不一定準。

鎖定內容式的讀取

為了避免搞砸其他東西,開發者通常會在改進讀盤時間的時候鎖定其他所有內容。但問題在於,這種工作只能在遊戲即將完成的時候在做,有的時候時間所剩不多。開發者只能解決其中一部分問題就匆匆讓遊戲上市。很明顯讀盤時間並不是一個最優先需要解決的問題。

「當你已經都快把遊戲拷貝發往經銷商的時候,你通常會把所有問題列一個表然後按照所花的時間以及解決帶來的好處排列。」JP LeBreton,一名參與制作了《生化奇兵》和《太空基地DF-9》的設計師說。「在發售的關頭,開發者通常會把遊戲穩定性放在第一位——來確保遊戲不會崩潰,並且有比較高的完成度——這些都比運行速度重要。」

GIF/1.9M

追求高完成度與崩坍間的平衡

「到發售的最後關頭,你就好像是在賭玩家們會喜歡什麼。」LeBreton說。「一個運行緩慢的遊戲還是能玩,但是一個頻繁崩潰的遊戲就等於廢了。」


取捨

近來,我們看到越來越多的開發者都會在遊戲發售之後發布補丁,尤其是優化讀取時間,因為只有當遊戲發售之後開發者們才能有充足的時間去徹底解決之前遺留的問題。

「只要遊戲一發售,我們就會收到成噸的反饋,在其中我們看到了許多反映讀盤時間過長的意見。」Rand Miller說,他是發售於2016年的《沖仰異界》的總監。有些意見是來源於一些特殊的硬體問題,但是另一些則是來自於一些遊戲開發組在開發過程中沒有注意過的問題。「我們在進入遊戲時載入的內容太多了,有些根本用不到。」他補充到。「所以我們將開頭載入重新精簡了一邊然後發布了補丁。」

《沖仰異界》的遊戲優化

在更新《沖仰異界》的遊戲引擎以及優化遊戲在不同平台上的表現的同時,Miller和他的公司發現了很多他們之前做的不夠好或者不夠有效率的小問題。

「我們發現我們在讀取遊戲世界數據的時候也把所有動畫數據讀取了,」Miller說。「這導致了讀取緩慢,但是這個問題需要我們重寫角色互動的系統來解決。」美術部門發現可以壓縮一些材質的大小,但是這也要一點一點來。


常態

我又採訪了其他兩個遊戲的製作人,這些遊戲也發布了優化讀盤時間的補丁,分別是潛行遊戲《精靈鼠傳說》以及奇幻RPG《矮人》,他們給出的答覆也差不多。為了縮短讀盤時間,遊戲開發者必須從內而外全方位地了解他們的遊戲。既便如此,還是要花很多時間和精力去解決這些問題。以《矮人》的製作團隊為例,他們最近開始嘗試在開發過程中就檢查讀盤時間的問題。

《矮人》在發售後補丁中大幅縮短了讀盤時間,項目的創意總監說,他的工作室現在已經開始在遊戲開發過程中就檢查讀盤時間了。「檢查數據打包情況,優化內存使用,以及減少內存使用量都會變得很複雜,如果你在開發末期才關注這些問題。」Jan Theysen說到。「所以對於我們接下來的遊戲,都會在開發過程中採用新的流程,讓每個人都從自己的部分縮短讀取時間。」

但是開發者實際上能在遊戲開發完成前就做的事情並不多。只要我們還在磁碟上存儲數據,那麼我們就還會遇到讀盤的問題,而那些補丁也會因此一直在發售後發布。

William Armstrong說,讀盤時間就像一個普通bug,「一個會在網路環境中發生的bug,或者一個當你不按順序接任務造成的任務bug。這些bug只有當遊戲全部完工的時候才會顯現出來。而通常來說,遊戲其實都在發售前最後一點時間才做完。」

本文編譯自:kotaku

原文標題:《Why Games Still Have Bad Loading Times》

原作者:Nathan Grayson

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 觸樂 的精彩文章:

《守望先鋒》世界第一獵空被禁賽,直播中消極應戰
《爐石傳說》明星主播的夫婦生活
《賽博朋克2077》設計文檔遭黑客偷竊,CD Projekt被索取贖金
在韓國使用作弊器的玩家,可能會被判入獄了

TAG:觸樂 |

您可能感興趣

我們為什麼愛花時間看別人玩遊戲?
這款遊戲這麼火,為什麼他們還是不玩?
什麼!原來吃雞這遊戲小時候都玩過!
玩鬧夜話#你最近在玩什麼遊戲?
長時間玩遊戲後猝死,原因竟是這個
看了這張圖片你會明白,為什麼遊戲中那麼多嚶嚶怪!
為啥我遊戲幀數那麼高,畫面還是「卡」?
「這些遊戲這麼有意思,為什麼沒什麼人討論?」我們來
為什麼「找不同」遊戲這麼難?
看圖猜成語:每天猜一點,時間長了你會愛上這個遊戲
你花錢買的第一款遊戲是什麼?現在還在玩嗎?感覺如何?
今年的春節長假,你在玩什麼遊戲?
寒假期間,你看到了多少孩子在玩手機遊戲,其實這很可怕
好友聚會玩什麼遊戲是關鍵!這些遊戲能讓你們一秒嗨
看到那些遊戲的另類標題你都能猜出來是什麼遊戲么?
你小時候做過最尷尬的遊戲是什麼?網友:把鞭炮放在糞里
為什麼周圍的朋友都不玩遊戲了?一張圖就能讓你淚目!
含淚盤點80後經典紅白機遊戲,看看那時的你最喜歡那一個?
你想知道世界末日是什麼時候嗎?玩一下這個遊戲就知道了
你至今玩過最好玩的遊戲是什麼?還記得嗎?