第435章 真·無縫即時加載
如何讓人上癮到死去活來的?
對這個問題的解答,這個世界上有兩類人最為擅長。
一類是化學家。
而另一類……就是遊戲製作人。
「這么小?」
看到林立新在紙上手繪的大致示範,山姆愣了愣。
憑現在gamenova的硬體水平,早就已經能放開手腳做一些很誇張的大地圖了。
加上很多年前他們就已經搞定了的無縫大地圖技術,想要做一個規模誇張的世界並不是什麼難事。
尤其是一個『黑幫火併』題材的作品。
顯然是人越多越熱鬧越好。
就譬如做出一整個完整的夜總會地圖,像《mj的月球漫步》那樣,可以自由地活動。
這樣不是更好嗎? 然而林立新顯然是有截然不同的想法。
根據他繪製的幾個示意圖,不難看出這整個關卡只有幾個不大點兒的小房間構成。
但林立新這麼做,定然有他的道理。
「對,就這么小,我們要確保當玩家進入遊戲的第一時間,關卡就已經被完整加載到內存里了。」
他解釋道,目光掃過自己在紙上畫的幾個敵人示意標誌,簡單估算了一下開支,
「除此之外……我們還需要想辦法實現一個非常麻煩的新技術。不,不對,應該說是倒車回去用老技術。」
林立新想了想,在紙上寫下一行字。
【流式加載】
隨後,他又用筆直接將這行字給劃掉。
看到他這麼做,山姆眨了眨眼,大概明白了林立新的意思。
「你想要棄用流式加載?」
所謂流式加載,其實已經不是什麼新鮮技術了。 在內存和其他機能都非常有限的情況下,遊戲不可能一口氣把地圖完整地加載到內存里。
如果解決不了這個問題,遊戲的世界便終究有一個上限。
只能靠堆硬體去不斷拔高這個閾值。
但流式加載的出現完美解決了這個問題。
它不像是當初他們在《塞爾達傳說》里用的那種切換場景的技術。
真要說它的完美應用案例,其實是林立新給世嘉準備的那款看家作品——《刺蝟索尼克》。
在索尼克那種超高速移動的環境下,靠流式加載不斷動態地載入前方的新地圖便成了必要的手段。
棄用流式加載,意味著林立新主動放棄了大地圖的可能性。
付出了如此大的代價,自然也不會一無所獲。
想到這兒,山姆忽然眼神一亮,猜到了林立新的想法。
「無縫加載!」
這么小的一張地圖,完全足以在玩家不知不覺間悄然加載完畢。 整個地圖根本不需要讀盤,從第一時間便已經緩存在了內存里。
這樣做的好處自然就是……沒有黑屏!
不管是開始新遊戲還是到達新場景,都不會有明顯的加載感。
「誒嘿,就是這麼回事兒。」
林立新打了個響指,
「不過嘛……除了加載之外,它還有另一個至關重要的能耐。」
「是什麼?」
「無縫重置。」
林立新緩緩吐出幾個字兒。
「無縫重置?」
「是的,你還記得《龍穴歷險記》不?」
「當然,我剛才還玩了一局。」 山姆點點頭。
作為這次對標的前輩,《龍穴歷險記》的取材工作自然也已經早早地就被布置了下去。
但是除了山姆這個老ass之外,其他幾人都被虐的死去活來的。
也就卡馬克這種年輕的槍男能玩的了這種純考驗反射神經的遊戲。
「《龍穴歷險記》雖然困難,但它卻能讓玩家一直玩下去,你覺得是為什麼?」
「唔……」
山姆認真思考著,一個個地回想公司里幾個風格截然不同的玩家的遊玩體驗。
半晌,他找到了一個相對令人信服的答案:
「硬要說的話,就是勾子吧?總覺得下次一定能過的心理……以及關卡設計非常迷你,每個節點只有一個qte,失敗了只會在當前節點重來。」
「不賴。」
林立新滿意地稱讚了一句。
《龍穴歷險記》作為一款雖然滿是噁心的qte,卻能讓人一旦開始就難以停下的神奇作品,它的身上實在有太多值得學習的東西了。 qte快速反應事件既是弱點,又是優點。
極短的反應時間窗口,稍有不慎就直接暴斃,但卻能在當前節點迅速重新來過,在極短的重試時間內,每一次失敗都能迅速得到反饋,肉眼可見自己的成長。
這才是他真正的含金量所在。
「我們要在《邁阿密熱線》里重現這套機制。」
經過林立新的解釋,山姆總算是徹底明白了過來他要做什麼。
一路走到現在,山姆雖然在gamenova內部總是表現得差一口氣,但若是丟到外面隨便一個遊戲公司,那都是要被供起來的首席級別。
「心流?」
「沒錯。」
想要實現心流,連貫絕對是最不可或缺的東西。
「不過說起來容易,做起來可不容易。」
林立新無奈嘆了口氣。
80年代……哦不對,是90年代的硬體還是太羸弱了。 別看《邁阿密熱線》其實是一部俯視角的2d遊戲,但它那種超級快節奏的體驗和完全無縫的連貫性,根本不是現在處理器的頻率能做得到的。
哪怕是強如athena,她也就只有80mhz的頻率而已。
山姆顯然也很清楚這一點,他摩挲著下巴,開口講出這套機制面對的最大問題:
「想要重置整個關卡,我們需要把門、敵人、敵人ai、可交互物體等一切物件都銷毀,再重新實例化,還得嘗試還原玩家的狀態把他送回初始位置……」
哪怕是如此小的地圖,在這麼多的工作量下,憑藉有限的處理器頻率也很難做得到。
《龍穴歷險記》為什麼能做到?
那是因為《龍穴歷險記》里根本就沒有任何角色數據。
沒有位置信息、沒有場景、沒有物件。
它只是一段動畫視頻而已。
所謂重新來過,其實就是重播一次動畫片段。
畢竟不會有什麼區別,qte還是那個qte。
哪怕是真的即時重啟,需要管理的數據量也非常少。 「的確如此。」
林立新不置可否。
想解決這個問題,要麼是搞出更高速的內存,要麼就想辦法提升處理器頻率。
但前者需要搞出新架構,會導致現在的sdram體系加速崩潰,對美光的發展並不有利。
處理器頻率的提升,在短期內也很難有質的突破。
兩條看似走的通的路實際上都走不通。
更不用說卷硬體本身就是林立新非常不認可的路線。
合適才是最好的,夠用高於一切。
讓玩家承擔性能溢出的溢價,實在是吃相太難看了點。
「要是咱們用兩塊athena呢?兩塊加起來總能更強一點吧。」
「不太行。」
林立新搖搖頭, 「數據量是處理的過來的,問題在於速度,堆兩塊處理器解決不了這個問題……嗯?」
他的話說到一半,忽然愣了愣,旋即眼神一亮,
「嘿!你別說,搞不好還真行!」
說罷,他也不跟山姆解釋,直接衝出辦公室來到馬克·塞尼跟前,已經被勾起好奇心的山姆緊隨其後。
這事兒他們還真得跟塞尼這個新任架構師聊聊。
……
「需要無縫加載和重置?如果是這樣的話,哪怕是兩顆athena應該也不夠用的。」
塞尼搖搖頭,否定了這個提案。
問題跟林立新所述的一樣,速度是硬傷。
「別著急,《邁阿密熱線》是純粹的動作遊戲,rpg占比非常小,唯一的區別就是每關開始前選擇的面具。」
林立新解釋道。
「這我倒是知道,但是即便是這樣,地圖裡的其他數據也會……」 「不不不。」
林立新出聲打斷了他,擺了擺手,
「我的意思是,我們沒有需要傳遞的……玩家數據,每一關都是獨立的。」
「?……?!」
塞尼忽然眼神一閃。
他的硬體知識雖然比不過傑拉德,但他在思路這一塊上絕對是獨領風騷。
只需要林立新這麼簡單一解釋,他就明白了過來。
「能行嗎?」
「我猜……應該可以,不過我需要先做個技術驗證。」
兩人相視點了點頭,一切盡在不言中。
在一旁聽著的山姆納悶地看著倆人。
「這是在打什麼啞謎?別賣關子了,跟我講講。」 林立新聳聳肩,這才開口解釋道:
「第二顆athena不是作為協處理器輔助處理信息,而是……」
「備份!」
塞尼主動接過話茬,
「我們不只是要兩顆athena,還要兩套內存,在玩家遊玩的過程中,關卡已經被備份緩存在了另一組晶片內。」
這就像是把兩台街機的基板縫在了一起,只不過除了必要的獨立部分之外,其餘部分全都共用。
當玩家不慎死亡時,遊戲會第一時間切換到備份。
因為關卡本身就完全回滾,加上角色除了開局時選擇的面具外沒有任何差異的關係,即便是使用了一套完全獨立的備份,在玩家的視角看來也根本沒有任何違和感。
面向玩家編程。
不管過程是如何實現的,架構又有多麼屎山,只要最終呈現給玩家的效果符合預期,那它就是完美的解決方案!
而在當前層打完了需要切換到下一層的時候,事實上遊戲在玩家操控著角色走進樓梯通道的過程中,就已經開始向內存中預加載新地圖的數據,以及讓備份晶片開始工作了。
(還有更新耶)