開發(fā)者雖然在努力解決,但說到底還是硬件的問題。
電子游戲看起來做的一年比一年好了。
就在過去的幾個月中,我們見證了《地平線:黎明時分》、《荒野之息》以及《不義聯(lián)盟2》給玩家?guī)淼募夹g(shù)上的震撼;但是當(dāng)游戲畫面逐漸變好的同時,讀盤時間這一“所有急性子玩家的夢魘”卻絲毫不見改進。
它們在在那些發(fā)售前補丁中出現(xiàn)的時候簡直太令人生厭了。所以我們擁有的那些更強力、更值錢的游戲設(shè)備究竟能不能有朝一日強到足夠消滅這些等待時間呢?
我和一名程序員談了這個事情,他解釋道:雖然游戲中的內(nèi)容現(xiàn)在已經(jīng)越來越多了,但是我們用來處理這些內(nèi)容的硬件設(shè)施并沒有相應(yīng)地進步。
“GPU和CPU的性能的提升遠遠超過了硬盤讀寫速度的提升幅度,”William Armstrong,一名曾經(jīng)參與過制作《生化奇兵2》和《看火人》的程序員在郵件中這樣回復(fù)我。硬盤的性能還在被物理法則所束縛,他說,因為數(shù)據(jù)的讀寫還是取決于電子和設(shè)備之間的相互作用?!斑@個過程會比純電路要慢的多。”他說?!八袞|西都比光要慢?!保ㄗg注:光是電磁波)
誠然,現(xiàn)在的硬盤讀寫速度確實比十幾年前要快多了,現(xiàn)代的游戲機也有比之前的機型有更大的內(nèi)存容量,但是這個提升并不成比例。Robert Dieterich,一名參與過制作《Elite Beat Agents》和《Lips》的程序員,就拿畫面的材質(zhì)——用來讓游戲中的物體和環(huán)境顯得更逼真——的大小舉了個例子。
如果一位游戲開發(fā)者想要把材質(zhì)的平均分辨率從1024x1024提升到2048x2048,數(shù)據(jù)大小就會是原來的四倍之多,如果是4096x4096就是16倍。
“如果換用固態(tài)硬盤的話,讀取速度會大幅提升,但是花銷也更大,讀取速度還是趕不上游戲數(shù)據(jù)大小的增幅?!盌ieterich說。
而且不僅僅是材質(zhì)的大小,Armsrong說。“游戲的內(nèi)容增加了,從而設(shè)置文件的大小也增加了很多?!彼f?!爸T如設(shè)置AI行為,動態(tài)物理效果,讓每個物品都在存儲讀取系統(tǒng)里注冊,等等。當(dāng)游戲內(nèi)容增加的同時,這些設(shè)置文件的大小也在增加?!?/p>
總之,由于數(shù)據(jù)大小和硬盤讀寫速度的不相稱,游戲讀取時間沒增加就已經(jīng)是萬幸了。這是因為游戲開發(fā)者們會使用各種技術(shù)去隱藏或者減少讀取時間。Dieterich說,讀盤界面通常并不是讀取過程的開始——它們通常是一系列后臺進程的結(jié)尾,只是游戲開發(fā)者用來避免程序響應(yīng)時間過長而制作出來的。
舉例來說,在你真正開始游戲之前讀取數(shù)據(jù)就會開始,這也是為什么有的游戲開頭logo畫面特別長還不能跳過。另外一些游戲會在你游戲的同時讀取,或者用一些兩者混合的手段。許多現(xiàn)代游戲也會在你游戲過程中逐漸地用數(shù)據(jù)生成一些數(shù)據(jù),比如高清素材。換句話來說,也許一個墻的貼圖并不是從一個bmp文件來的,而是從數(shù)學(xué)公式中實時計算得到。
但是,所有這些東西都有自己的麻煩之處;最有效的減少讀取時間的方法是把一個部分所需要的素材打包,只在用到它得時候再讀取它。游戲開發(fā)者可以根據(jù)玩家游戲的進程以及可能采取的行為來將這些素材分類打包;直白地來說,這種技術(shù)通常會在一個關(guān)卡開始前使用。
但是玩家的行為并不是總那么容易預(yù)測,尤其是現(xiàn)在越來越多的游戲開始采用開放世界設(shè)計。“玩家的目的地越難以預(yù)測,你越難以預(yù)計下一步玩家可能會用到什么樣的數(shù)據(jù)?!盌ieterich說?!斑@就是為什么你在開放世界游戲中進行快速旅行的時候可能會遇到讀取畫面,但是如果你手動走過去就不會有讀取畫面的原因。”
很多情況下,游戲開發(fā)者在開發(fā)完成之前都不知道自己的游戲到底能不能快速地進行數(shù)據(jù)讀取。游戲開發(fā)就好像是在拼一幅巨大的、不斷變換的拼圖,每一個小拼圖都可能在某個時刻帶來麻煩,這可以說是有利有弊。
有時候在這個地方做出個小改動可能就會導(dǎo)致在別的地方讀取時間大大增長或者產(chǎn)生崩潰的bug。當(dāng)然,這也取決于游戲引擎的使用。有的引擎會減少讀取時間,而且多數(shù)游戲引擎都是在游戲制作完成之前就投入使用的。所以讀盤時間這一方面我們只能猜測長度如何,但是猜的可不一定準(zhǔn)。
為了避免搞砸其他東西,開發(fā)者通常會在改進讀盤時間的時候鎖定其他所有內(nèi)容。但問題在于,這種工作只能在游戲即將完成的時候在做,有的時候時間所剩不多。開發(fā)者只能解決其中一部分問題就匆匆讓游戲上市。很明顯讀盤時間并不是一個最優(yōu)先需要解決的問題。
“當(dāng)你已經(jīng)都快把游戲拷貝發(fā)往經(jīng)銷商的時候,你通常會把所有問題列一個表然后按照所花的時間以及解決帶來的好處排列?!盝P LeBreton,一名參與制作了《生化奇兵》和《太空基地DF-9》的設(shè)計師說?!霸诎l(fā)售的關(guān)頭,開發(fā)者通常會把游戲穩(wěn)定性放在第一位——來確保游戲不會崩潰,并且有比較高的完成度——這些都比運行速度重要。”
“到發(fā)售的最后關(guān)頭,你就好像是在賭玩家們會喜歡什么?!盠eBreton說。“一個運行緩慢的游戲還是能玩,但是一個頻繁崩潰的游戲就等于廢了。”
近來,我們看到越來越多的開發(fā)者都會在游戲發(fā)售之后發(fā)布補丁,尤其是優(yōu)化讀取時間,因為只有當(dāng)游戲發(fā)售之后開發(fā)者們才能有充足的時間去徹底解決之前遺留的問題。
“只要游戲一發(fā)售,我們就會收到成噸的反饋,在其中我們看到了許多反映讀盤時間過長的意見。”Rand Miller說,他是發(fā)售于2016年的《沖仰異界》的總監(jiān)。有些意見是來源于一些特殊的硬件問題,但是另一些則是來自于一些游戲開發(fā)組在開發(fā)過程中沒有注意過的問題?!拔覀冊谶M入游戲時載入的內(nèi)容太多了,有些根本用不到。”他補充到?!八晕覀儗㈤_頭載入重新精簡了一邊然后發(fā)布了補丁。”
在更新《沖仰異界》的游戲引擎以及優(yōu)化游戲在不同平臺上的表現(xiàn)的同時,Miller和他的公司發(fā)現(xiàn)了很多他們之前做的不夠好或者不夠有效率的小問題。
“我們發(fā)現(xiàn)我們在讀取游戲世界數(shù)據(jù)的時候也把所有動畫數(shù)據(jù)讀取了,”Miller說?!斑@導(dǎo)致了讀取緩慢,但是這個問題需要我們重寫角色互動的系統(tǒng)來解決。”美術(shù)部門發(fā)現(xiàn)可以壓縮一些材質(zhì)的大小,但是這也要一點一點來。
我又采訪了其他兩個游戲的制作人,這些游戲也發(fā)布了優(yōu)化讀盤時間的補丁,分別是潛行游戲《精靈鼠傳說》以及奇幻RPG《矮人》,他們給出的答復(fù)也差不多。為了縮短讀盤時間,游戲開發(fā)者必須從內(nèi)而外全方位地了解他們的游戲。既便如此,還是要花很多時間和精力去解決這些問題。以《矮人》的制作團隊為例,他們最近開始嘗試在開發(fā)過程中就檢查讀盤時間的問題。
《矮人》在發(fā)售后補丁中大幅縮短了讀盤時間,項目的創(chuàng)意總監(jiān)說,他的工作室現(xiàn)在已經(jīng)開始在游戲開發(fā)過程中就檢查讀盤時間了?!皺z查數(shù)據(jù)打包情況,優(yōu)化內(nèi)存使用,以及減少內(nèi)存使用量都會變得很復(fù)雜,如果你在開發(fā)末期才關(guān)注這些問題。”Jan Theysen說到?!八詫τ谖覀兘酉聛淼挠螒?,都會在開發(fā)過程中采用新的流程,讓每個人都從自己的部分縮短讀取時間?!?/p>
但是開發(fā)者實際上能在游戲開發(fā)完成前就做的事情并不多。只要我們還在磁碟上存儲數(shù)據(jù),那么我們就還會遇到讀盤的問題,而那些補丁也會因此一直在發(fā)售后發(fā)布。
William Armstrong說,讀盤時間就像一個普通bug,“一個會在網(wǎng)絡(luò)環(huán)境中發(fā)生的bug,或者一個當(dāng)你不按順序接任務(wù)造成的任務(wù)bug。這些bug只有當(dāng)游戲全部完工的時候才會顯現(xiàn)出來。而通常來說,游戲其實都在發(fā)售前最后一點時間才做完?!?/p>
本文編譯自:kotaku
原文標(biāo)題:《Why Games Still Have Bad Loading Times》
原作者:Nathan Grayson
* 本文系作者投稿,不代表觸樂網(wǎng)站觀點。