1 ポイント 投稿者 GN⁺ 2023-10-09 | 1件のコメント | WhatsAppで共有
  • このテキストでは、ニンテンドーエンターテインメントシステム(NES)向けゲーム『Elite』の完全に文書化されたソースコードについて扱っている。
  • ソースコードは、すべての行に文書化と説明が付いたリポジトリで利用できる。
  • リポジトリには、ソースコードからゲームをビルドする方法の手順も含まれている。
  • ソースからビルドできるゲームには2つのバージョンがある。Ian Bellの個人ウェブサイトにあるNTSC版と、ImagineerのPAL版である。
  • このリポジトリは教育目的かつ非営利目的で作られており、人々がゲームとその開発についてより深く理解できるようにすることを目的としている。
  • ゲームのソースコードはIan BellとDavid Brabenによって書かれ、コードに対する解説はMark Moxonが提供している。
  • リポジトリにはライセンスが付与されていないため、元の著作権法が適用され、誰も作品を複製、配布、派生作品の作成を行うことはできない。
  • ソースコードは統合開発環境(IDE)で閲覧でき、メインゲームのソースコードは8つの異なるROMバンクに分かれている。
  • リポジトリには、ゲームの特定の側面を詳しく扱う「ディープダイブ」記事も複数含まれている。
  • ゲームのビルドにはBeebAsmとPythonが必要で、その手順は付属のMakefileで定義されている。
  • ビルドプロセスは2つの主要なターゲットをサポートしている。可能な限り強化されたCommander版と、ゲームのリリース版に一致する版である。
  • リポジトリには、NES版Eliteの2つの異なるバージョンのソースコードも含まれている。Ian Bellの個人ウェブサイトにあるNTSC版と、ImagineerのPAL版である。
  • 最後に、NTSC版は実際にはNTSC実機では動作しないものの、NTSCモードで一部のエミュレータ上で動作するよう変更されている、という注記で締めくくられている。

1件のコメント

 
GN⁺ 2023-10-09
Hacker Newsのコメント
  • NES版のEliteは当初、ゲーム内の物理演算のための実時間を追跡するのにハードウェアタイマーを使用していましたが、一部のNES本体のハードウェア上の制約のため、独自実装のリアルタイムクロックへ移行する必要がありました。
  • 開発者たちは、各機能が1フレームあたりにどれだけのクロックサイクルを消費するかについて独自の見積もりを作成し、それを使って実際にどれだけ時間が経過したかを推定しました。
  • 続編のElite: Dangerousは、オリジナルの1984年版との連続性を保ちながら、ゲーム要素をベクターグラフィックスから完全にレンダリングされた3Dへと変換しています。
  • C版のゲームであるElite - The New Kindは、オリジナル版にほぼ忠実です。
  • Eliteの作者Ian Bellは、NES版が個人的に最も気に入っている8ビット版だと述べていました。
  • Objective-Cで書かれたオープンソースのEliteクローンであるOoliteのソースコードは、オンラインで利用できます。
  • NES版Eliteのソースコードは、非常に詳細で、よく文書化されています。
  • NTSC本体でゲームを動かそうという関心はありますが、そのためにはかなりの修正が必要になるでしょう。