第35章 遊戲引擎完成!轉職任務完成!

字數:9702   加入書籤

A+A-


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