[閒聊] 雷神之鎚某段程式碼傳承20年仍在作用

作者: whe84311 (Rainsa)   2021-07-22 19:29:20
在Reddit論壇上,一名玩家最近偶然發現了《戰慄時空》系列裡的燈光閃爍頻率有種奇怪的既視感,23年前的初代《戰慄時空》裡的燈光,居然和2020年誕生的《戰慄時空:艾莉克絲》有著同樣的閃爍頻率。
這名資深玩家立即意識到了事情的有趣之處,如果這不是什麼彩蛋(經過驗證後確實不是),那只能解釋為製作方的無心之舉,如果是無心之舉,那就意味著V社將一條放了20多年的程式碼搬到了新遊戲上。
之後,有人發現了更戲劇的內容:這串程式碼不僅歷史悠久,甚至還見證了V社的遊戲歷史。因為除了能在戰慄時空全系列中找到相同的燈光場景,在V社的另一個知名系列《傳送門》裡,也有不少類似景象。
這名玩家順藤摸瓜,最後找到了這個場景的源頭——1996年發售的經典FPS遊戲《雷神之鎚》。
《雷神之鎚》《戰慄時空》《戰慄時空2》和《傳送門》,將四個場景放到一塊後,雖然發光的設備不同,但可以很明顯地看出它們維持著相同的閃爍頻率。
在仔細研究了戰慄時空已經開源的程式碼後,另一位玩家給出了相對合理的解釋。V社自初代《戰慄時空》誕生以來,一直使用26個字母來表示燈光的明暗程度,字母「a」代表完全熄滅,「Z」則表示最大亮度。
而在這些遊戲的源程式碼中,都能找到一條
「mmamammmmmammamamaaamammma」的程式碼,註釋也正好是「燈光閃爍」
所以在這20年的開發歷史中,凡是涉及到需要「燈光閃爍」的場景,V社基本就是從原先的程式碼資料庫中復製貼上,這才有了「祖傳程式碼」的說法,但真要細究,可能這段程式碼也不能算在V社的頭上。
最早出現這個場景的是《雷神之鎚》,這是id Software的創始人約翰·卡馬克利用同名引擎Quake製作的FPS遊戲,而隨後的初代《戰慄時空》也同樣基於該引擎的改良版開發而成。
於是一代傳一代,最終造就了一段「祖傳程式碼」,這也正好印證了編程領域的一句名言:永遠不要重複造輪子。
仔細想想,這也算是個製作組無意中留下的彩蛋了,發現這個秘密的玩家最後感慨道:「現在當我看到這個不規則閃爍的燈光,我就好奇還能在多少遊戲中看到這個場景。」
https://www.techbang.com/posts/88570-game-code-20years
作者: aya16810 (深紅眼鏡)   2021-07-22 19:31:00
看過比較影片真的一模一樣
作者: HELLDIVER (Ζzz...)   2021-07-22 19:32:00
祖傳秘方
作者: dannyko (dannyko)   2021-07-22 19:33:00
當你在論文寫了Bob和Alice 可能也會改變一切
作者: npc776 (二次元居民)   2021-07-22 19:33:00
(╮′_>`)<我以為你要說那個3D繪圖運算的神之常數
作者: r85270607 (DooMguy)   2021-07-22 19:34:00
傳家閃光
作者: kaj1983   2021-07-22 19:34:00
這種特效不會變的複製貼上很合理不是?
作者: ZooseWu (N5)   2021-07-22 19:35:00
作者: gcobc12632 (Ted)   2021-07-22 19:38:00
還以為是說反平方根快速演算法
作者: jojojen (JJJ)   2021-07-22 19:39:00
弱 台灣傳產一堆系統直接傳承2X年
作者: amkust (社會新手)   2021-07-22 19:40:00
樓上這個也是傳承2X年了啊
作者: ab37695543xs (bill_kotori)   2021-07-22 19:43:00
我也以為是反平方根
作者: GelBanana (膠蕉)   2021-07-22 19:57:00
coding日常 貼來貼去
作者: x94fujo6   2021-07-22 19:57:00
臨(ㄩㄥˇ)時(ㄐㄧㄡˇ)解法
作者: BSpowerx (B.S)   2021-07-22 20:04:00
越厲害的工程師越不用寫程式
作者: spfy (spfy)   2021-07-22 21:02:00
身為一個工程師 能複製絕對不自己寫
作者: erisiss0 (965005)   2021-07-22 21:10:00
祖傳燈泡閃爍,20年如一日其實這很正常,都有現成的幹麻刻意重作對吧
作者: tim800224 (西村アクジ)   2021-07-22 21:22:00
約翰卡馬克永遠的神

Links booklink

Contact Us: admin [ a t ] ucptt.com