Colossal Cave Adventures online

I’ve ported some of the Colossal Cave Adventure versions (Advent 350, Advent 430, Advent 440 and Advent 501) to javascript and added a mouse-based UI and an automap-like feature.
The idea is to revisit the old Colossal Cave text adventures using a more modern interface.

Check them out at

1 Like

That’s actually… very nice. Did porting the different score versions involve mostly porting the basic system, then using different data files, or was it more elaborate than that?

Could you have a feature to play without the map?

(Also great would be if parts of the map only revealed themselves as you entered particular locations, but it looks like you’ve done enough work already.)

I originally ported the Fortran source of each program version to java, then recently I ported the java versions to javascript to put on the website.
They all use the original data files and should hopefully play accurately.

The java versions did have an option to display/hide the map - I just didn’t include it in the javascript ports (maybe in future …).

1 Like

I’ve added the Zorks I to III. They’re not fully complete (no Save/Restore yet) but they seem to play ok.

1 Like

Added Zork: The Undiscovered Underground.

Saves and Restores work now.

1 Like

Added Enchanter.

I’ll be slowly adding the other z3, z4 and z5 games as time permits.

Note these will require the storyfile to play.

1 Like

Awesome job on this, Flatearther.

1 Like

Thanks. I hope to have the rest of the Infocom games up in a week or two.
Let me know of any problems you find.

Some links to the games won’t work, for example when I click on Zork II, nothing happens. Same with some others.

Also, what does it mean when you say that some of the games require the storyfile to play?

What browser/version are you using?
I’ve checked the games in Chrome, Firefox and IE (latest versions) but I haven’t checked other browsers.
Strange that Zork I works for you and Zork II doesn’t.
When you click on the Zork II link does it at least take you to the second page?

For Enchanter onwards I can’t provide the story file (the *.Zn or *.DAT file) on the server due to copyright issues, so you need to point the browser at your own version of the file.
To do this click on the “Select a Story file” button just below the game map at the bottom of the screen. That should bring up a file chooser dialog where you can locate your story file.
(If you don’t own the story file for the game, you can’t play it on this site, sorry).

I’m using Chrome.

Just now when I visited the page I can click all game links, and they work. I don’t know why for some reason for example Zork II didn’t work yesterday (it was not possible to click it; the cursor didn’t change into a hand). Anyway, all seems to be clear now, thanks for the help!

The social media buttons were obscuring the lower game links at lower resolutions (so you couldn’t actually click on the links).
I’ve removed them for now.

I’ve put up A Mind Forever Voyaging.
It’s given me a few problems (mainly the quote boxes and the read_char routine) but it’s mostly good now except for an intermittent bug in the status bar which I’ll hopefully fix soon.
I managed to play it through to completion anyway.

I’ve bypassed the annoying protection scheme by displaying the required security code whenever the game asks for it.

Great game I hadn’t played before, certainly ahead of it’s time!

Very nice! What path did you use to get from Fortran to Javascript? Particularly for 440 and 501 with all their loose ends, that’s impressive.

(FWIW, your 501/551 have subtly different bugs from the Fortran versions I’m aware of; e.g. “IN. IN. DRINK. PUT FOOD IN BOTTLE. DRINK” crashed MCDO551, at least on my machine, but caused the bottle to vanish in yours.)

I’m also impressed by the many maps; where did you find them, and/or how did you make them? They’re very similar to a map of Dave Platt’s 550-point Adventure I’ve seen, so my guess is that you started with that one and then hand-edited it to create all the others?
Here’s a scan of the Platt map (on Dave Platt’s own site).
Dave credits the map to one Bruce Beaumont.

Originally I converted all of them from Fortran to Java Swing. That involved a heavy dose of rewriting to clean up / modularize the code. In some ways moving from one version to the next got easier as quite a lot of the code is re-used/similar and I could leverage my existing code. Then about a year ago I decided to get into the web thing so I ported the Java Swing code to javascript (much easier than the original effort).

Hmm, yes that’s a bug! I’ll take a look. I remember the 501/551 multi-line parser is quite challenging.

And the maps are all based on that Dave Platt 550 map as you point out. All hand-edited in MS Paint. I somehow got hold of a very clean png version and used that as a base for the others. Great map; I didn’t know it was Bruce Beaumont who drew it. I’ll put his name on the maps now I know.

I finally got around to porting the original Will Crowther Advent (the 73-03-11 source). Interesting to compare with the 350 version to get a feel for each man’s (Crowther and Woods) contributions. Also added a “Map” button to hide the automap.

A rough summary:

		Additions by Woods:
		1. Increased map/story by about 70%
		2. Dwarfs move along realistic paths
		3. Implemented Inventory list
		4. Added timing events (lamp, drinking)
		6. Added Repository Endgame
		5. Added scoring
		6. Added intransitive verb handling
                    7. Added vending machine maze
                    8. Added pirate

Typing too fast as usual. I meant the 77-03-11 source, and the numbered points are meant to be sequential.

Oh hey, interesting. I ported Crowther’s version to Inform 7 a few years back. Are you familiar with that language?

Yes I dabbled with Inform 5/6 back in the day when I thought I could create interactive fiction. I quickly realized there are far more talented individuals out there doing that.
Congrats on the Crowther port! If I’d read your posts earlier you’d have received posts like “Whats with OPEN GRATE at Cobble Crawl?”.
Certainly a flawed piece of work but the start of everything that followed. I think understanding Crowther’s code by porting it gives a special understanding of his thought process and that’s important to those of us that deeply appreciate the game and it’s history.

It’s been a while but I finally got around to porting Dave Platt’s ADV550:

1 Like