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


v社|玩家发现了一条V社反复用了20年的祖传代码
文章插图

真·祖传代码 。
有句老话说的好:“要是你的代码还能用 , 就别去碰它 。 ”最近 , 一条沿用了20多年的“祖传代码” , 让V社成了这句话最忠实的践行者 。
【v社|玩家发现了一条V社反复用了20年的祖传代码】在Reddit论坛上 , 一名用户最近偶然发现了《半条命》系列里的灯光闪烁频率有种奇怪的既视感:

v社|玩家发现了一条V社反复用了20年的祖传代码
文章插图

注意到了吗?23年前的初代《半条命》里的灯光 , 居然和2020年诞生的《半条命:爱莉克斯》有着同样的闪烁频率 。
这名资深玩家立即意识到了事情的有趣之处 , 如果这不是什么彩蛋(经过验证后确实不是) , 那只能解释为制作方的无心之举 , 如果是无心之举 , 那就意味着V社将一条放了20多年的代码搬到了新游戏上 。
之后 , 有人发现了更戏剧的内容:这串代码不仅历史悠久 , 甚至还见证了V社的游戏历史 。 因为除了能在半条命全系列中找到相同的灯光场景 , 在V社的另一个知名系列《传送门》里 , 也有不少类似景象 。
这名用户顺藤摸瓜 , 最后找到了这个场景的源头——1996年发售的经典FPS游戏《雷神之锤》 。

v社|玩家发现了一条V社反复用了20年的祖传代码
文章插图

从左上角开始 , 依次是《雷神之锤》《半条命》《半条命2》和《传送门》 , 将四个场景放到一块后 , 虽然发光的设备不同 , 但可以很明显地看出它们维持着相同的闪烁频率 。
在仔细研究了半条命已经开源的代码后 , 另一位玩家给出了相对合理的解释 。 V社自初代《半条命》诞生以来 , 一直使用26个字母来表示灯光的明暗程度 , 字母“a”代表完全熄灭 , “Z”相反 , 表示最大亮度 。
而在这些游戏的源代码中 , 都能找到一条“mmamammmmmammamamaaamammma”的代码 , 注释也正好是“灯光闪烁”:

v社|玩家发现了一条V社反复用了20年的祖传代码
文章插图

所以在这20年的开发历史中 , 凡是涉及到需要“灯光闪烁”的场景 , V社基本就是从原先的代码库中复制粘贴 , 这才有了“祖传代码”的说法 , 但真要细究 , 可能这段代码也不能算在V社的头上 。
最早出现这个场景的是《雷神之锤》 , 这是id Software的创始人约翰·卡马克利用同名引擎Quake制作的FPS游戏 , 而随后的初代《半条命》也同样基于该引擎的改良版开发而成 。

v社|玩家发现了一条V社反复用了20年的祖传代码
文章插图

初代《雷神之锤》
当初编写引擎的程序员随手打下了一串负责场景的代码 , 之后便被V社原封不动照搬过去;并且即使到了《半条命:爱莉克斯》 , 这个使用了不同引擎的游戏时 , 一旦需要“灯光闪烁” , 制作组还是会下意识地复制前作的代码 。
于是一代传一代 , 最终造就了一段“祖传代码” , 这也正好印证了编程领域的一句名言:永远不要重复造轮子 。
仔细想想 , 这也算是个制作组无意中留下的彩蛋了 , 发现这个秘密的玩家最后感慨道:“现在当我看到这个不规则闪烁的灯光 , 我就好奇还能在多少游戏中看到这个场景 。 ”
游研社APP

    推荐阅读