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