1995年,Full Tilt! Pinball为玩家提供了三张不同的预渲染3D弹球桌,分别是《Space Cadet 3D》《Skulduggery》和《Dragon’s Keep》。尽管这款游戏如今或许已经逐渐淡出记忆,但前微软工程师戴夫·普拉默近日透露,《Space Cadet 3D Pinball》曾出现过他职业生涯中最尴尬的漏洞之一。
游戏曾以每秒5000帧运行
普拉默在自己的YouTube频道上分享了这段经历。据他回忆,当年他负责将游戏从Windows 95移植到Windows NT,并围绕原版程序重新编写了一套能够处理画面与声音的新游戏引擎。
然而,他编写的游戏引擎存在一个漏洞,会“尽可能快地绘制帧数”。普拉默在200MHz的MIPS R4000处理器上编写代码时,《Space Cadet 3D Pinball》的运行帧率为每秒60至90帧。但当玩家在性能更强的电脑上运行游戏时,帧率竟然攀升到了每秒5000帧。
普拉默表示:“几年后,有人注意到,在多核心机器上,游戏一直占用整个核心来运行弹球。它仍然在尽可能快地绘制画面,但由于当时的电脑比过去快得多,帧率已经达到了每秒5000帧左右。”
微软工程师加入帧率限制修复漏洞
普拉默将修复工作归功于另一位前微软工程师雷蒙德·陈。陈通过加入帧率限制器,将游戏锁定在每秒100帧,从而解决了这一问题。
虽然如今普拉默已经能够以幽默的态度看待这次失误,但他回忆称,微软当时非常严肃地对待这类漏洞。
普拉默说:“如果一个漏洞真的进入了产品,并且必须通过服务包进行修复,那绝对不是可以一笑置之的事情。当时会觉得这是一种耻辱。”
目前,App Store上已经提供《Space Cadet 3D Pinball》的一个版本。
常见问题
《Space Cadet 3D Pinball》为什么会达到每秒5000帧?
由于游戏引擎存在漏洞,会尽可能快地绘制画面,因此在性能更强的电脑上,游戏帧率大幅提升至每秒5000帧左右。
这个漏洞后来是如何修复的?
前微软工程师雷蒙德·陈加入了帧率限制器,将游戏锁定在每秒100帧,从而修复了该问题。