65
3Dピンボールのバグにより、より高速なCPUが登場したときにWindows NTでゲームを5,000 FPSで実行できました。元マイクロソフトのプログラマーは、ゲームをWindows 95からNTに移植する際に回転数制限を追加しませんでした。
ピンボールのスクリーンショット
(画像クレジット:Retro Smack / YouTube)

3D Pinball: Space Cadetは、初期のWindowsに搭載されていた名作ゲームの一つで、Windows 95のMicrosoft Plus!に最初に収録され、その後Windows XPまでOSにバンドルされていました。しかし、このゲームをWindows 95からNT版Windowsに移植したDave Plummer氏は、自身のYouTubeチャンネルで、ゲームに誤ってバグを追加してしまい、最終的に5,000fpsで動作してしまうようになったことを認めました。

プラマー氏の共同司会者は、「マイクロソフトで働いていたとき、プログラミングの失敗が世に出た、つまりソフトウェアの承認リリースになったことはありますか?」という質問を読み上げました。デイブ氏は、おそらくたくさんあっただろうが、最も思い出深いのは 3D ピンボールを Windows 95 から NT に移植したときだと答えました。

「(ゲームを)インポートした後、ビデオ描画やサウンドなどを管理するために、彼らのゲームエンジンをベースにエンジンを書いてみました。つまり、彼らのロジックエンジンをベースに、自分なりのゲームエンジンを作ったんです」とプラマー氏は語る。「私のゲームエンジンには、フレームを可能な限り高速に描画してしまうバグがありました。」

しかし、Daveが当時使用していたのは200MHzで動作するシングルコアのMIPS R4000プロセッサでした。そのため、ゲームは通常60~90fpsで動作し、当時としては十分な性能でした。どうやら彼はフレームリミッターを追加しなかったようで、2000年代初頭から中頃に新しいCPUが登場した時、『Space Cadet』は「ピンボールをプレイしている時はいつでも、マシンのコア全体をピンボールプレイに使用していた」状態でした。

そのため、当時のプロセッサはプラマー氏がNTに移植した際に使用したプロセッサよりもはるかに高速だったため、ゲームは最大5,000fpsで動作しました。幸いなことに、プラマー氏の同僚であるレイモンド・チェン氏がこの問題を修正し、フレームレートを100fpsに制限することで、軽量ゲームが単一のコアを100%まで押し上げないようにしました。

マイクロソフトではバグを深刻に受け止めていますが、このゲームのバグは無害なものだったため、関わったプログラマーたちは笑い飛ばしました。コンピューターにターボボタンがまだ付いていた頃なら問題にはならなかったでしょうが、ほとんどのソフトウェアがタイムステップとクロック速度を関連付けなくなったため、この機能は概ね廃止されました。プラマーはこれを予見できませんでしたが、当時のCPUコアの進化の速さを考えれば、それも無理はありません。

Tom's HardwareをGoogleニュースでフォローするか、お気に入りの情報源として追加して、最新のニュース、分析、レビューをフィードで受信しましょう。「フォロー」ボタンを忘れずにクリックしてください!

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

ジョウィ・モラレスは、長年のテクノロジー業界での実務経験を持つテクノロジー愛好家です。2021年から複数のテクノロジー系出版物に寄稿しており、特にテクノロジー系ハードウェアとコンシューマーエレクトロニクスに興味を持っています。