首頁 遊戲資訊 玩家發現了一條V社反復用了...

玩家發現了一條V社反復用了20年的祖傳代碼

有句老話說的好:「要是你的代碼還能用,就別去碰它。」最近,一條沿用了20多年的「祖傳代碼」,讓V社成了這句話最忠實的踐行者。

在Reddit論壇上,一名用戶最近偶然發現了《戰慄時空》系列里的燈光閃爍頻率有種奇怪的既視感:

注意到了嗎?23年前的初代《戰慄時空》里的燈光,居然和2020年誕生的《戰慄時空愛莉克斯》有著同樣的閃爍頻率。

這名資深玩家立即意識到了事情的有趣之處,如果這不是什麼彩蛋(經過驗證後確實不是),那隻能解釋為製作方的無心之舉,如果是無心之舉,那就意味著V社將一條放了20多年的代碼搬到了新遊戲上。

之後,有人發現了更戲劇的內容:這串代碼不僅歷史悠久,甚至還見證了V社的遊戲歷史。因為除了能在半條命全系列中找到相同的燈光場景,在V社的另一個知名系列《傳送門》里,也有不少類似景象。

這名用戶順藤摸瓜,最後找到了這個場景的源頭——1996年發售的經典FPS遊戲《雷神之錘》。

從左上角開始,依次是《雷神之錘》《戰慄時空》《戰慄時空2》和《傳送門》,將四個場景放到一塊後,雖然發光的設備不同,但可以很明顯地看出它們維持著相同的閃爍頻率。

在仔細研究了半條命已經開源的代碼後,另一位玩家給出了相對合理的解釋。V社自初代《戰慄時空》誕生以來,一直使用26個字母來表示燈光的明暗程度,字母「a」代表完全熄滅,「Z」相反,表示最大亮度。

而在這些遊戲的原始碼中,都能找到一條「mmamammmmmammamamaaamammma」的代碼,注釋也正好是「燈光閃爍」:

所以在這20年的開發歷史中,凡是涉及到需要「燈光閃爍」的場景,V社基本就是從原先的代碼庫中復制粘貼,這才有了「祖傳代碼」的說法,但真要細究,可能這段代碼也不能算在V社的頭上。

最早出現這個場景的是《雷神之錘》,這是id Software的創始人約翰·卡馬克利用同名引擎Quake製作的FPS遊戲,而隨後的初代《戰慄時空》也同樣基於該引擎的改良版開發而成。

初代《雷神之錘》

當初編寫引擎的程式設計師隨手打下了一串負責場景的代碼,之後便被V社原封不動照搬過去;並且即使到了《戰慄時空愛莉克斯》,這個使用了不同引擎的遊戲時,一旦需要「燈光閃爍」,製作組還是會下意識地復制前作的代碼。

於是一代傳一代,最終造就了一段「祖傳代碼」,這也正好印證了編程領域的一句名言:永遠不要重復造輪子。

仔細想想,這也算是個製作組無意中留下的彩蛋了,發現這個秘密的玩家最後感慨道:「現在當我看到這個不規則閃爍的燈光,我就好奇還能在多少遊戲中看到這個場景。」

來源:遊研社