有的兄弟有的。
理論上來說,林立新要做的並不是把《戰地1942》復刻出來。
他需要的只是《戰地》系列的靈魂而已。
將問題徹底抽象出來,聚焦於大戰場多兵種協同作戰本身,這個問題就變得有了一些突破口。
「64人的確困難了一些,我們可以先砍半,嘗試從32人做起。」
別看16對16聽起來少了許多。
但要知道如今這個時代,能做出真正意義上多人網絡聯機對戰的fps遊戲,也就只有《雷神之錘》一家。
其他的要麼就是《mazewar》這種概念型作品,要麼就是主打單人模式的fps遊戲。
玩網絡這一塊兒,能玩明白的還就真是gamenova獨一份。
霓虹地區就更不用說了,沒有商業化的isp存在,大量的用戶平日裡使用的都是電話線。
真正的電話線,撥號打電話的那種,連modem都不是。
想要在霓虹使用『網絡線路』的話,是真的需要主動撥號的。 在這樣一個網際網路的蠻荒時代。
別說是16對16了。
哪怕是《雷神之錘》主打的無mod環境最大5v5,那也已經是驚為天人了。
如果真的能把16v16做出來,妥妥的是震撼全球的存在。
「地圖……也可以一定程度上縮小。」
4平方公里做不到,500米x500米總沒問題吧?
500x500能做到,努努力是不是有可能壓榨到800x800這種極限情況?
能做到800x800,優化做的激進一點是不是就有可能頂上1000x1000?
總得要試試。
哪怕最終做出來的尺寸比計劃中小了很多,那也必須儘可能往大了做。
地圖的尺寸是最為關鍵的一環。
「去掉真實物理,克里斯,我們不做那些物理擬真,也不做真實彈道。」 林立新看向克里斯多福。
不久前他已經把整個貝塞斯達都遷了過來。
現在整個物理引擎團隊都在ng,或者說是ng內部的novaengine引擎部門工作。
「只保留碰撞箱和……動畫嗎?的確能節約很多處理器資源。」
克里斯多福若有所思地點了點頭。
物理擬真是一款遊戲中消耗處理器性能最大的東西。
碰撞檢測、彈道計算、物理效果……
每一樣都在壓榨可憐的處理器那所剩無幾的性能。
除非是athena這種同樣是遊戲特化的處理器。
「是的,去掉複雜彈道,回歸簡單拋物線算法,一切都以『流暢』為第一要務。」
「那顯卡呢?渲染才是真正的瓶頸。」 「……降畫質。」
林立新猶豫了片刻,給出了自己的答案。
將貼圖降低到90年代的水平,從更高解析度下降到128x128,甚至是64x64,更少的像素量,渲染壓力也是成倍下降。
模型的面數反倒是不需要怎麼調整。
如今的建模精度本來也做不出太高面數太複雜的東西。
對於一款遊戲來說,什麼東西是最重要的?
如果一定要為此區分一下派別,大概有四種方向。
第一派,以宮本茂、馬克·塞尼、席德·梅爾、約翰·卡馬克等人為代表的『遊戲性至上』。
核心思想非常簡單:如果遊戲不好玩,做的再牛逼那也是垃圾。
而第二派,更加注重『感官』,或者說是反饋,追求手感第一。
他們更加推崇電子遊戲帶給玩家的反饋,每一次按鍵之後,遊戲都必須給出充足的回饋。
不管是飆血還是聲音還是震動,必須要打磨到極致。 在這個門派下甚至還有《gamefeel》這種專門研究『感覺』的典籍存在,也算是某種意義上的宗門秘籍了。
第三派則是主張沉浸感優先,追求極致的代入感和氛圍營造,讓玩家仿佛真正置身於那個世界中。
第四派跟沉浸感有些相似,主張敘事第一。
追求電子遊戲更加『電影化』,以導演的角度去看待和處理遊戲中的問題,設計鏡頭、設計演出,高度重視情緒的表達。
而《戰地》算是哪一派呢?
答案是每種都沾一點。
但遊戲性大概是它最重要的部分。
那種區別於其他fps的大戰場協同作戰正是它的靈魂所在。
為了這個真正的核心,其他所有東西都可以做出一定的讓步。
不過……
為了有限的硬體而妥協,從而閹割遊戲本身,從來都不是gamenova的作風。
不然林立新為什麼還要費這麼大的勁專門成立一個引擎部門? 優化可是門大學問。
「關於大戰場的問題,我其實有幾個思路。」
林立新默默來到白板前。
如何在有限的顯示性能中儘可能地塞下更大的世界,一直以來都是開發者們熱衷於處理的問題。
他沒有急著在白板上寫什麼,而是先掃視了在場的眾人。
在這裡的都是圖形學和硬體領域的佼佼者,算是gamenova最重要的技術智囊團隊。
但越是這樣的情況,考慮問題時就越容易『工程化』,忽略了那些其實很簡單的東西。
「第一,我們其實並不需要做太複雜的地圖,因為這一次的題材是……海灣危機。」
為什麼一個地圖會占用那麼多的資源?
因為地圖需要被整個塞進內存里。
玩家在加載進地圖的時候,首先需要先把它們緩存下來,這樣才能確保接下來的遊戲過程中絲滑的體驗。
如果內存不夠大,那麼開發者就需要考慮一些邪道的手段來解決這個問題。 比如……分塊。
典型自然就是mc的區塊加載機制。
僅加載必要的區塊,卸載掉無用的部分,確保內存不會被一直塞入越來越多的東西直到爆缸。
當然因為mc的逆天優化和部分mod的內存泄漏問題,偶爾還是會出現不論分配多少內存都會被吃光的情況,這就完全是論外了。
這種流式加載策略在電子遊戲中非常常見。
世嘉的《刺蝟索尼克》,其實也是通過類似的思想將地圖動態加載,從而實現了流暢順滑的高速體驗。
所謂的爆內存,其實很多時候就是這麼一回事。
不管是cpu還是顯卡,都需要內存這個高速緩存來輔助存儲數據。
否則所有的內容都從硬碟讀的話,實在是慢到讓人想要撞牆。
顯存也是這麼一回事。
如果頻繁使用的資源在顯存里,那顯存在渲染畫面的時候就可以就地使用,讀取速度快到飛起。
反之亦然,如果從內存讀,速度就要慢得多了。 而若是從硬碟讀呢?
那就完全是一場徹徹底底的災難了。
就此看來,面對一個大地圖,內存絕對是最大的問題所在。
那麼尋找突破點自然也要從這裡開始。
這次的題材為林立新提供了一個絕佳的機會。
海灣戰爭是什麼地方?
那是中東大沙漠。
而沙漠……恰恰是一種最節約性能的選擇。
一個遊戲地圖裡最占資源的東西,往往就是那些複雜的模型,大量的遮擋、陰影、光照、紋理過渡……
如果是一個歐洲城市戰場,成噸的樓房會直接把可憐的顯卡和內存都干爆。
但沙漠就不一樣了。
別說是建築物了,就連樹都找不著。 高低起伏平緩有序,沒有混亂複雜的光照關係。
紋理幾乎完全一致,整張地圖的地面甚至都可以用同一個紋理解決,顯存不需要緩存更多複雜的東西。
節約下來的性能,拿來在沙漠上加點建模簡單的堡壘或是防空炮,完全足夠了。
「的確如此……沙漠天然就是一個元素稀少簡單的環境,很適合電子遊戲使用。」
「不對。」
卡馬克搖了搖頭。
林立新說的這些一點兒不假,沙漠的確是比正常的城鎮要好做的多。
但也存在著一個非常致命的問題。
「視距怎麼辦?沙漠裡可沒有任何東西遮擋,渲染剔除根本就沒有意義。」
這特麼的,沙漠那地界,萬里無雲的天氣。
一個雷霆大跳站在沙丘上,兩眼一張羅怕不是能瞄出去幾英里遠。
直接就給gpu嚇哭了好嗎? 「嘿嘿……這就是我接下來要說的重點。」
林立新沒有急著反駁他,而是開口反問道,
「卡馬克你去過真正的沙漠嗎?」
「怎麼說?」
「heat haze(熱霾),當地表受到太陽輻射加熱後,空氣密度變化導致光線發生折射,遠處的景物就會變得模糊扭曲,難以辨析。」
聞言,卡馬克一愣,隨即眼神放光。
這哪用去真正的大沙漠看?
加州這破地方,一年到頭的都是那麼熱,尤其是南加州,大太陽直接烤在地上,很容易就能看到那些熱霾現象。
「你是說……把遠處的東西模糊化?」
「沒錯。」
林立新哈哈一笑,伸手在白板上寫下了第一行字。
【levels of detail—— lod】 lod技術並不是什麼新鮮概念了,早在1976年,lod就已經在計算機圖形學領域有過一定的應用。
只不過在電子遊戲上使用,那還的確是頭一回兒。
它的思想非常簡單,每個模型都有多種精度的版本,根據玩家的距離動態切換。
離得越近,模型精度越高,細節越豐富,反之亦然。
將那些本來在遠距離就難以觀察到的東西全部抹去,僅保留一個極粗的低模,這就足夠了。
「除此之外,我們還可以加入一個東西,跟它打配合。」
林立新再度抬起手,寫下了第二行。
【distance fog(霧效)】