Colossal Cave in Dialog

It seems to be a rite of passage for each new parser authoring system to be used to implement the original 350-point Colossal Cave. I’m curious, has anyone done this for Dialog yet?

If not, I’ve been looking for a way to practice my Dialog skills, so I might give it a shot.


#get #lamp


I’m always down for another port of Adventure. (Really!) I’d like to see this, especially if you release the code.

Sounds great; looking forward to seeing it. Where is the best place to go for technical documentation on the 350 pt Colossal Cave Adventure?

Woods’ Fortran code is actually meticulously commented, such that I found it fairly clear without prior familiarity with Fortran. Donald Knuth’s later literate programming version in CWEB uses much of Woods’ commentary verbatim.

Great! And where would I find that?

advent-original.tar.gz is the one you want, I think.

EDIT: And to actually play the PDP-10 Fortran version without having to compile it yourself, there’s a nice package put together by Jimmy Maher using the SIMH emulator.


Is this a thing which is happening? If so, is there a public repo where we can watch?

It probably will be, at this point; I’ve spent the last few weeks training for a new job and classes are about to start up again, but once my life settles down a little I do want to sink my teeth into Dialog, and Adventure was my first introduction to IF so I’ll always have a soft spot for it.


For anyone who wants to follow along, I’ve created a repository.

Also, a question for the community. Should movement by keywords (“hill” instead of “west”, for example) be subject to normal movement restrictions, like the randomness in Bedquilt and Witt’s End? Or should it effectively teleport you (like the Inform implementation does)?


From the “this is a system demo” standpoint it seems like the former is more valuable.

1 Like

Ideally, in my opinion, it should follow the original, which allows the player to cut through the randomness with location keywords in some places (SLAB from Bedquilt always leads to the Slab Room; SECRET in Hall of the Mountain King always slips past the snake into the Secret Canyon) but not others. (FOREST, from You are in open forest with a deep valley to one side, has a 50% chance of taking you to You are in open forest near, both a valley and a road and a 50% chance of leaving you in the same place. Witt’s End, meanwhile, doesn’t allow keywords at all.) But being that scrupulous about it (the Inform version is not) would require you to spend many exciting evenings squinting at the numerical travel table in the FORTRAN data file.


My current thought, based on “how would I build this puzzle today?”, is to allow keyword movement to teleport to adjacent visited rooms and adjacent aboveground rooms. In a few specific places (Witt’s End and the Forest, any others?) it instead redirects to normal compass movement, with all the randomized annoyance that entails.

This makes things like Bedquilt → Slab work the same way as Y2 → Plover (i.e. you can teleport as long as you’ve visited your destination), which has a certain elegance to it. And it also allows people to “go hill” or “go building” from At End Of Road, which seems like the author’s intent (since no compass directions are provided in the descriptions).


I know this is what Graham Nelson did, but I’m not sure I see the reason to enable travel by keyword only after the rooms have been visited. A first-time player would have no real way to “cheat” using travel keywords because they wouldn’t know the names of unvisited rooms, or XYZZY and PLOVER, etc., in the first place. On the other hand, for someone who has either already played, or doesn’t care about “playing” as such and only wants to explore the game world, the faster navigation allowed by the travel keywords might be a welcome convenience.


A fair point, and honestly I agree. I’ll change that.