帝都的風雪還沒停。
林希拍掉肩頭的雪,推開738廠臨時研發室的木門。
研發室原先是個雜物間。
六個煤球爐子燒得通紅,屋裡熱氣撲面。
十幾名年輕人擠在裡面,汗味、煤煙味、焊錫味混在一起,嗆得人嗓子發緊。
人群中央,一台14寸彩電擺在鋪著綠呢子的工作檯上。
屏幕上色塊閃爍。
旁邊裸露的PCB板上,飛線密密麻麻,像蜘蛛織了半張網。
「動了動了!」
「右邊那台坦克出來了!」
「往左打!」
101看書 看書首選 101 看書網,101𝓀𝓀𝓈.𝓬𝓸𝓂超給力 全手打無錯站
「快開炮!」
滿屋子的大學生拍著桌子大呼小叫,跟打仗似的。
看到林希進門,領頭的平頭青年趕緊擠出來。
他黑眼圈重得像挨了兩拳,可眼睛亮得嚇人。
這是燕大計算機系的尖子生,李建新。
「林總!」
他遞過來一個長方形硬塑料手柄。
這是林希托華閏特意從櫻花國買回來的。
李建新聲音里壓著興奮:
「咱們花了一個禮拜,把《坦克大戰》的底子敲出來了。」
「您給掌掌眼!」
林希脫下大衣,沒客套。
他直接拉開摺疊椅坐下,接過手柄。
腦海里,彈幕已經開始飄了。
【臥槽這畫面……說是坦克大戰,我真沒認出來。】
【這畫面,有點抽象啊!】
【別鬧,83年的8位機能有畫面就不錯了,你還想要虛幻5?】
【重點是這幫人一個禮拜就把雛形敲出來了!83年的大學生什麼含金量啊!】
林希沒說話,大拇指按在方向鍵上。
屏幕上,由黃色方塊拼成的粗糙坦克開始移動。
他往前推。
坦克動了。
猛地鬆手。
坦克卻像在冰面上踩剎車,又往前滑了半個身位才停下。
林希調轉車頭,試圖貼著屏幕邊緣的磚牆走。
坦克剛蹭到牆皮,畫面猛地一頓。
方向鍵失靈。
屏幕足足凍了兩秒。
下一刻,坦克在原地抽搐了幾下,竟然彈到了牆的另一邊。
林希又連按兩下開火鍵。
「啵——啵——」
電視喇叭里傳出沉悶的電子音。
一個白色小點慢悠悠飄出去,打在土牆上。
停了半秒。
牆才缺了一塊。
沒有爆炸,沒有火花,小點就這麼沒了。
屋裡安靜了三秒。
腦海里彈幕瞬間炸了。
【好傢夥,這祖傳畫質,包漿都盤出來了。】
【這手感看著都急,坦克擱這溜冰呢?】
【貼牆卡死,開炮延遲。賣北美能被雅達利玩家罵到退錢。】
【這不是坦克大戰,這是坦克散步。】
林希放下手柄。
研發室里的熱鬧勁兒,肉眼可見地矮了半截。
他轉頭看向李建新:
「說說,問題在哪。」
李建新臉一下漲紅了。
他快步走到黑板前,拿粉筆敲著流程圖,語速很快:
「林總,真不是代碼糙。」
「是這塊8位晶片算力太低。」
「主要問題在碰撞判定。」
「我們現在是逐像素掃描。」
「坦克每走一步,就拿它覆蓋的256個像素點,跟周圍障礙物逐一比對。」
「Z80主頻只有3.5兆赫茲。」
「一秒要刷新六十次畫面,還得算敵方坦克。」
「運算量一上來,幀率直接掉到個位數。」
他攥著手裡的方格紙,聲音里透著不甘:
「我試過降低判定頻率,四幀算一次。」
「結果坦克直接穿牆。」
「貼牆卡死,也是因為算力被吃滿了。」
「這是物理算力極限,真沒法改了。」
旁邊幾個學生跟著點頭。
在他們的認知里,模型越完整,邏輯越嚴謹。
至於機器跑不跑得動?
那當然是機器的問題。
林希看著黑板上密密麻麻的算法草稿。
思路清晰。
也確實嚴謹。
但嚴謹不等於好用。
在課本上,這是標準答案。
在工程里,這是拿榔頭擰螺絲。
「讓開。」
李建新愣了一下,下意識讓開半步。
林希掃了一眼代碼筆記,坐到開發機前。
「你們的思路沒問題。」
「但代碼不是這麼寫的。」
他拿起粉筆,在黑板上畫了個不規則的坦克輪廓。
「你們現在算每一個像素。」
「可玩家看不到像素。」
說著,他乾脆利落地在坦克外面畫了一個長方形方框。
「給每個物體包一個看不見的矩形邊界。」
「在電腦里,它就是四個數。」
「X1,Y1,X2,Y2。」
「牆壁也一樣。」
林希用粉筆敲了敲黑板:
「判定碰撞時,不比像素。」
「只比這四個坐標。」
「X軸有沒有重疊?」
「Y軸有沒有重疊?」
「都有,就是撞了。」
「兩次比較,一次加減,完事。」
「這叫碰撞箱。」
屋子裡瞬間靜了。
李建新半張著嘴。
腦子裡像被人敲了一錘。
不用算幾百個像素?
只算四個坐標?
「兩次?」
他聲音有點發乾。
林希看他一眼。
「兩次。」
他轉回身,雙手壓上鍵盤。
每一下敲擊,都像敲在李建新的心口上。
屏幕上,幾百行臃腫的像素判定代碼被刪掉。
彙編指令一行行跳出來。
……
林希沒有重寫全部程序。
他只把最吃算力的核心判定剜了出來,換成一段乾淨到近乎寒酸的邏輯。
不到兩分鐘。
核心邏輯十七行。
連注釋都沒寫。
「編譯,運行。」
林希按下回車,把手柄丟給李建新。
畫面刷新。
李建新咽了口唾沫,大拇指按下方向鍵。
坦克啟動。
沒有延遲。
鬆手。
穩穩停住。
一毫米都沒多滑。
他死死貼住磚牆往上推搖杆。
黃色坦克順著牆根往上走,絲滑得像抹了油。
不卡頓。
不穿牆。
他猛按開炮鍵。
「砰砰砰!」
三發炮彈幾乎沒有延遲,乾淨利落地砸穿磚牆。
監控數據上,算力占用瞬間降了三成。
李建新僵在原地。
周圍幾個學生看看屏幕,又看看黑板上的方框。
沒人說話。
困擾他們五天五夜的「物理極限」,被四個坐標點干碎了。
直播間彈幕滾動起來:
【我去,碰撞箱!AABB碰撞箱!】
【這玩意兒後世是遊戲引擎第一課,但在83年……他們連遊戲引擎都沒聽過。】
【主播這是拿三十年後的行業共識,降維打擊八十年代萌新啊。】
【工業設計第一法則:能偷懶絕不硬算!】