秩序跟效率,有的時候並不是同一個方向。
gamenova,開發部。
面對著電腦上解包出來的文件結構,林立新眉頭微微一蹙。
「優化過於激進了啊……」
開發組的技術力是絕對是全業界毫無爭議的最強一檔。
但面對這次的《myst》項目,這過強的技術力反倒是成了一個累贅。
要知道當年cyan工作室在開發《myst》的時候,那也是標速的cd-rom。
理論上來說不可能有這種人家能行他們gamenova做不到的情況。
更何況當年cyan用的還是蘋果的quicktime技術和hypercard技術。
在底層性能上,無論如何也不可能他們gamenova這種技術棧完整的超級大廠的對手。
現在解包一看,這才算是徹底明了。
按照開發流程,一個遊戲軟體在開發完成後需要進行編譯工作。 將n語言轉譯成硬體能夠理解的機器碼。
同時,編譯器會嘗試理解開發者的意圖,並儘可能地優化。
很多時候菜鳥程式設計師寫出來的屎山在性能表現上卻意外不錯的原因就在這兒了。
編譯器一直在替鑄幣們負重前行。
作為一個立項之初就面向未來的現代架構,n語言以及它的編譯器在編譯優化這方面做了大量的工作。
其中甚至有一大部分還是傑拉德在離職前留下的遺產。
加上林立新和卡馬克長年累月的優化。
如今的n語言的sdk甚至要比那些專業軟體更加龐大複雜。
而它的作用也是非常強大。
最簡單的優化邏輯自然就是常量摺疊和消除無效死代碼這些節約文件大小的操作。
比如程式設計師為了可讀性書寫了大量的變量和計算。
但在編譯器判斷後發現,這些實際上可以直接用固定常量的方式一行搞定,就會直接優化掉。 循環的處理、函數的調用等等。
很多時候,他們在開發過程中是要優先保證代碼的可讀性的。
畢竟不是人人都是林立新。
如果讓林立新自己放開手腳編寫程序,的確能做到完全從機器的視角來進行編寫。
畢竟他的大腦本身就是一台性能爆表的濕件超算。
但這種操作放在五年前可以,放在現在卻不行。
因為遊戲開發已經不是他自己一個人的事了。
大量的工作人員參與其中,必須要確保大部分人都能一眼讀懂某一部分的作用。
於是乎這裡便到了編譯器發揮神力的時候。
如此的小伎倆在n語言的編譯器中比比皆是。
不過真正讓他們感到驕傲的機制,同時也是出現這次問題的幕後元兇。
文件系統。 為了確保遊戲效率,引擎會判斷遊戲內資源的使用頻率,並對它們進行碎片化的整理。
所有的文件都以1和0的二進位流形式,完全打碎在遊戲文件里。
考慮到緩存和幀數表現,這套模式絕對是最頂級的優化思路。
但對cd-rom來說,這就是一場純粹的災難了。
「沒想到有一天會栽到過度優化的坑裡。」
林立新撇了撇嘴。
到底還是經驗不足。
這大概就是開掛給他帶來的一點負面影響了。
經常出現這種因為進步過快反而扯到蛋的尷尬情況,非常蛋疼。
不過一體兩面的。
只要知道問題在哪,那林立新理論上來說就是無敵的。
想要修復它,其實非常非常之容易。 甚至都不需要其他人參與,也不需要改動原有代碼。
只需要做一件事……
『噠』
林立新在鍵盤上敲了一下,將編譯工具的『文件優化系統』關閉。
done。
就這麼簡單。
《myst》是個慢節奏看環境玩解謎的遊戲,對幀數壓根沒有什麼要求。
直接把這些過度優化的東西全部關掉,一切就都迎刃而解了。
當然,這樣做只能解決一部分問題。
剩下要怎麼在這個基礎之上優化,那的確還是需要精心設計一番的。
……
仔細盤算一下,《myst》也算是gamenova歷史上開發周期最長的作品之一了。 不同於《quake》這類遊戲,《myst》在程序上沒有太多的講究。
絕大部分的工期都用在了建模和渲染上。
這些工作不像寫代碼,沒法靠著技術節約工期快速推進。
好在是換裝了新款的顯卡,在渲染速度這方面有了不少的提升。
半個月的時間,gamenova影視基地的其中一座島已經捯飭起了一片臨時的辦公區。
幾組貨櫃房和簡易房車,在已經夯實找平了的土面上聚集著。
水電通信網絡都已經跑通。
整個建模團隊和道具組便乾脆打包直接搬了過來,省得天天跑往返浪費時間。
鄰近工作島的隔壁一座略小几圈的島則是被道具組完全打扮成了另一幅模樣。
大量的泡沫模型和板材偽裝出來的遺蹟已經初具規模。
此刻正在調試打光和攝影機機位。
「差不多就是這兒吧,圖書館的入口就設置在這裡,機關不用著急,讓建模組來搞就行。」 林立新後退一步,伸手比量著,滿意地點點頭,
「行,你們加油。」
他給幾位工作人員打了打氣,目光落在不遠處的土坡上。
那邊的觀星台也在慢慢成型。
畢竟只是幾個靜態場景,想要騙過攝像機的話,還是挺容易的。
看著這座已經初具規模的『神秘島』,林立新不禁有些感慨。
這可是《星球大戰》和《奪寶奇兵》的道具團隊。
放眼整個好萊塢,整個歷史上,在電影道具和實體美術設計領域都是第一梯隊的存在。
也就《異形》和《銀翼殺手》這種級別的團隊有能耐跟他們碰一碰了。
但面對眼前這種構築一整個架空文明體系的需求,星戰攝製組絕對是最有發言權的。
「不賴。」
林立新望著蒸蒸日上的群島,對這筆買賣愈發的滿意起來。 要說三角洲比起真正的海島來說到底有什麼缺點的話……
他看向遠處的河岸邊。
那邊黑壓壓的聚集起了一大片人影。
這些並不是gamenova或是盧卡斯的工作人員。
而是過來圍觀的路人。
薩克拉門托河岸本就是加州重要的旅遊場所。
原本就整日都會有人在岸邊騎行或是跑步,也有人會選擇在河道上划船。
gamenova搞出這麼大的動靜,自然沒有逃過他們的眼睛。
根本都不需要媒體報導,僅僅是開工的第二天,一大幫慕名而來的粉絲就已經將岸邊給堵滿了。
要說人閒下來的時候真的是什麼都做得出來。
這幫人就真是啥也不干,就帶著野餐籃和野餐墊。
跑到河邊隨手這麼一鋪,一天到晚地就遠遠地瞅著島上的動靜。 有帶著望遠鏡的或是眼睛尖的,一眼瞅見林立新出現,便會爆發一陣又一陣的歡呼。
「家人們還是太熱情了。」
儘管林立新有這個打算,但未來很長一段時間內,這裡估計都不會像洋館那樣作為旅遊資源開放。
畢竟不管是gamenova還是盧卡斯影業,每天都在這邊有大量的工作。
如果放這幫遊客登陸,那可真是個讓人頭疼的麻煩。
「以後有條件了還是得搬到火奴魯魯去……」
只可惜這次的項目規模太大,不然的話直接像寶可夢中心那樣,去夏威夷租一片區域開發就是了。
……
回到主島。
其中一座臨時工作區內。
一大捆線纜被束在一起,靠著牆邊繞出房間。
這些都是工作站的電源線和電話線以及特製的通信線纜。 用上了目前還在小規模試運行的adsl技術。
並排的一長串工作站上密密麻麻地貼滿了沖洗好的膠片照片。
一旁明顯是個『臨時會議室』的板子上也同樣滿是照片。
這裡是建模組的工作場地。
他們要負責根據攝製組現場取材到的照片建好整個世界的模型,同時還得要根據遊戲需要作出一定的修改。
畢竟幻想世界不是現實,尤其是這樣一部探索異世界的作品。
與其過度苛求寫實,倒不如做出些藝術性的妥協,以換取更棒的史詩感。
理察·范德·文德被任命為了建模三組的主管。
某種意義上也算是原班人馬了。
三組的主要工作就是為已經建好形的模型分配材質。
高光、反光質感、表面粗糙度、表面凹凸紋理等質感上的優化工作,都是這裡負責的。
幾台無人值守的工作站正在嗡嗡作響。 這些機器不比民用的個人電腦,發熱嚴重,必須要配備風扇進行主動散熱。
「林先生。」
理察見到林立新走進,停下手上的工作,主動上前道。
「嗯,我來看看渲染的情況。」
「是的先生,第一組圖片兩個小時前已經跑出來了,這一組的話大概……還得等明天。」
他來到渲染機前看了眼進度,簡單估算了一下時間。
別看這時間嚇人,但對於這個時代來說,簡直就是快得飛起。
放在過去的好萊塢,一張靜態幀只需要一晚上就能跑完,誰信?
說出來也會被人當成是在說夢話。
一晚上?
你怕是一不小心昏過去了一周。
但放在現在,這就是個事實了。 每台渲染機平均都能在幾個小時內完成一幀的渲染。
這麼多台加在一起,每隔幾個小時都能產出一批草稿。
要知道這玩意兒跑出來的可是640x480的超高清3d畫面。
還有電影級燈光和紋理呢。