对于很多从 Windows 95 和 XP 时代走过来的老玩家来说,即便当年断网,系统自带的小游戏也能让我们玩上一整天。其中,最具科技感、最让人上头的非**《3D弹球:太空军校生》**莫属。

这款游戏曾作为预装福利,陪伴了几代人的青春,然而到了 Windows Vista 时期,它却毫无征兆地从系统中人间蒸发。

多年来,坊间一直流传着是因为“版权到期”才导致绝版的说法。但是,近日微软工程师 Raymond Chen 在个人博客中揭开了这个困扰玩家多年的未解之谜——根本原因其实是代码太拉胯,微软程序员被整破防了!

遇鬼的64位移植:弹珠直接穿模掉进虚空

时间拨回到 2000 年代初,当时微软正全力筹备 Windows XP 的 64 位版本系统,Raymond Chen 的团队接到了一个艰巨的任务:将系统里数百万行的 Windows 代码从 32 位移植到 64 位环境。

整体移植工作还算顺利,但当他们准备测试 3D 弹球时,一个极为诡异的 Bug 出现了:弹珠就像失去了物理体积一样,会像幽灵般穿过桌面上的各种障碍物,直直地掉下去,游戏根本没法正常玩。

经过初步排查,团队发现这并非简单的显示错误,而是底层的碰撞检测代码出现了一个隐蔽的“浮点数舍入误差”。在 64 位环境下,原有的计算逻辑直接崩溃罢工了。

无人敢碰的第三方“屎山代码”

既然发现了是碰撞检测的问题,修好不就行了?这下微软的工程师们是真犯了难。

原来,3D 弹球起初并不是微软内部开发的,而是来自外部第三方工作室 Cinematronics 团队开发的《Full Tilt! Pinball》。摆在微软员工面前的,是一颗令人头皮发麻的定时炸弹:

  • 全无注释:这堆多年前的外部代码连半个字的解释说明都没有,就像是“天书”。
  • 全员懵圈:微软内部根本没有人知道这坨代码的运行机制。
  • 无处寻根:Chen 在博客中无力地吐槽:“我们当时连那个该死的碰撞检测器到底藏在哪里都找不到!”

面对数百万行急待移植的系统代码和越来越紧迫的截止日期,管理层做出了一个艰难的决定:与其花费好几天去逐行研读一个外包摸鱼小游戏的“屎山”,不如直接放弃,从新系统中砍掉它。

【编辑观察】 目前,3D 弹球的原始开发工作室以及发行商都已被 EA 收购,老版游戏的授权也顺理成章地落入了 EA 手中。这也就意味着,微软手里非但没有源代码的控制权,连官方重做的路也被堵死了。 当年这一个小小的赶工妥协,彻底封死了 3D 弹球在现代 Windows 系统中的回归之路。如今老玩家们如果想重温这款童年神作,就只剩下去下载由民间骨灰级社区制作的修复复刻版这唯一的一条路了。