コロッサル・ケーブ・アドベンチャー

『コロッサル・ケーブ・アドベンチャー』（英: Colossal Cave Adventure）は、アドベンチャーゲームというジャンル名の由来となっているコンピュータゲームである。他に、ADVENT、コロッサルケーブ、アドベンチャーという名でも知られている。プログラマでケイビング愛好家のウィル・クラウザー（英語版）が設計したゲームであり、ケンタッキー州マンモス・ケーブ国立公園の洞窟群の一部であるコロッサルケーブを舞台のベースとしている。コロッサルケーブにはいくつも入口があり、その1つがベッドキルト (Bedquilt) と呼ばれている。クラウザーは非常に忠実に現実の洞窟を再現しており、このゲームをプレイした洞窟探検家は、初めてベッドキルトからコロッサルケーブに入ったとしても、容易に洞窟を辿っていけるという。 ウィル・クラウザーは、ARPANET（インターネットの前身）の開発にも関わった Bolt, Beranek & Newman のプログラマだった。クラウザーはケイビングを得意とし、ケンタッキー州マンモス・ケーブ国立公園でケイビングを行った経験を生かし、娘のためにこのゲームを作った。 クラウザーは1970年代初めにマンモス・ケーブ国立公園の洞窟群を探検し洞窟の地図を作成しているが、ゲームはテキストベースであり、1975年から76年ごろに作った。現実の洞窟とは異なり、ゲームでは斧を投げつけてくるドワーフや魔法の橋などファンタジー要素が盛り込まれている。 最もよく知られているバージョンは、スタンフォード大学のコンピュータでこのゲームを見つけた大学院生ドン・ウッズ（英語版）がクラウザーの許可を得て改良・拡張したバージョンである。ウッズはトールキンの大ファンで、エルフやトロールといったファンタジー要素をさらに追加した。 ロバータ・ウィリアムズ（英語版）とその夫ケン（英語版）がそのゲームを見つけた当時、似たようなゲームは他になく、彼らはアドベンチャーゲームを開発販売する会社オンラインシステムズ（後にシエラ・オンラインに改称し、さらにシエラエンターテインメントとなった）を創業。まずグラフィックスを加えたアドベンチャーゲーム「ミステリーハウス」を開発し、その後20年に渡ってゲームソフトウェア市場で活躍することになった。 クラウザーの最初のゲームはFORTRANで書かれた約700行のコードとそれとは別の700行のデータで構成されており、BBNのPDP-10で動作した。マップは79地点で構成されていて、それぞれにテキストが対応していて、139語の語彙、旅程表、各種メッセージなどがデータに含まれている。PDP-10では、ゲームデータを全てメモリ上にロードしてプログラムを実行する。そのため磁気コアメモリを60kワード（約300kB）必要とし、128kワードしか磁気コアメモリを搭載していないPDP-10システムにとってはかなり大きな負荷だった。 ウッズの改良版もPDP-10向けにFORTRANで書かれている。コードは約3000行、データは1800行に増えている。マップ140地点、語彙293語、オブジェクト53点、旅程表、その他のメッセージなどがデータに含まれている。クラウザーのバージョンと同様データは全てメモリ上にロードするが、プログラムを工夫することで必要な磁気コアメモリを42kワードに減らしている。 FORTRANのコードはPDP-10特有の特徴を最大限に活用している。PDP-10のワード長（整数長）は36ビットであり、7ビットのASCII文字を1ワードに5文字格納できる。FORTRANではこのような5文字の文字列同士を整数として比較することができ、このゲームで認識する語彙は先頭5文字だけを比較して判別されていた。また、PDP-10のオペレーティングシステム (OS) には実行中プログラムの磁気コアメモリ上のイメージをセーブ/リストア/リスタートする機能を持っており、これがアドベンチャーゲームでのセーブ/リストア機能の原点となった。この場合セーブされるのはサスペンドしたプログラム全体であり、一部データだけという最近の実装とは異なる。このようにPDP-10固有の特徴を活用しているため、他のプラットフォームへの移植は難しかった。 その後このゲームはC言語やFORTRANといった汎用プログラミング言語で実装されるのではなく、Z-machineなどインタラクティブフィクション専用エンジンをターゲットとして実装されるようになった。 コロッサル・ケーブは様々なバージョンがリリースされてきた。一般に単に「アドベンチャー」と題することが多く、それに何らかのタグを付与することも多かった（例えば、「アドベンチャーII」、「アドベンチャー550」、「アドベンチャー4+」など）。大きな数字が付与されている場合、そのゲームでの最高得点を意味している。ウッズが改良を行った最初のバージョンで初めて得点システムが導入されており、「アドベンチャー350」とも呼ばれている。ラッセル・ダレンバーグの Adventure Family Tree のページに、不完全ながら各種バージョンとそれらの関係が示されている。 クラウザーの最初のバージョンが発見されるまで、ウッズが1977年に拡張したバージョンが最初だと見られていた。ウッズは得点システムを加えており、最高得点は350点だった。その後のバージョンではさらにパズル的要素が加えられていき、最高得点は1000点やそれ以上になっていった。マルチプレーヤー版のコロッサル・ケーブもある。 1977年、ランド研究所のジム・ジログリー（英語版）はウッズとクラウザーの許可を得て、数週間を費やしてFORTRANからUNIX上のC言語に移植を行った。これはBSDのディストリビューションの一部となっていた。2012年現在、FreeBSDではportsのgames/bsdgamesに含まれており、Linuxのディストリビューションの多くでは "bsdgames" というパッケージの一部として含まれている（コマンド名は "adventure"）。 1970年代末にはプライムコンピュータ（英語版）のスーパーミニコンピュータにも移植されている。OSはPRIMOS（英語版）、使用言語は FORTRAN IV である。1978年末にはIBMのメインフレームにも移植された。OSはVM/CMS、使用言語はPL/Iである。 1980年、マイクロソフトは Apple II Plus 向けやTRS-80向けの「アドベンチャー」をリリースした。また1981年には IBM PC 向けの最初の MS-DOS 1.0 上で動作する「アドベンチャー」をリリースした。5.25インチのフロッピーを媒体とし、そのディスクから直接ブート可能となっており、DOSからその中身を見ることができないようになっていた。このバージョンでは130の部屋、15の宝物、40のアイテム、12の解くべき問題が含まれている。フロッピー上に2つまでセーブ可能である。 デイヴ・プラットの550点版には様々な新機軸が導入されている。FORTRANやCで直接プログラミングするのをやめ、プラットはアドベンチャーゲームを記述する A-code という言語を開発し、ゲームをその言語で書き直した。A-code のソースを FORTRAN 77 (F77) で書かれた "munger" というプログラムで前処理し、A-code からテキストデータベースおよびトークン化された擬似バイナリに変換する。それらをF77で書かれた実行エンジン "executive" と共に配布した。またゲームにランダム性を導入し、プレーヤーの選択に対する応答に幅を持たせ、滅多に発生しないイベントを導入したりしている。 デール・ピーターソンによれば、ドン・ウッズは1990年代中ごろまでこのゲームのバージョンアップをリリースし続けていたという。クラウザーからウッズが開発を引き継いだころ、他のプログラマもそれぞれ独自に開発を継続した。 デイヴ・プラットの550点版のコロッサル・ケーブはオリジナル版以外では最も有名で、その後の派生バージョンの起点ともなった。例えばマイケル・ゲッツのCP/M用581点バージョンなどがある。また、舞台も洞窟から火山や地下墓地の迷路などに変えられたり、プレーヤーが "plugh" と入力すると溶岩の上の空中に吊るされた椅子にプレーヤーが転送されるといった仕掛けも登場するようになった。バイキングが撮影した火星の写真が360度に描かれている部屋とか、魔法の絨毯といったそれぞれのバージョン独自の趣きが加えられている。 グラハム・ネルソン（英語版）の Inform Designer's Manual ではこのゲームを1980年代のアドベンチャーゲームの3部構成のさきがけだとしている。3部構成とは、「ゲームの地下世界の閉所恐怖症的感覚と深さを強調する効果を持つ」地上でのプロローグ、「現実世界からファンタジー世界へと移行する」中間部分、そして結末「マスターゲーム」である。 ^ Crowther, 1976; Crowther & Woods, 1977. ^ a b Jerz, Dennis (2007) Somewhere Nearby Is Colossal Cave: Examining Will Crowther's Original “Adventure” in Code and in Kentucky, Digital Humanities Quarterly ^ Montfort, Nick (2003). Twisty Little Passages: An Approach To Interactive Fiction. Cambridge: The MIT Press. ISBN 0-262-13436-5 ^ Mel Park. Bev Schwartz meets the real Bedquilt ^ Rick Adams. “Here's where it all began…”. The Colossal Cave Adventure page. 2012年5月10日閲覧。 ^ 1972年に遡るとする説があるが、本作がD&Dからの影響を受けていることから、1974年より古いことはありえない ^ “L’avventura è l’avventura » Interactive Fiction? I prefer Adventure”. Avventuretestuali.com. 2012年1月29日閲覧。 ^ オリジナルのソースコードはこちら ^ ウッズ版のソースコードはこちら ^ Russel Dalenberg (March 20, 2004). “Adventure Family Tree” (ASCII Art). 2012年5月11日閲覧。] ^ “Adventure: Crowther's original source code found; photos from inside the real Colossal Cave”. 2012年5月11日閲覧。 ^ “IBM Archives: Product fact sheet”. 03.ibm.com (1981年8月12日). 2012年1月29日閲覧。 ^ Peterson, Dale: "Genesis II: Creation and Recreation with Computers", (1983) ^ Inform Designer's Manual, Graham Nelson, 2001 edition, 375-382 ゾーク Jargon File の "ADVENT" の項 Baf's Guide to the IF Archive with downloadable versions for many platforms. FORTRAN source code for Crowther and Woods collaboration advent-original.tar.gz FORTRAN source code for Crowther and Woods collaboration adv350-pdp10.tar.gz Jerz, Dennis G. (2007年). “Somewhere Nearby is Colossal Cave: Examining Will Crowther's Original 'Adventure' in Code and in Kentucky”. Digital Humanities Quarterly. The Alliance of Digital Humanities Organizations. 2007年8月11日閲覧。 Crowther's original source code for Adventure (as recovered from Don Woods's student account at Stanford) Windows executable version of Crowther's original ADVENT zipファイル Mac OS X version of Colossal Cave Adventure DEC PDP/8 OS/8 version of Colossal Cave Adventure IBM Archive: IBM Information Systems Division fact sheet distributed to the press on August 12, 1981.