當前位置:
首頁 > 遊戲 > 遊戲固然好玩,但這些載入條實在是太煩了!

遊戲固然好玩,但這些載入條實在是太煩了!

作者:Nathan Grayson

編譯:翎上_Probe

電子遊戲的發展日新月異,在過去的幾個月里發售了許多3A大作比如說《地平線:黎明時分》、《塞爾達傳說:荒野之息》和《不義聯盟 2》。但是儘管遊戲在高速發展,但是有些東西還是逃不掉的,那就是載入時間,這麼多年一點進步沒有。

一些沒耐心的玩家每次看到載入條都會瞬間爆炸,但是還是必須要忍受。大概只有密集的補丁攻勢才能和這這個惡魔之條相抗衡。為什麼明明有更先進的主機和更高效的引擎,我們卻還是逃不出載入條的魔爪?

一位遊戲程序員告訴我,隨著時代的發展,遊戲的載入內容在成指數增長,但是硬體卻沒有以同樣的速度進步。

威廉姆斯·阿姆斯特朗是一位有著豐富的遊戲編程經驗,經手過大量類似《看火人》和《生化奇兵》這樣的大作的程序員,他說:「CPU和GPU的發展速度已經遠遠把硬碟的讀寫速度甩在身後」。

他解釋道:「硬碟是一種嚴格的受物理學定律約束的設備。硬碟的讀寫操作包含了大量宏觀微觀層面的操作,包括電子運動和機械運動。這和純電路的運行速度相比,慢的不知道到哪裡去了。不如說,光速快過一切。」

「(硬碟的)操作比純電路操作慢太多。不如說光速快過一切。」

與硬碟們的前輩相比,現在的它們的容量確實提升了很多,但是次時代遊戲的容量要求提升了更多,這兩者完全不成比例。

羅伯特·迪特里希是一位負責遊戲環境和單位視覺效果處理的程序員了,他表示如果一名設計師要把紋理的解析度從1024*1024提到2048*2048的話那麼就意味著4倍的容量提升,如果提升到4096*4096的話那就意味著要乘16倍的容量。

同時,他也提到。如果將硬碟的轉速從多年前的5400轉/分鐘提升到7200轉/分鐘的話,你的讀寫速度提升只有33%。「雖然固態硬碟在提高讀寫速度的效果立竿見影——儘管這樣往往意味著更高的成本——但是它們的讀寫速度還是在指數式增長的遊戲容量面前相形見絀。」

這還不全是材質包的鍋。阿姆斯特朗在後續的回復中寫道:「遊戲的視角越來越開闊,意味著同時的計算量更大。什麼亂七八糟的東西都要往驅動盤上塞,包括AI、物理引擎還有其他巴拉巴拉的。視角增大的結果遠非你想像的那麼簡單。」

如果能明白硬碟的容量和讀寫速度的增長到底用多慢之後你就會很容易理解為什麼到現在載入條還是沒有變短了。那些可愛的程序員們已經竭盡所能去縮短載入時間了。迪特里希補充道,載入畫面的開始並不是載入過程的開始,事實上它往往在最後一幕即將結束的時候就開始了。

比如說,大多數遊戲會選擇在剛出現公司Logo的時候就開始載入內容,反正Logo是不能跳過的那就讓它變得有用一點好了。還有些在你點進去之前就開始載入下一幕內容,這就是載入條在遊戲一開始看起來特別長的原因。

現代的遊戲還會從程序機制上來減少所佔內存,用更少的數據去描述更多的內容。比如,一個磚塊的紋理可能並非來自一個BMP文件而是來自一組數學計算式——也就是矢量圖形。

GIF/1.4M

「玩家行動的不確定性越大,你就越難預判哪些數據是玩家接下來用的到的。」

一個常用的策略是將遊戲的可能載入內容拆分,在載入時只載入要用的數據——還有可能用的到的數據。通常在開發者可以粗略地預測玩家的行動的時候會使用這個策略。簡單來說,一般在每一幕的開頭用這個套路。

但是玩家的行為總是難以預料的,特別是在一個開放類遊戲里。「玩家的行動越難以預測,我們就越難判斷那些數據是玩家接下來用的到的」迪特里希說,「這就是為什麼在你瞬移到一個很遠的地方需要載入,而走過去就不需要載入。」

大多數情況下,直到開發周期結束前開發者們都不知道該怎麼去優化他們的遊戲。遊戲開發是個巨大的工程,包括了一系列數不清的調試和妥協,你有可能因為一個功能實現而延長整體載入時間、影響其他功能甚至搞出新的BUG。

遊戲引擎也是優化的一個重頭戲,有些特別開發的引擎會進行針對性優化,而大部分通用引擎早在開發者使用之前就做好了,程序員們只能用預判的方式來猜測玩家的行為,至於能猜多准那就真的只有天知道了。

GIF/944K

為了避免遊戲進程被突然打斷,開發者們通常會在玩家解鎖一個有明確指向的內容之前鎖定其他的遊戲內容。然而問題是直到開發周期結束前這個工作都很難進行,但是每到這時候就意味著開發者的時間已經所剩無幾了。

開發者們在這兩分鐘里能做的只有把重要的幾個問題解決到,顯而易見的是載入時間這個問題往往不是這個時候要解決的重點問題,為了趕發售的進度這一項優化往往要草草解決。

「發售一款遊戲就像打開一扇泄洪閘,我們就像在這閘口上看洪流般的反饋湧來。」製作人蘭德·米勒在他的2016年新作《仰沖異界》發售時如是說。他說,有很多硬體原因導致的問題是他們在優化時沒有預料到的,還有大量始料未及的反饋——他們當初根本沒想到那些地方會出問題。

「我們在這一次決定在遊戲一開始載入非常多的內容」他補充道,「所以我們不得不將遊戲內容分塊並且緊急推送一個補丁來進行額外的優化。還有大量類似的工作,不得不陷入問題——推送的循環。」

但是這還是有些好處的,米勒和他的團隊這無盡的優化和更新的循環里找出了基本上所有有問題的和低效率的模塊。

「我們發現我們選擇在載入一個世界的同時載入所有的動畫影片,」米勒寫道,「看起來解決它只要重新下載就可以了,試試這涉及到整個人物交互系統的重寫。」動畫部門發現有些問題可以通過縮小材質包的標準實現,可是這麼操作卻要對觸發器處理。諸如此類的問題都是要一鑿子一鑿子慢慢雕刻的問題,不是一鎚子掄過去就能解決的。

GIF/5K

我還就此詢問了其他兩個遊戲——一個是開放式遊戲《精靈鼠傳說》,另一個是奇幻類RPG《矮人》——的開發者。他們就縮短載入時間的問題上持相似的觀點,認為縮短載入時間的一個前提條件就是開發者要對他們的遊戲了如指掌。這一點對於《矮人》的開發團隊而言尤為重要因為他們近日決定將這一項優化貫穿在整個開發周期當中,這對於這個團隊來說將會是一個不小的挑戰。

正因為上述舉措,《矮人》在縮短載入時間上的工作卓有成效。「精明的數據打包、最高效的內存分配、減少整體容量這些都是細緻活,如果你選擇呢在開發完再去做這些就會變得極其麻煩。」讓·蒂森表示,「我們在下個項目里引進的新系統保證會讓所有人再仔細想想遊戲開始時的載入時間到底意味著什麼。」

GIF/487K

但是到目前為止只有一小部分人可以做到在遊戲開發周期就完成這項優化。只要遊戲載入的速度沒有和硬碟讀寫的速度一樣快,對它的優化就不會停止。

對於威廉姆斯·阿姆斯特朗而言,載入條就和遊戲里的BUG一樣,只不過這個BUG不會使你的遊戲崩潰,只會拖慢它的運行速度。這些BUG只會在遊戲開發進程的最後出現。對他而言,在這個BUG解決之前,開發過程就不算結束。

蝦丸君:不過現在不少遊戲開發者在讀條的時候會加入一些tips,看看還挺有用的

別瞎玩

ID:geekgaming

遊戲,一部時代的科學史

更多文章請移步菜單欄「蝦丸主線」和「蝦丸社區」遊覽

GIF/892K

點不到贊啦!幫幫忙

點擊展開全文

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

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


請您繼續閱讀更多來自 別瞎玩 的精彩文章:

非酋是沒有出門的權利的!這兒有300把鑰匙,慢慢抽吧
二十年風雨不變心,這五個人,因為街霸移居日本
這幾個boss,只要一擊便可打敗!
啊!我的女兒啊,請拿起我塵封多年的寶劍,去世界冒險吧!
聚會新樂子?這個氣球人對戰遊戲太鬼畜了

TAG:別瞎玩 |

您可能感興趣

遊戲載入惹人煩,但也有你不知道的精彩
那些不被載入史冊的秘聞,竟然如此有趣!
難怪醋芹由來已久,它是因緣際會而被載入史冊的,你愛吃嗎
劉備晚上睡覺有個嗜好,讓他的老婆受不了,還被載入了史冊!
最不走心奇葩貼:給男朋友發圖片,還沒有載入完,居然就說不錯!
LOL:玩家辛辛苦苦攢下「對決之令」,換了一個邊框,載入遊戲時崩潰了!
在可以載入建築史的酒店裡睡一晚,是什麼感覺?
如果LOL所有的載入畫面都是這樣 拳頭恐怕做夢都會笑醒
那些載入史冊的刺客傳說,你知道幾個?
LOL玩家打匹配,看到載入界面就覺得這把穩贏了!
載入界面可以尬聊!S9等讀條再也不會無聊了!
戰場上靠裝死能撿條命嗎?這名美國傘兵做到了,還被載入史冊
C羅這一腳倒鉤射門,讓全球足球愛好者都沸騰起來了,不能載入歷史可以來找我
日本這次是想載入史冊?造出「太空巨無霸」,連中國也只能甘拜下風?
詩僧連名字都沒有留下,卻依靠一首詩載入詩史,而且我們都會背
選秀只過了半年,這兩隊的交易就已經載入史冊!只因東契奇太強了
近乎完美!這部恐怖片必然要載入史冊了!
為何手機日漸卡頓?載入越來越慢?這幾點才是根本原因!
她一直都不招人喜歡,卻做了一件利國利民的事,載入史冊
唯一被載入正史的乞丐,人稱「千古奇丐」,他到底做了什麼?