世代を形作ったコードの保存: Zork I、II、III のオープンソース化
現在、私たちは、私たちの心に近い、大切なゲームの歴史の基礎を保存しています。 Microsoft の Open Source Programs Office (OSPO)、Team Xbox、Activision が協力して、 ゾークI、 ゾーク II、 そして ゾークIII MIT ライセンスに基づいて利用可能です。私たちの目標はシンプルです。歴史的に重要なコードを生徒、教師、開発者の手に渡し、彼らがコードを研究し、そこから学び、そしておそらく最も重要なことに、コードを再生できるようにすることです。
遊びに対する考え方を変えたゲーム
いつ ゾーク 登場したのは、プレイヤーに勝つことを求めるだけではありませんでした。それは彼らに想像してもらいました。グラフィックス、ジョイスティック、サウンドトラックはなく、画面上の文字とプレイヤーの好奇心だけがありました。しかし、これらの言葉は、当時のほとんどのゲームよりも鮮やかな世界を構築しました。それを可能にしたのは、単に巧みな文章を書いただけではなく、巧みなエンジニアリングでした。
その言葉の世界の下には、静かに革命的なものが存在していました。それは、カスタムビルドのエンジンである Z-Machine です。 Z-Machine は仮想マシンの仕様であり、現在私たちが使用している多くの Z-Machine インタプリタは、その VM のソフトウェア実装です。オリジナルのメインフレーム バージョン ゾーク 初期の家庭用コンピュータでは処理できないほど大きすぎたため、Infocom のチームは現実的な選択を行いました。彼らはそれを 3 つのゲームに分割し、 ゾークI、 ゾーク II、 そして ゾークIII、すべて同じ基盤システムによって動作します。これは、プラットフォームごとにゲームを再構築する代わりに、Z-Machine を使用して同じストーリー ファイルをどのコンピュータでも解釈できることも意味しました。あのデザインが作ったのは ゾーク 真のクロスプラットフォームとなった最初のゲームの 1 つであり、Apple II、IBM PC などで登場します。

歴史の一部を保存する
ゲームの保存にはさまざまな形があり、遊びだけでなく研究も考慮することが重要です。 Zork のソース コードは保存して研究する価値があります。私たちは新しいリポジトリを作成するのではなく、歴史に直接貢献しています。 Internet Archive で有名なデジタル アーキビストである Jason Scott と協力して、私たちは上流のプル リクエストを歴史的ソース リポジトリに正式に送信しました。 ゾークI、 ゾーク II、 そして ゾークIII。これらのプル リクエストには明確な MIT LICENSE が追加され、オープンソースの許可が正式に文書化されます。
各リポジトリには次のものが含まれます。
- のソースコード ゾークI、 ゾーク II、 そして ゾークⅢ。
- ビルド ノート、コメント、歴史的に関連するファイルなどの付属ドキュメント (利用可能な場合)。
- MIT LICENSE.txt およびリポジトリ レベルのメタデータを通じて、ライセンスと帰属を明確にします。
このリリースは純粋にコード自体に焦点を当てています。これには商用パッケージやマーケティング資料は含まれません。また、商標やブランドに対する権利も付与されず、これらの権利はそれぞれの所有者に帰属します。これらのタイトルのソース コードの範囲外にあるすべてのアセットは、歴史的な正確性を維持するために意図的に除外されています。
今日は Zork I ~ III を実行します
それから40年以上が経ち、 ゾーク はまだ健在で、これまでよりも簡単にプレイできます。ゲームは、Good Old Games の The Zork Anthology を通じて引き続き商業的に入手可能です。より実践的なアプローチを好む人は、Tara McGrew が作成した最新の Z-Machine インタプリタである ZILF を使用して、ゲームをローカルでコンパイルして実行できます。 ZILF は、ZIL ファイルを Z3 にコンパイルし、Tara 独自の ZLR で実行できるようにします。これは、私が書くとは思ってもいなかった文であり、ましてや大声で言うつもりはありませんでした。すべてのプラットフォームにわたって、探索できる素晴らしい Z マシン ランナーが多数あります。
ZILF を使用して Zork をローカルで実行し始める方法は次のとおりです。コマンド ラインから、zork1.zil を実行可能な z3 ファイルにコンパイルおよびアセンブリします。
"%ZILF_PATH%\zilf.exe" zork1.zil
"%ZILF_PATH%\zapf.exe" zork1.zap zork1-ignite.z3
次に、Zmachine ランナーで Z3 ファイルを実行します。私は、Stefan Jokisch の Frotz コアに基づいた David Kinder の Windows Frotz を使用しています。

あるいは、あなたが私と同じような一定の年齢であれば、ターミナルに CRT フィルターを適用し、Python で書かれた Matthew Darby の「Fic」のような Zmachine の CLI 実装を使用することもできます。

旅を続ける
既存の履歴リポジトリを正規のホームとして使用します。 ゾークのソース。最初のプル リクエストが MIT ライセンスに基づいて取得されると、貢献が歓迎されます。私たちが MIT を選んだのは、コードの研究、指導、構築が容易なため、そのシンプルさとオープンさからです。問題をファイルし、洞察を共有し、他の人が元の設計から学ぶのに役立つ、十分に文書化された小さな改善を提出します。目的は近代化ではない ゾーク しかし、それは探検と教育のための空間として保存するためです。
ゾーク 常にゲーム以上のものでした。これは、想像力とエンジニアリングがハードウェアやプレーヤーの世代を超えて存続できることを思い出させてくれます。このコードを公開することは、私たちがまだ探索中の世界を発明してくれた元の Infocom の作成者、数十年にわたる管理とパートナーシップを提供してくれたジェイソン スコットとインターネット アーカイブ、そしてオープン ソースの実現に貢献した Microsoft OSPO、Xbox、Activision の同僚たちに対するお祝いであり、感謝の気持ちでもあります。
