第35章 遊戲引擎完成!轉職任務完成!
那麼說起遊戲引擎。
蘇硯承首先想到的,是上輩子看的遊戲製作類的網絡小說。
那小說里主角穿越到,遊戲發展落後的平行世界,但又總會有一款超強的萬能萬用的遊戲引擎。
只要有那個引擎,那麼製作人不需要會編程,也不需要製作兩年半……
就選擇一下類型,拖動一下素材,設定一下玩法和設計,外包下美術音樂的項目……
然後「叮」的一聲響,遊戲就美美出鍋了,跟微波爐里的預製菜似的。
那麼就好比物理學家們,都在試圖找到統一宇宙中所有基本物理力的理論,即萬物理論。
蘇硯承想做的,就是做出如萬物理論般的遊戲引擎!
強大!簡易!萬能!萬用!
幾乎要匹配所有的項目需求!
要擁有多種功能,適配所有的遊戲類型!
同時,還要兼顧極致的開發效率!
這註定不是一朝一夕能做出來的,在往後必當持續的投入人力、財力去進行疊代升級!
所以綜上,這說出來就感覺很異想天開。
但三十多年的功力,疊加系統增益!
令蘇硯承有了嘗試的勇氣。
而且他也不是要一次性就要把完整版的引擎給做出來。
他的目標是只是先做出一個基礎版本,只求能支撐《邊緣行者》的核心功能。
只不過,還要提前考慮未來……
所以他必須在這個基礎版本時,就以超強的遠見,以及高屋建瓴的眼光,並考慮到一切潛在的擴展可能。
在製作這個基礎版本時,就把框架給搭建好!
把這第一步,給走踏實了!
卻是窗外日月升落。
屋內早已不知春秋幾何。
蘇硯承只在感到疲憊時,感到思路被卡住時,才會起身。
【記住本站域名𝑇𝑊看書網→𝑠ℎ𝑢.𝑡𝑤】
喝一罐可樂,咬一口巧克力,望著窗外片刻。
隨後回到椅子上,望著電腦屏幕發呆。
屏幕上,密集的一行行代碼排列、延展……
如梯田層疊,又似長短管道,構建出名為「邏輯」的迷宮。
機箱「嗡嗡」作響。
散發的熱量升,甚至高了房間裡的溫度。
桌面在抖動,是蘇硯承在瘋狂抖腿。
「內存溢出……BSP樹優化……線性渲染……」
「臨時架構?兼容性?」
忽然,他宛若從夢中驚醒,狂吸一口氣,直起身子。
一把拉開抽屜,抓起根油性筆,先來到窗戶前。
整個人幾乎趴在上邊,開始書寫起複雜的函數與算法。
-----------------
樓下。
理察吃著昨晚剩下的披薩,一臉苦色。
「這已經是我第三天吃披薩了,明天你能不能換一個?」
渡邊攪著咖啡,面無表情:「這得看樓上那位明天會不會進食。」
「進食……你把他說得跟動物似的。」理察吐槽。
「動物至少會餓了就吃,所以不如懷疑他是某種外星生物。」渡邊說。
「嘶,話說我們要不要進去看看他,別兩周後聞見屍臭就晚了啊!」理察面色惶恐。
「不用,電錶還在走,說明我寫的自動關機程序沒有啟動,」
渡邊冷靜的語氣,「而且你看見窗外的算法了嗎?」
「哦,那原來是算法啊,什麼算法?」理察恍然大悟。
今早下樓丟垃圾的時候,就看見二樓窗戶上密密麻麻排列的大片數字、符號和公式。
「不知道,他在做的東西我已經看不懂了。」渡邊嘆氣。
「誒……我甚至連什麼是遊戲引擎都不懂。」理察也嘆氣。
渡邊放下咖啡杯,用看傻逼的眼神看他。
「你知道《Doom》嗎?」
「我怎麼可能不知道,id Software開發的遊戲,在美國超級火的!」理察小白說。
「那你又是否知道,業內公認的第一款真正的遊戲引擎,
就是該公司創始人人之一,天才程式設計師約翰·卡馬克,
他在開發《Doom》時用的Doom引擎。」
「誒,是嗎,那麼厲害?」
「在那之前,各家廠商做遊戲時,當然也要做自己的開發工具,」
渡邊開始科普,「比如給關卡設計師準備一些可以復用的素材,讓他們可以快速搭建。
只不過即便如此,那些遊戲的代碼,也都是一塊寫的。」
「什麼意思?」理察懵逼。
「意思就是,無論模型和貼圖,規則和玩法,渲染,物理引擎,輸入控制代碼……
無論底層還是上層,全都寫在一起,
結果寫出來,就跟一坨不可名狀之物似的。」
理察思考片刻,恍然大悟:「哦!意思就跟蓋房子似的,
以前的遊戲,就相當於從一整塊的方形大石頭外邊開鑿,
把房子一整個的,一點點的給鑿出來?」
「以你的智商,這樣理解也沒錯。」
「什麼叫以我的智商。」
「但這可不止以前的遊戲,現在的遊戲,除了少數幾個,也基本都是這麼做。」
渡邊喝了口咖啡,感慨的嘆息,「所以你可以理解為,
蘇硯承君現在的工作,就好比瓦特在改良蒸汽機,功在千秋!」
「是嗎?」理察怔住。
他從沒想過自己老闆居然正在做這麼偉大的事。
渡邊幽幽道:「所以,真是吾輩之楷模啊!」
-----------------
瓦特不瓦特的……
蘇硯承不知道,也不關心。
他現在坐回電腦前,只想到了農村亘古不變的兩件事。
養豬,和蓋房!
先說這養豬,可不簡單。
養過豬的都知道,有一種名詞:架子豬。
說的是生出來的小豬在入欄以後,一到兩個月的時間,得先讓它把架子長出來。
所以得先讓它斷奶,然後搭配一定量高蛋白的精飼料,再一點點添加青飼料。
讓他迅速長骨骼,長肌肉,迅速增重,但就是不長膘。
這時候的豬身材苗條,屁股不圓,膀子也不粗,身形矯健,可見肋條。
甚至能飛出欄滿山溜達,難拉得很!
看上去沒有一上來就乖乖吃胖的豬好,是吧?
但別急,等農時一到,紅薯和玉米收穫了,再把這些碳水餵給架子豬。
豬哥們整天運動量那麼大,可不得吭哧吭哧,恨不得連豬食槽都給你舔薄了!
然後不出兩三天,架子豬就跟吹氣球似的,一整隻的胖起來。
膀大臀圓,鼓鼓囊囊的,渾身上下都是膘!
豬頭跟豬身長成一根肥柱,那小眼睛都擠到肥肉里,連腮幫子都看不見!
而和架子豬相對的,就是僵豬。
上來架子沒長好,吃得多,但肉掛不住。
所以這都跟蘇硯承做遊戲引擎有什麼關係?
那蘇硯承想做的引擎,就是架子豬。
誒,一上來不急著吃胖,先把架子給搭好了,把底層框架給夯實了!
這樣等以後資金、人力和腦力一注入,那就跟架子豬似的,瞬間就鼓脹起來!
那麼架子該怎麼搭呢?
這就要說到蓋房子。
蘇硯承不能上來就蓋豪華別墅,摩天大樓。
而是先搭一個能住的,能改的,未來還能擴成高樓的「小平房」。
這樣每一步,都為以後「架子豬長肉」留足空間。
所以上來。
先打地基,然後搭一個能住人的簡架。
而這地基,就是最底層的硬體抽象層。
簡單來說,是為了
這年頭的硬體,無論顯卡還是音效卡都五花八門的,好比房子裡的各種老水管和新水管。
而蘇硯承在這一層要做的,就是做出個「水電總開關」。
為了做出來的遊戲能適配不同電腦,避免遊戲只能在特定機型上運行。
把不同顯卡的畫圖功能、不同音效卡的發聲功能……
都統一成「按下開關就出水通電」的簡單操作。
這樣的話,不同電腦里,不管是老顯卡還是新顯卡。
像要畫一個大衛的義體,都只需要在引擎里朝電腦一句「畫個精靈」……
那底層就會自己適配硬體。
同時,要是以後出了新的硬體,也不用砸地基重新布置。
只需要給「總開關」加個新接口就行!
那地基打好了。
下一步就是搭架子,建房梁,砌高牆,裝窗戶。
也就是所謂的渲染。
現實里,動畫能播放的原因,是一張一張,一幀一幀的圖片快速翻動的效果。
那麼在電腦里,蘇硯承要做的,就是讓電腦代替「手翻紙」,自動把這些「畫」按順序的,按位置的,畫到屏幕上。
從而實現「播放」的效果。
同時為了解決畫快、畫對、不卡的問題。
再嵌入之前做《松子的一生》時就用到的,諸如預加載、雙緩衝之類優化模塊。
「偽3D的功能也要加上!」
「真3D的擴展也要預留!」
蘇硯承十指如飛,字符似春洪奔瀉。
「然後記得一定要寫上注釋,這樣以後改的時候,就知道這串是幹嘛的了!」
「嗯,不僅造福後世程式設計師,也方便我自己!」
好的,架子,梁子,和牆都搭好了!
那麼下一步呢?
下一步,就是做一個房子裡的儲物間!
也就是資源管理器。
把圖片、模型、音效……這些素材,經過壓縮之後,全都放進去。
要用的時候再拿出來,這樣不僅提高了效率,還減少了空間!
到這裡,地基和架子梁子和牆都有,「小平房」算是基本已經完成搭建。
但距離住人還很遙遠。
所以蘇硯承又短暫的進行了休息,起來補充補充能量。
久違的開門,吃了點熱的披薩。
「話說……凌晨四點了,披薩居然還是熱的嗎?」
所以那哥倆每隔一段時間就去幫他熱吃得,生怕餵著涼的給他。
蘇硯承肚子和心裡都暖暖的。
動力又更足了!
「好的,下一步,一次性完成!」
接下來,蘇硯承要做的就是「屋子」里的事了。
俗稱裝修。
現在小平房是能住了,但想加陽台、裝熱水器怎麼辦……
所以蘇硯承要提前就預留「接口」!
「嗯,這裡能加功能。」
「這裡可以添加插件。」
「這裡能修改框架!」
「搞定!」
這樣以後想要升級,那麼就不需要重構底層代碼,不用把牆和地基給砸了。
「然後……就是腳本解釋器!」
「劇情的播放和人物對話,不用改代碼,直接寫個腳本就行。」
「再就是是地圖編輯器……動畫編輯器!」
又是時間流逝,日月交替,不知時日。
蘇硯承滿臉胡茬,頭髮油亂,眼眶發黑。
他甚至開始自己和自己對話,以一種超凡入定的狀態,進行工作。
等把這次遊戲項目中,可能用到的功能都想到,都加上後。
引擎的開發,終於進入了最後一個階段!
優化,和兼容!
在技能強大的加持下。
他用彙編語言重寫引擎的核心部分,綜合了上輩子知道的各種優化經驗!
最終讓一段「大衛走路」的幀率,在PC端也能維持流暢的運行,且沒有卡頓。
最後的最後,再考慮到,要讓引擎適配未來各種顯卡、音效卡和主機平台……
「噠噠噠噠!」
「啪!」
蘇硯承形似癲狂,重重敲下回車。
屏幕上,萬千字符瞬間如春洪奔瀉,流暢無阻。
「腳本運行正常,兼容沒有問題!」
蘇硯承長長吁氣,渾身沉重而微顫,腦袋漸漸後仰,閉上了雙眸。
「終於……完成了!」
這一刻,他的靈魂似乎已經沉寂,只剩下身體正在關機。
下一個瞬間,仿佛就會徹底睡死過去。
「嗯?」
但忽然,神經如被電擊。
蘇硯承猛地直起身子,迴光返照般回到屏幕前。
「臥槽,差點忘了!」
「備份備份!」
「……」
做完這最後一步。
他好像死了。
也沒有聽見睡死前,系統的清脆一聲。
【叮!】
【檢測到相關程序……】
【遊戲引擎驗收中……】
【驗收完畢,引擎完成度:95%,已合格】
【轉職任務完成!】
【鎖定職業路線:圖形術士+數據鍊金師】
【基於職業路線,發放轉職任務獎勵……】
蘇硯承首先想到的,是上輩子看的遊戲製作類的網絡小說。
那小說里主角穿越到,遊戲發展落後的平行世界,但又總會有一款超強的萬能萬用的遊戲引擎。
只要有那個引擎,那麼製作人不需要會編程,也不需要製作兩年半……
就選擇一下類型,拖動一下素材,設定一下玩法和設計,外包下美術音樂的項目……
然後「叮」的一聲響,遊戲就美美出鍋了,跟微波爐里的預製菜似的。
那麼就好比物理學家們,都在試圖找到統一宇宙中所有基本物理力的理論,即萬物理論。
蘇硯承想做的,就是做出如萬物理論般的遊戲引擎!
強大!簡易!萬能!萬用!
幾乎要匹配所有的項目需求!
要擁有多種功能,適配所有的遊戲類型!
同時,還要兼顧極致的開發效率!
這註定不是一朝一夕能做出來的,在往後必當持續的投入人力、財力去進行疊代升級!
所以綜上,這說出來就感覺很異想天開。
但三十多年的功力,疊加系統增益!
令蘇硯承有了嘗試的勇氣。
而且他也不是要一次性就要把完整版的引擎給做出來。
他的目標是只是先做出一個基礎版本,只求能支撐《邊緣行者》的核心功能。
只不過,還要提前考慮未來……
所以他必須在這個基礎版本時,就以超強的遠見,以及高屋建瓴的眼光,並考慮到一切潛在的擴展可能。
在製作這個基礎版本時,就把框架給搭建好!
把這第一步,給走踏實了!
卻是窗外日月升落。
屋內早已不知春秋幾何。
蘇硯承只在感到疲憊時,感到思路被卡住時,才會起身。
【記住本站域名𝑇𝑊看書網→𝑠ℎ𝑢.𝑡𝑤】
喝一罐可樂,咬一口巧克力,望著窗外片刻。
隨後回到椅子上,望著電腦屏幕發呆。
屏幕上,密集的一行行代碼排列、延展……
如梯田層疊,又似長短管道,構建出名為「邏輯」的迷宮。
機箱「嗡嗡」作響。
散發的熱量升,甚至高了房間裡的溫度。
桌面在抖動,是蘇硯承在瘋狂抖腿。
「內存溢出……BSP樹優化……線性渲染……」
「臨時架構?兼容性?」
忽然,他宛若從夢中驚醒,狂吸一口氣,直起身子。
一把拉開抽屜,抓起根油性筆,先來到窗戶前。
整個人幾乎趴在上邊,開始書寫起複雜的函數與算法。
-----------------
樓下。
理察吃著昨晚剩下的披薩,一臉苦色。
「這已經是我第三天吃披薩了,明天你能不能換一個?」
渡邊攪著咖啡,面無表情:「這得看樓上那位明天會不會進食。」
「進食……你把他說得跟動物似的。」理察吐槽。
「動物至少會餓了就吃,所以不如懷疑他是某種外星生物。」渡邊說。
「嘶,話說我們要不要進去看看他,別兩周後聞見屍臭就晚了啊!」理察面色惶恐。
「不用,電錶還在走,說明我寫的自動關機程序沒有啟動,」
渡邊冷靜的語氣,「而且你看見窗外的算法了嗎?」
「哦,那原來是算法啊,什麼算法?」理察恍然大悟。
今早下樓丟垃圾的時候,就看見二樓窗戶上密密麻麻排列的大片數字、符號和公式。
「不知道,他在做的東西我已經看不懂了。」渡邊嘆氣。
「誒……我甚至連什麼是遊戲引擎都不懂。」理察也嘆氣。
渡邊放下咖啡杯,用看傻逼的眼神看他。
「你知道《Doom》嗎?」
「我怎麼可能不知道,id Software開發的遊戲,在美國超級火的!」理察小白說。
「那你又是否知道,業內公認的第一款真正的遊戲引擎,
就是該公司創始人人之一,天才程式設計師約翰·卡馬克,
他在開發《Doom》時用的Doom引擎。」
「誒,是嗎,那麼厲害?」
「在那之前,各家廠商做遊戲時,當然也要做自己的開發工具,」
渡邊開始科普,「比如給關卡設計師準備一些可以復用的素材,讓他們可以快速搭建。
只不過即便如此,那些遊戲的代碼,也都是一塊寫的。」
「什麼意思?」理察懵逼。
「意思就是,無論模型和貼圖,規則和玩法,渲染,物理引擎,輸入控制代碼……
無論底層還是上層,全都寫在一起,
結果寫出來,就跟一坨不可名狀之物似的。」
理察思考片刻,恍然大悟:「哦!意思就跟蓋房子似的,
以前的遊戲,就相當於從一整塊的方形大石頭外邊開鑿,
把房子一整個的,一點點的給鑿出來?」
「以你的智商,這樣理解也沒錯。」
「什麼叫以我的智商。」
「但這可不止以前的遊戲,現在的遊戲,除了少數幾個,也基本都是這麼做。」
渡邊喝了口咖啡,感慨的嘆息,「所以你可以理解為,
蘇硯承君現在的工作,就好比瓦特在改良蒸汽機,功在千秋!」
「是嗎?」理察怔住。
他從沒想過自己老闆居然正在做這麼偉大的事。
渡邊幽幽道:「所以,真是吾輩之楷模啊!」
-----------------
瓦特不瓦特的……
蘇硯承不知道,也不關心。
他現在坐回電腦前,只想到了農村亘古不變的兩件事。
養豬,和蓋房!
先說這養豬,可不簡單。
養過豬的都知道,有一種名詞:架子豬。
說的是生出來的小豬在入欄以後,一到兩個月的時間,得先讓它把架子長出來。
所以得先讓它斷奶,然後搭配一定量高蛋白的精飼料,再一點點添加青飼料。
讓他迅速長骨骼,長肌肉,迅速增重,但就是不長膘。
這時候的豬身材苗條,屁股不圓,膀子也不粗,身形矯健,可見肋條。
甚至能飛出欄滿山溜達,難拉得很!
看上去沒有一上來就乖乖吃胖的豬好,是吧?
但別急,等農時一到,紅薯和玉米收穫了,再把這些碳水餵給架子豬。
豬哥們整天運動量那麼大,可不得吭哧吭哧,恨不得連豬食槽都給你舔薄了!
然後不出兩三天,架子豬就跟吹氣球似的,一整隻的胖起來。
膀大臀圓,鼓鼓囊囊的,渾身上下都是膘!
豬頭跟豬身長成一根肥柱,那小眼睛都擠到肥肉里,連腮幫子都看不見!
而和架子豬相對的,就是僵豬。
上來架子沒長好,吃得多,但肉掛不住。
所以這都跟蘇硯承做遊戲引擎有什麼關係?
那蘇硯承想做的引擎,就是架子豬。
誒,一上來不急著吃胖,先把架子給搭好了,把底層框架給夯實了!
這樣等以後資金、人力和腦力一注入,那就跟架子豬似的,瞬間就鼓脹起來!
那麼架子該怎麼搭呢?
這就要說到蓋房子。
蘇硯承不能上來就蓋豪華別墅,摩天大樓。
而是先搭一個能住的,能改的,未來還能擴成高樓的「小平房」。
這樣每一步,都為以後「架子豬長肉」留足空間。
所以上來。
先打地基,然後搭一個能住人的簡架。
而這地基,就是最底層的硬體抽象層。
簡單來說,是為了
這年頭的硬體,無論顯卡還是音效卡都五花八門的,好比房子裡的各種老水管和新水管。
而蘇硯承在這一層要做的,就是做出個「水電總開關」。
為了做出來的遊戲能適配不同電腦,避免遊戲只能在特定機型上運行。
把不同顯卡的畫圖功能、不同音效卡的發聲功能……
都統一成「按下開關就出水通電」的簡單操作。
這樣的話,不同電腦里,不管是老顯卡還是新顯卡。
像要畫一個大衛的義體,都只需要在引擎里朝電腦一句「畫個精靈」……
那底層就會自己適配硬體。
同時,要是以後出了新的硬體,也不用砸地基重新布置。
只需要給「總開關」加個新接口就行!
那地基打好了。
下一步就是搭架子,建房梁,砌高牆,裝窗戶。
也就是所謂的渲染。
現實里,動畫能播放的原因,是一張一張,一幀一幀的圖片快速翻動的效果。
那麼在電腦里,蘇硯承要做的,就是讓電腦代替「手翻紙」,自動把這些「畫」按順序的,按位置的,畫到屏幕上。
從而實現「播放」的效果。
同時為了解決畫快、畫對、不卡的問題。
再嵌入之前做《松子的一生》時就用到的,諸如預加載、雙緩衝之類優化模塊。
「偽3D的功能也要加上!」
「真3D的擴展也要預留!」
蘇硯承十指如飛,字符似春洪奔瀉。
「然後記得一定要寫上注釋,這樣以後改的時候,就知道這串是幹嘛的了!」
「嗯,不僅造福後世程式設計師,也方便我自己!」
好的,架子,梁子,和牆都搭好了!
那麼下一步呢?
下一步,就是做一個房子裡的儲物間!
也就是資源管理器。
把圖片、模型、音效……這些素材,經過壓縮之後,全都放進去。
要用的時候再拿出來,這樣不僅提高了效率,還減少了空間!
到這裡,地基和架子梁子和牆都有,「小平房」算是基本已經完成搭建。
但距離住人還很遙遠。
所以蘇硯承又短暫的進行了休息,起來補充補充能量。
久違的開門,吃了點熱的披薩。
「話說……凌晨四點了,披薩居然還是熱的嗎?」
所以那哥倆每隔一段時間就去幫他熱吃得,生怕餵著涼的給他。
蘇硯承肚子和心裡都暖暖的。
動力又更足了!
「好的,下一步,一次性完成!」
接下來,蘇硯承要做的就是「屋子」里的事了。
俗稱裝修。
現在小平房是能住了,但想加陽台、裝熱水器怎麼辦……
所以蘇硯承要提前就預留「接口」!
「嗯,這裡能加功能。」
「這裡可以添加插件。」
「這裡能修改框架!」
「搞定!」
這樣以後想要升級,那麼就不需要重構底層代碼,不用把牆和地基給砸了。
「然後……就是腳本解釋器!」
「劇情的播放和人物對話,不用改代碼,直接寫個腳本就行。」
「再就是是地圖編輯器……動畫編輯器!」
又是時間流逝,日月交替,不知時日。
蘇硯承滿臉胡茬,頭髮油亂,眼眶發黑。
他甚至開始自己和自己對話,以一種超凡入定的狀態,進行工作。
等把這次遊戲項目中,可能用到的功能都想到,都加上後。
引擎的開發,終於進入了最後一個階段!
優化,和兼容!
在技能強大的加持下。
他用彙編語言重寫引擎的核心部分,綜合了上輩子知道的各種優化經驗!
最終讓一段「大衛走路」的幀率,在PC端也能維持流暢的運行,且沒有卡頓。
最後的最後,再考慮到,要讓引擎適配未來各種顯卡、音效卡和主機平台……
「噠噠噠噠!」
「啪!」
蘇硯承形似癲狂,重重敲下回車。
屏幕上,萬千字符瞬間如春洪奔瀉,流暢無阻。
「腳本運行正常,兼容沒有問題!」
蘇硯承長長吁氣,渾身沉重而微顫,腦袋漸漸後仰,閉上了雙眸。
「終於……完成了!」
這一刻,他的靈魂似乎已經沉寂,只剩下身體正在關機。
下一個瞬間,仿佛就會徹底睡死過去。
「嗯?」
但忽然,神經如被電擊。
蘇硯承猛地直起身子,迴光返照般回到屏幕前。
「臥槽,差點忘了!」
「備份備份!」
「……」
做完這最後一步。
他好像死了。
也沒有聽見睡死前,系統的清脆一聲。
【叮!】
【檢測到相關程序……】
【遊戲引擎驗收中……】
【驗收完畢,引擎完成度:95%,已合格】
【轉職任務完成!】
【鎖定職業路線:圖形術士+數據鍊金師】
【基於職業路線,發放轉職任務獎勵……】