玩家发现了一条V社反复用了20年的祖传代码


3楼猫 发布时间:2021-12-02 21:02:46 作者:嘤肉卫星 Language

有句老话说的好:“要是你的代码还能用,就别去碰它。”最近,一条沿用了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社原封不动照搬过去;并且即使到了《半条命:爱莉克斯》,这个使用了不同引擎的游戏时,一旦需要“灯光闪烁”,制作组还是会下意识地复制前作的代码。

于是一代传一代,最终造就了一段“祖传代码”,这也正好印证了编程领域的一句名言:永远不要重复造轮子。

仔细想想,这也算是个制作组无意中留下的彩蛋了,发现这个秘密的玩家最后感慨道:“现在当我看到这个不规则闪烁的灯光,我就好奇还能在多少游戏中看到这个场景。”



© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com