Rain科技8月23日报道,不少老Windows用户对系统自带的3D弹球游戏记忆犹新。这款游戏从1995年的Windows 95开始预装,一直陪伴用户到Windows Vista时期,之后便悄然消失,成为许多玩家心中的遗憾。
微软工程师Raymond Chen近日在博客中揭开了这一谜团,指出其消失的真正原因并非外界猜测的版权问题,而是在64位系统移植过程中出现的碰撞检测漏洞所致。
实际上,3D弹球游戏并非由微软自主研发,而是来自Cinematronics团队开发的Full Tilt! Pinball游戏,其源代码也不归微软所有。
在2000年代初,Chen的团队负责将数百万行Windows代码从32位架构移植到64位架构,为Windows XP 64位版做准备。然而,移植完成后,3D弹球出现了一个诡异的bug:游戏中的球会像幽灵一样穿过桌面上的障碍物直接掉下去,导致游戏完全无法正常进行。
深入排查后发现,问题根源在于碰撞检测代码中存在一个隐蔽的浮点数舍入误差。在32位环境下,这一误差影响有限;但在64位架构下,计算精度和行为发生了改变,导致碰撞逻辑失效。Chen的团队尝试修复该问题,但很快发现几乎无从下手。
原因在于这段代码是外部公司多年前开发的,没有任何注释和文档说明,微软内部也没有任何人理解其运行机制。Chen在博客中坦承:“我们甚至连碰撞检测器模块在哪个文件中都找不到。” 这种现象在大型软件项目中并不罕见,尤其是当第三方代码缺乏规范化维护时,遗留代码极易成为技术债务。
摆在团队面前的现实是:还有数百万行待移植的代码需要处理,而项目截止日期不断逼近。在时间和资源双重压力下,没有人能抽出精力去逐行研读并重写一个第三方游戏的逻辑源码。这种情况下,放弃一个非核心功能模块,往往成为项目管理的理性选择。
最终,管理层决定不再将3D弹球纳入后续的Windows版本。Chen坦言,自己也很喜欢这款游戏,但在当时的局面下别无选择。
时至今日,3D弹球仍未回归现代Windows。其原开发商Cinematronics和发行商Maxis后来均被EA收购,Space Cadet桌面的授权也随之落入EA手中。微软既没有源代码的所有权,也无法自行修复或重写这款游戏。对于想要重温经典的玩家来说,目前只能依赖社区制作的复刻版本。


