电科技8月23日消息,许多老Windows用户应该还记得系统自带的3D弹球游戏,这款游戏从1995年的Windows 95开始预装,到Windows Vista时突然消失。
微软工程师Raymond Chen近日在博客中揭示了真正原因,不是版权问题,而是64位移植时碰撞检测出了bug。
3D弹球游戏本身并非微软开发,而是来自Cinematronics团队开发的Full Tilt! Pinball,代码也不在微软手中。
2000年代初,Chen的团队负责将数百万行Windows代码从32位移植到64位,为Windows XP 64位版做准备。
移植完成后,3D弹球出现了一个诡异的问题,球会像幽灵一样穿过桌面上的障碍物直接掉下去,游戏根本没法正常玩。
根因是碰撞检测代码中一个隐蔽的浮点数舍入误差,在64位环境下行为发生了变化,Chen的团队试图修复,但很快发现无从下手。
代码是外部公司多年前写的,没有任何注释,微软内部没人理解其运行机制,Chen在博客中写道:“我们甚至连碰撞检测器在哪都找不到。”
摆在团队面前的是数百万行待移植的代码和不断逼近的截止日期,没人有时间去逐行研读一个第三方游戏的源码。
最终管理层决定放弃3D弹球,不再将其纳入后续Windows版本,Chen坦言自己很喜欢这款游戏,但别无选择。
3D弹球至今没有回归现代Windows,原开发商Cinematronics和发行商Maxis后来都被EA收购,Space Cadet桌的授权也随之落入EA手中。
微软没有源代码的所有权,也无法自行修复或重写,玩家想重温经典,目前只能依赖社区制作的复刻版本。



