Space Cadet PinballをLinuxにへ:ノスタルジー、リバースエンジニアリング、そしてソフトウェア保存

Windows XPの時代に育った多くの人々にとって、3D Pinball: Space Cadetは単なる同梱ユーティリティ以上の存在でした。それはゲームへの入り口だったのです。ソリティアやマインスイーパーが静かな娯楽を提供していた一方で、Space Cadetは、世代を超えたユーザーに強い印象を残す、エネルギッシュで魅力的な体験を提供しました。Linuxユーザーにとって、このノスタルジーは長らくプラットフォームの互換性の問題で阻まれてきましたが、リバースエンジニアリング・コミュニティの献身的な努力のおかげで、現在このゲームは最新のオープンソース・システムで完全にプレイ可能になっています。

LinuxでSpace Cadet Pinballを入手する方法

このクラシックなゲームをLinuxに持ち込むことは、デコンパイラとリバースエンジニアリング・ツールを使用してソースコードを再現した、コミュニティ主導のプロジェクトによって可能になりました。この取り組みにより、Linux、macOS、Windows、Android、さらにはNintendo Switchでも動作する、非常に移植性の高いバージョンが実現しました。

Flatpakによるインストール

Linuxでこのゲームをインストールする最も簡単な方法は、オリジナルのゲーム・リソースを同梱しているFlatpakを使用することです。GUI(KDE Discoverなど)またはコマンドライン経由でインストールできます。

flatpak install com.github.k4zmu2a.spacecadetpinball

ブラウザベースのバージョンも存在しますが、ローカルへのインストールは、より安定した、統合された体験を提供します。

高解像度へのアップグレード(Full Tilt! Data)

ゲームのデフォルト・バージョンは480pで動作するため、現代のディスプレイでは粗く見えることがあります。しかし、このゲームはもともとFull Tilt! Pinballという、より大きなMaxisのタイトルの一部でした。*Full Tilt!*のデータ・ファイルは1024x768の解像度をサポートしています。

グラフィックスをアップグレードするには、archive.orgで*Full Tilt!*のデータを取得できます。Flatpak版のインストール手順は以下の通りです:

  1. ゲームを一度実行することで、データ・ディレクトリが作成されることを確認します。
  2. ダウンロードしたZIP(CADET.ZIP)をデータ・ディレクトリに展開します:
    cd ~/.var/app/com.github.k4zmu2a.spacecadetpinball/data/SpaceCadetPinball
    unzip ~/Downloads/CADET.ZIP
    
  3. 同梱されているデータを削除して、ゲームが低解像度のファイルを使用しないようにします:
    sudo rm -r $(flatpak info --show-location com.github.k4zmu2a.spacecadetpinball)/files/extra/Pinball
    

グラフィックス以外にも、*Full Tilt!*バージョンはゲームプレイの違いをもたらします。これには、マルチボール・モード(ワームホールを介して、一致する色のライトが付いた3つのボールをロックすることで起動)や、再突入レーンでの異なる照明挙動が含まれており、一部のプレイヤーは、これによってバンパーのアップグレードが容易になると感じています。

技術的な洞察とコミュニティの視点

Space Cadet Pinballの復活は、これらのゲームの技術的な実装について、そしてソフトウェア保存の性質について、より広範な議論を呼び起こしました。

ピンボールのロジックの複雑さ

ピンボール・マシンのプログラミングは、容易な作業ではありません。Shopifyでの最近のプロジェクトにおいて、Black Fridayのセール・ビジュアライゼーションにピンボールのメカニクスを使用した場合でも、エンジニアは、物理演算とインタラクション・ロジックの構築が大きな挑戦であることを指摘しています。

興味深いことに、一部の熱心なファンがオリジナルのSpace Cadetのコードを分析した結果、その実装が驚くほど初歩的であることが判明しました。ある貢献者は、ライトのステータスがゲームの状態を直接反映しているため、バグが発生する可能性があると指摘しています。例えば、ランクアップのライト・ショーが再生されている間にボールがドレイン(流出)した場合、ランクがスキップされるといった具合です。

ハイスコアの追求

ゲームの普及率が高いにもかかわらず、驚くほど中央集権的なハイスコア・リーダーボードが欠いません。

ソフトウェア保存の哲学

Space Cadet Pinballのリバースエンジニアリングの取り組みは、合法性やプロプライエタリ・ソフトウェアの倫理について、重要な問いを投げかけています。

ソースコード・エスクローの提唱

オリジナルのアートやデータ・ファイルは著作権で保護されているため、アーカイブからそれらをダウンロードすることは、法的なグレーゾーンとなる可能性があります。これに対し、「ソースコード・エスクロー」という提案がなされています。このシステムでは、プロプライエタリ・ソフトウェアは、企業が積極的に販売している間はクローズド・ソースのままとなります。しかし、もし企業が製品の販売を停止したり、倒産したりした場合、コードは自動的にFree and Open Source Software (FOSS) ライセンスの下で公開されることになります。

この概念は、KDE Free Qt Foundationによって維持されている「社会契約」を鏡のように映し出しています。これは、もしThe Qt Companyがプロジェクトを放置したり、オープンソース版の提供を提供しなくなったりした場合、foundationがBSD-styleライセンスの下でリリースする権利を持つことを保証するものです。このようなメカニズムは、作成者の権利とソフトウェア保存の必要性のバランスをバランスとし、愛着のあるツールやゲームが「abandonware」となるのを防ぐことができます。

最終的な考察

ノスタルジーに浸るか、リバースエンジニアリングの技術的な研究対象とするかに関にかわらず、Space Cadet PinballがLinuxに登場したことは、コミュニティのモチベーションの力を示しています。プロプライエタリな遺物(れき)を、移植性の高いクロスプラットフォーム・アプリケーションへと変貌させることで、開発者たちは、コンピューティングの歴史の一片をコンピューティングの歴史の一片が、すべての人にとってプレイ可能であり続けることを確実にしました。

Sources