第424章 碰撞箱

投票推薦 加入書籤 小說報錯

  帝都的風雪還沒停。

  林希拍掉肩頭的雪,推開738廠臨時研發室的木門。

  研發室原先是個雜物間。

  六個煤球爐子燒得通紅,屋裡熱氣撲面。

  十幾名年輕人擠在裡面,汗味、煤煙味、焊錫味混在一起,嗆得人嗓子發緊。

  人群中央,一台14寸彩電擺在鋪著綠呢子的工作檯上。

  屏幕上色塊閃爍。

  旁邊裸露的PCB板上,飛線密密麻麻,像蜘蛛織了半張網。

  「動了動了!」

  「右邊那台坦克出來了!」

  「往左打!」

  「快開炮!」

  滿屋子的大學生拍著桌子大呼小叫,跟打仗似的。

  看到林希進門,領頭的平頭青年趕緊擠出來。

  他黑眼圈重得像挨了兩拳,可眼睛亮得嚇人。

  這是燕大計算機系的尖子生,李建新。

  「林總!」

  他遞過來一個長方形硬塑料手柄。

  這是林希托華閏特意從櫻花國買回來的。

  李建新聲音里壓著興奮:

  「咱們花了一個禮拜,把《坦克大戰》的底子敲出來了。」

  「您給掌掌眼!」

  林希脫下大衣,沒客套。

  本書首發 TW 看書網超貼心,𝙨𝙝𝙪.𝙩𝙬等你讀 ,提供給你無錯章節,無亂序章節的閱讀體驗

  他直接拉開摺疊椅坐下,接過手柄。

  腦海里,彈幕已經開始飄了。

  【臥槽這畫面……說是坦克大戰,我真沒認出來。】

  【這畫面,有點抽象啊!】

  【別鬧,83年的8位機能有畫面就不錯了,你還想要虛幻5?】

  【重點是這幫人一個禮拜就把雛形敲出來了!83年的大學生什麼含金量啊!】

  林希沒說話,大拇指按在方向鍵上。

  屏幕上,由黃色方塊拼成的粗糙坦克開始移動。

  他往前推。

  坦克動了。

  猛地鬆手。

  坦克卻像在冰面上踩剎車,又往前滑了半個身位才停下。

  林希調轉車頭,試圖貼著屏幕邊緣的磚牆走。

  坦克剛蹭到牆皮,畫面猛地一頓。

  方向鍵失靈。

  屏幕足足凍了兩秒。

  下一刻,坦克在原地抽搐了幾下,竟然彈到了牆的另一邊。

  林希又連按兩下開火鍵。

  「啵——啵——」

  電視喇叭里傳出沉悶的電子音。

  一個白色小點慢悠悠飄出去,打在土牆上。

  停了半秒。

  牆才缺了一塊。

  沒有爆炸,沒有火花,小點就這麼沒了。

  屋裡安靜了三秒。

  腦海里彈幕瞬間炸了。

  【好傢夥,這祖傳畫質,包漿都盤出來了。】

  【這手感看著都急,坦克擱這溜冰呢?】

  【貼牆卡死,開炮延遲。賣北美能被雅達利玩家罵到退錢。】

  【這不是坦克大戰,這是坦克散步。】

  林希放下手柄。

  研發室里的熱鬧勁兒,肉眼可見地矮了半截。

  他轉頭看向李建新:

  「說說,問題在哪。」

  李建新臉一下漲紅了。

  他快步走到黑板前,拿粉筆敲著流程圖,語速很快:

  「林總,真不是代碼糙。」

  「是這塊8位晶片算力太低。」

  「主要問題在碰撞判定。」

  「我們現在是逐像素掃描。」

  「坦克每走一步,就拿它覆蓋的256個像素點,跟周圍障礙物逐一比對。」

  「Z80主頻只有3.5兆赫茲。」

  「一秒要刷新六十次畫面,還得算敵方坦克。」

  「運算量一上來,幀率直接掉到個位數。」

  他攥著手裡的方格紙,聲音里透著不甘:

  「我試過降低判定頻率,四幀算一次。」

  「結果坦克直接穿牆。」

  「貼牆卡死,也是因為算力被吃滿了。」

  「這是物理算力極限,真沒法改了。」

  旁邊幾個學生跟著點頭。

  在他們的認知里,模型越完整,邏輯越嚴謹。

  至於機器跑不跑得動?

  那當然是機器的問題。

  林希看著黑板上密密麻麻的算法草稿。

  思路清晰。

  也確實嚴謹。

  但嚴謹不等於好用。

  在課本上,這是標準答案。

  在工程里,這是拿榔頭擰螺絲。

  「讓開。」

  李建新愣了一下,下意識讓開半步。

  林希掃了一眼代碼筆記,坐到開發機前。

  「你們的思路沒問題。」

  「但代碼不是這麼寫的。」

  他拿起粉筆,在黑板上畫了個不規則的坦克輪廓。

  「你們現在算每一個像素。」

  「可玩家看不到像素。」

  說著,他乾脆利落地在坦克外面畫了一個長方形方框。

  「給每個物體包一個看不見的矩形邊界。」

  「在電腦里,它就是四個數。」

  「X1,Y1,X2,Y2。」

  「牆壁也一樣。」

  林希用粉筆敲了敲黑板:

  「判定碰撞時,不比像素。」

  「只比這四個坐標。」

  「X軸有沒有重疊?」

  「Y軸有沒有重疊?」

  「都有,就是撞了。」

  「兩次比較,一次加減,完事。」

  「這叫碰撞箱。」

  屋子裡瞬間靜了。

  李建新半張著嘴。

  腦子裡像被人敲了一錘。

  不用算幾百個像素?

  只算四個坐標?

  「兩次?」

  他聲音有點發乾。

  林希看他一眼。

  「兩次。」

  他轉回身,雙手壓上鍵盤。

  每一下敲擊,都像敲在李建新的心口上。

  屏幕上,幾百行臃腫的像素判定代碼被刪掉。

  彙編指令一行行跳出來。

  ……

  林希沒有重寫全部程序。

  他只把最吃算力的核心判定剜了出來,換成一段乾淨到近乎寒酸的邏輯。

  不到兩分鐘。

  核心邏輯十七行。

  連注釋都沒寫。

  「編譯,運行。」

  林希按下回車,把手柄丟給李建新。

  畫面刷新。

  李建新咽了口唾沫,大拇指按下方向鍵。

  坦克啟動。

  沒有延遲。

  鬆手。

  穩穩停住。

  一毫米都沒多滑。

  他死死貼住磚牆往上推搖杆。

  黃色坦克順著牆根往上走,絲滑得像抹了油。

  不卡頓。

  不穿牆。

  他猛按開炮鍵。

  「砰砰砰!」

  三發炮彈幾乎沒有延遲,乾淨利落地砸穿磚牆。

  監控數據上,算力占用瞬間降了三成。

  李建新僵在原地。

  周圍幾個學生看看屏幕,又看看黑板上的方框。

  沒人說話。

  困擾他們五天五夜的「物理極限」,被四個坐標點干碎了。

  直播間彈幕滾動起來:

  【我去,碰撞箱!AABB碰撞箱!】

  【這玩意兒後世是遊戲引擎第一課,但在83年……他們連遊戲引擎都沒聽過。】

  【主播這是拿三十年後的行業共識,降維打擊八十年代萌新啊。】

  【工業設計第一法則:能偷懶絕不硬算!】


章節目錄