Anonim

最近、Windows Solitaireについて書くことで、Windowsにバンドルされているもう1つの古典的なゲーム、Pinballについて考えました。 Windows Pinballは、実際には Full Tiltの単純化 されたバージョン です! ピンボール 、シネマトロニクスの1995年のゲーム。 Windows 95 Plusから始めましょう! パックし、XPまでのWindowsのすべてのコンシューマバージョンを継続して、ユーザーは Full Tilt の「Space Cadet」テーブルを無料でプレイできます。

Windowsバージョン(単に「3Dピンボール」と呼ばれる)と Full Tilt テーブルの間にはわずかな違いがありましたが、このゲームは何百万人ものWindowsユーザーに仕事や勉強からの楽しい脱出を提供しました。 しかし、Windows Vistaが2007年の初めにXPに取って代わり始めたとき、Windows Pinballはどこにも見つかりませんでした。 どうしたの?

Windows PinballはCinematronicsによって開発され、Maxisによって公開されたため、多くの人は、Windowsにゲームを含めるマイクロソフトのライセンスが失効したか、企業間のその他の法的紛争によりゲームが削除されたと推測しました。 本当の答えはそれほど劇的ではありませんでしたが、より技術的でした。

レイモンド・チェン/マイクロソフト

MicrosoftのエンジニアRaymond Chenによる2012 MSDNブログ投稿で説明されているように、Windows Pinballが失われた本当の理由は、32ビットアーキテクチャから64ビットアーキテクチャへの切り替えでした。 Microsoftは64ビットバージョンのWindows XPをリリースしましたが、64ビットWindowsが主流になったのはVista、特にWindows 7でした。 これには、新しいアーキテクチャをサポートするために数百万行のコードを更新して記述する必要があり、一部の古いプログラムは他のプログラムよりも作業が困難でした。

64ビットバージョンのピンボールには、ボールがゴーストのような他のオブジェクトを単純に通過するというかなり厄介なバグがありました。 特に、ゲームを開始すると、ボールがランチャーに送られ、その後、画面の下部に向かってゆっくりと落ち、プランジャーを通り、テーブルの下部から出ていきます。

私たち2人はプログラムのデバッグを試みて、何が起こっているのかを把握しようとしましたが、これは数年前に外部の会社によって書かれたコードであり、Microsoftの誰もコードがどのように機能するかを理解したことはありませんでしたそして、ほとんどのコードが完全にコメント化されていなかったため、衝突検出器が機能しなかった理由がわかりませんでした。 ちなみに、衝突検出器さえ見つけられませんでした!

まだ数百万行のコードを移植する必要があったため、不明瞭な浮動小数点の丸めエラーが衝突検出の失敗を引き起こしている原因を特定するためにコードを研究するのに何日も費やすことはできませんでした。 ピンボールを製品から削除するという経営陣の決定をその場で行いました。

Windows Pinballは十分な時間とリソースで救助できたと思われますが、Microsoftがゲームを浮かせ続けるのは価値がありませんでした。 ありがたいことに、仮想化などの進歩により、特定の年齢のWindowsユーザーがこの古典的なゲームを再訪できるようになりました。 Windows 98またはWindows XP仮想マシンを単にロードするだけで、Windows Pinball、ソリティア、およびその他の古典的なゲームはすべて手の届くところにあります。

おまけの面白い事実は次のとおりです。WindowsPinballはほとんどWindows XPにも入りませんでした。 ゲームの開発とWindows XPの発売の間にコンピューターハードウェアがこれまで進歩していたため、XPでのゲームの初期ビルドは毎秒100万フレーム以上で実行され、リソースを浪費し、システムのCPUを使い果たしました。 ありがたいことに、(フレームレートリミッターを追加することで)その問題を解決することは、64ビットへの移行を解決するよりもはるかに簡単だったので、Windows Pinballが保存され、XPユーザーの世代もゲームを体験できました。

Windowsのピンボールはどうなりましたか?