Adventure in Unlambda

世界最初のアドベンチャーゲームであり、「アドベンチャー」ゲームというジャンルの語源ともなった Colossal Cave AdventureUnlambda に移植しました。

advent-unlambda.tar.gz (github)
(2011/12/15 ソースコードが一部抜けていたのを修正しました)

コードサイズは約 600KB で、自分の知る限り最も大規模な Unlambda プログラムです。

Colossal Cave Adventure

Colossal Cave Adventure(Adventure, ADVENT とも言われる)は 1976-77 年に William Crowther と Don Woods によって書かれました。画像はなく文字のみで、表示されるメッセージをたよりに 1-2 語の簡単な英語でコマンドを打ち込んでゲームを進めていきます。
以下は Adventure 序盤のスクリーンショット(?)です。

Welcome to Adventure!!  Would you like instructions?
** no

You are standing at the end of a road before a small brick building.
Around you is a forest.  A small stream flows out of the building and
down a gully.
* east

You are inside a building, a well house for a large spring.
There are some keys on the ground here.
There is a shiny brass lamp nearby.
There is food here.
There is a bottle of water here.
* take keys
OK.
* eat food
Thank you, it was delicious!

現在ではこのようなスタイルのゲームはテキストアドベンチャー、あるいは海外ではインタラクティブ・フィクションと呼ばれています。

Unlambda 版

Adventure にはいくつもの派生版、移植版がありますが、この Unlambda 版は 350 point version と呼ばれるオリジナルを Donald Knuth 教授が文芸的プログラミングで書きなおした CWEB版 を元にしています。

UnlambdaインタプリタEmil Jerabek 氏のものが速くておすすめです。Unlambda 2.0.0 付属の c-refcnt インタプリタでも十分動作します。

ゲームについて

なにぶん昔のゲームなので難易度は高めです。といっても警告なしに理不尽に死んだりはしないので、いろいろ試してみるといいでしょう。google:Colossal Cave Adventureググるとマップやヒントが見つかります。詰まったらネタバレを見てしまうのもいいでしょう。

ゲームの基本的な目的は洞窟から宝物を持ち帰ることです。宝物はスタート地点から見える建物の中に置くと得点になります。満点の 350 点を目指しましょう。

以下はコマンドの一部です。コマンドを探すのもゲームの楽しみなので、基本的なもののみ紹介します。

NORTH (N), SOUTH (S), WEST (W), EAST (E), UP (U), DOWN (D), NW, NE, SW, SE
指定した方向に進む。コマンドは最初の5文字しか認識しないため、NORTHEAST と打つと NORTH の意味になってしまうので注意。
BACK
前にいた場所に戻る。(戻れない場合もある)
LOOK (L)
あたりの様子を表示する。
TAKE (GET)
指定したものを取る。
DROP
指定したものを置く。
INVENTORY (I)
持っているものの一覧を見る。
LAMP ON
ランプを点ける。
LAMP OFF
ランプを消す。
SCORE
現在の得点を見る。
QUIT
ゲームを終了する。

look と inventory のショートカット L と I は本家 Adventure では使えませんが、以降のテキストアドベンチャーでは標準的なコマンドであり便利なので追加しました。

コードについて

実装に使ったテクニックなどは、こちらの記事で紹介しています。
Adventure in Unlambda 解説 その1
Adventure in Unlambda 解説 その2

参考リンク

wikipedia:アドベンチャーゲーム
wikipedia:en:Colossal Cave Adventure
The Colossal Cave Adventure Page(様々なバージョンのダウンロードやヒントなど)