忍者ブログ
22 January

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

06 October

DOOMソースコードを読み解く 第1回

本ブログは、DOOM を様々な角度から深く掘り下げていく事を趣旨としていますが、今回からは DOOM をソースコードという側面から分析して、ゲームの挙動、プログラム上の制限等を考察し、不定期にではありますが、連載記事にしていこうと考えています。

今回は初回でもあるので、まずはプログラムその物には踏み込まず、肝心の id software が公開したソースコードの簡単な紹介をしてみたいと思います。
しかし最初に言っておきたいのは、ここで言う DOOM は DOS ゲームとして発売された DOOM および DOOM2 の事で、DOOM3 や今後発売される予定の新DOOM (DOOM4 と呼ばれていたもの)の事ではありません。また、現在では id の公開したソースを元に様々なソースポートが作られていますが、それらはあくまで傍系なので、オリジナルの id のソースコードだけを考察対象とします。

さて、今しがた id の公開したソースコードを「オリジナル」と呼びましたが、残念ながらこの公開されたソースコード自体が、実は本当のオリジナルである DOS 版の DOOM を Linux にポートした物です。
何故そうなったかと云えば、id が DOOM を作る時にサウンドプログラミングだけは他社製のサウンドライブラリを使っていたため、そのソースコードが残る DOS 版のプログラムは契約上公開出来ないとの理由からだそうです。この事は、ソースコードに付随する John Carmack が
書いた readme.txt で述べられています。(この readme.txt は非常に重要で、本連載では何度か言及すると思いますので、勝手にソースコードのアーカイブから抜き出してアップさせてもらいました。)
その本体のソースコードのアーカイブファイルはこちらからダウンロード出来ます。
もちろんLinux版のソースコードなので、そのままではビルドは出来ないので、ほとんどの人にとっては無用かもしれませんが、やはり唯一の「公式」なソースコードですので、リファレンスとして持っている価値はあると思います。

最後に、この DOOM のサウンドコードだけが他社製ライブラリだった事について少し考えてみたいと思います。
readme.txt の中では Carmack は「今だったら自分でサウンドコードが書けたのに...」と言って当時はその知識が無かった事を示唆していますが、DOS の時代は AdLib や Sound Blaster といった各社のサウンドカードに合わせて、アセンブラを使ったプログラムを書かなければならなかったと思いますので、そういったサウンドライブラリを提供する会社があったんだろうと思います。おそらく当時の DOS ゲームの製作会社の間では、そういったライブラリを使うのが普通だったのではないかと推測します。
PR