3 ポイント 投稿者 GN⁺ 2023-09-04 | 1件のコメント | WhatsAppで共有
  • 1996年の英語圏のDOSゲームプログラミング資料で、C++でフライトシミュレーターを自分で実装していく過程を扱っている
  • テーマタグはMS-DOS、3D、Gamedev、tutorial、Retrogaming、C++を中心に分類されている
  • 単なる文書ではなく、サンプルコードのCD-ROMイメージまで含まれており、当時の開発環境もあわせて保存している
  • Internet ArchiveでPDF、EPUB、Full Text、ISO Image、Torrentなど複数の形式でダウンロードできる
  • レトロゲーム開発やDOSプログラミング資料を探している人にとって、本と付属資料をひとまとめに確認できる保存版である

Internet Archive登録資料

  • Internet Archive項目に登録されている資料はBuild Your Own Flight Sim In C++ (DOS GameDev)
  • 著者はMichael Radtke, Chris Lamptonで、1996年に出版された英語資料
  • ISBNは1-57169-022-0
  • テーマはMS-DOS、Programming、3D、Gamedev、tutorial、Retrogaming、C++に分類されている

本書が扱う開発範囲

  • 目的はC++でフライトシミュレーターを自作すること
  • DOS環境のゲームプログラミングを中心に、3Dおよびレトロゲーム開発の文脈で活用される資料
  • フライトシミュレーターにはSB16サウンドが含まれる
  • サンプルコードを収録したCD-ROMイメージがあわせて提供される

登録の文脈

  • Retro City RampageがDOSへ移植された際、開発者が昔所有していたDOSプログラミングやゲーム開発の本をすべて捨ててしまい、オンラインでも見つけにくいと惜しんでいた背景がある
  • この資料はそうした文脈の中でInternet Archiveに登録されたDOSゲーム開発本として紹介されている

ダウンロードできる形式

  • Internet Archiveでは複数のダウンロード形式が提供されている
    • PDF: 308.9M
    • EPUB: 768.5K
    • Full Text: 1.1M
    • ISO Image: 11.5M
    • Single Page Processed JP2 ZIP: 321.7M
    • Torrent: 32.5K
  • OCR関連ファイルとしてCHOCR、HOCR、OCR Page Index、OCR Search Textも提供されている

保存状況とメタデータ

  • 項目サイズは706.7Mと表示されている
  • Internet ArchiveのCD-ROM Software Library、CD-ROM Software Collection、The Vintage Software Collectionに含まれている
  • OCRはtesseract 5.0.0-alpha-20201231-10-g1236で処理され、検出言語は英語

1件のコメント

 
GN⁺ 2023-09-04
Hacker Newsのコメント
  • ああ、この本! Wolfenstein、Ken's Labyrinth、Doomを遊びながら、いったいどうやって作っているんだろうと思っていた頃を思い出す。
    給料を払えない、あるいは払わない「コンピュータショップ」で働いていたとき、その日働いた分として店の本をどれでも持っていっていいと言われ、衝動的にこの本を手に取った。
    帰りのバスで降りるべき停留所を乗り過ごしてしまった。フライトシミュレータの本ではあったけれど、中のアルゴリズムと手法が、まさに知りたかった3Dプログラミングの内容だったからだ。
    フライトシミュレータは作らなかったが、この本で得た知識で粗末な3Dゲームは作った。壁との衝突判定もなく、スプライトベースのアイテムは時間が経つとランダムに壊れ、幾何変換の代わりに行列乗算を使う感覚も結局きちんとはつかめなかった。それでも、深く取り組めるプロジェクトがなければ先へ進めなかったであろう時期に、プログラミングへの愛着を固めてくれた本だった。

    • 自分の場合はそれより15年ほど前だった。数学の先生がTRS-80と初期のフライトシミュレータを持っていて、地形は格子、空港、単純で平らな山脈で構成され、カセットからロードしていた。
      その先生は数学を知らず、代数IIで行列を教えるときにも、行列が「現実世界」でどう使われるのかにきちんと答えられなかった。
      ところが何とかして数年前のByte誌から3Dグラフィックスの記事を見つけ出し、そこには回転などに行列と点を使う内容が載っていた。
      それでPET 2001上で立方体を回転させた。40x24画面の壮大さの中で、だ。実際には8個の点で、暗いところで目を細めると立方体のように見えた。
      後に大学では、Tektronixのストレージチューブ方式マイクロコンピュータを使えた。端末とは違ってスタンドアロンで、立方体をかなりうまくレンダリングできた。方眼紙に丹念に作った車を、内蔵BASICのDATA文で一つずつ入力したりもした。
      その頃は、初期のFoley-Van Damの本が誰もが欲しがるグラフィックス本だった。
    • 実際、著者のChristopher Lamptonには、このゲームスタイルを扱ったもっと以前の本がある。タイトルは「Gardens of Imagination, Programming 3d maze games」で、ここで見られる: https://archive.org/details/gardensofimagina00lamp
    • こういうものがプログラミングに入門するきっかけになった。この分野で仕事をしたことはないが、ものすごく刺激を受けたし、昔はDr. Dobb'sのようなWebサイトのダンプが入ったCD-ROMを買ったりしていた。
    • ちょっと待って、なぜ幾何変換の代わりに行列乗算をしなければならなかったんだ?
      大学で「Survey of Physics」はCを取ったし、物理現象をモデル化しようとする数学は本当にきつかった。微積分や抽象的なものは全部得意だったのに、それが自分について何を物語っているのかは分からない。
  • これに興味があるなら、今受講しているオンライン講座も面白いかもしれない: https://pikuma.com/courses/learn-3d-computer-graphics-progra...
    講師はロンドンのある大学でこの内容を教えていて、教えた経験が豊富なのがはっきり伝わってくる。ここまでの進行速度も完璧で、講座説明どおりだ。グラフィックス講座を終えたら、この講師の別の講座も少しずつ受けるつもりだ。
    Cでグラフィックスを低レベルからプログラミングする方法を教えていて、依存関係はSDL2だけ。最初に個々のピクセルの色を指定できるSDL2の抽象化を作り、その後の講座全体がその上に積み重なる。ピクセル1つの色を決められるなら、残りの3Dテクスチャ付きフクロウまで描けるのか、という流れで学ぶ構成になっている。
    私はRustのSDL2バインディングだけを使って、この講座をRustで追っている。楽しく受講しているし、良心的な取引で良い講座だと感じたので共有したかった。他の場所ではこの講座の話をあまり見かけなかった。

  • この本を持っていた記憶がある。たぶん14〜15歳くらいで、初めての飛行訓練を受けて、ちょうど航空にのめり込み始めた頃だった。
    MS Flight Simulatorも持っていたし、C++も独学していたが、当時の自分のレベルには本の内容は少し手強かった。それでも、自分のフライトシミュレータを作れるという期待でこの本を手に入れたときの興奮を思い出せてうれしい。もちろん記憶が正しければ、本で作るシミュレータはほとんどプレイ不可能なレベルだった。

  • この本と「The Black Art of 3D Game Programming」は、子どもの頃に一番好きだった2冊だった。
    https://archive.org/details/BlackArt3DEBook

    • Tricks of the Windows Game Programming Gurusも素晴らしかった。Tricks of the 3D Game Programming Gurusには、ピクセルを1つ描くところから始めるCベースの完全な3Dエンジン、つまりソフトウェアラスタライザが入っている。
  • 面白いことに、ランダムに216ページを開いたら、球面上に3Dワールド座標をマッピングする、やや基礎的だが堅実な方法が載っていた。そしてちょうど最近、No Man's Skyのまったく別のワールド生成の解法を読んだところだった。
    https://www.polygon.com/2017/3/2/14790028/no-mans-sky-was-fl...

  • 最近もこういう記事がもっと増えてほしい。本当にすばらしい
    ただ、ePubリンクはダウンロードできない:
    https://ia904505.us.archive.org/epub/index.php?id=build-your...
    No valid doc name could be determined
    残念だけどPDFで我慢するしかなさそう。Internet ArchiveのWebビューアがいまいちなのも惜しい
    動作するPDFリンク: https://archive.org/download/build-your-own-flight-sim-in-c-...

    • 変だな。自分は動作するePubを取得できたけど、それでもPDF版をおすすめする。ePubのOCRと書式は自動生成された下書きレベルで粗かった
    • ePubはおそらく初回リクエスト時に生成されるのだと思う
  • この本に沿って作ったプログラムをまだ持っている。3D世界に命を吹き込む体験は魔法のようだった。黒い画面から始めて数本の線を描き、それらをぴったり合った方法で動かすと、突然画面の中に世界が生まれる。最近は同じ感覚を得るのが難しい
    たぶん13歳の誕生日プレゼントとしてこの本をもらったのだと思うので、数学の一部は当時の自分には少し難しかった。それでもアセンブリを学び、ポリゴンクリッピングのようなより複雑なアルゴリズムに踏み込んだのは、初心者プログラマーにとってすばらしい訓練だった

    • なぜ最近は難しいんだろう? 数か月前にソフトウェアラスタライザを作り始めたけど、まさにその感覚を味わった
  • この本が宇宙を作り出すのにどれほど多くのページを費やしているかが印象的だ。当時はOpenGLライブラリを有効にしてスタックを初期化すれば終わり、という時代ではなかった
    この本は、VGAカードを正しいモードにするためにどのレジスタを設定すべきか、ディスクからビットマップとパレットを読み込む方法、ビットマップメモリを節約するために自分でランレングスエンコーダを書く方法、ジョイスティックポートでどのレジスタを設定すべきか、といったところから始まる

  • この本を最後まで追いかけてやった。Macで作業していたので修正は必要だったが、Bresenhamアルゴリズム、ポリゴンクリッピング、背面除去などを実装した
    普通なら初めて触れる行列、内積、外積といった数学でつまずいていたはずだが、運よく大学の夏学期で線形代数を履修していたので、本の内容が講義とかなりうまくかみ合った

  • 記憶が正しければ、この本にはピラミッド型の山の周りを飛べるシミュレータが入った5.25インチフロッピーが付属していた。いい思い出がよみがえる

    • 同梱の11MBのISOファイルがあり、その中にexeファイルもいくつか入っている