The advent of ADVENT

A marvellous thing has just occurred.

Colossal Cave Adventure, the original progenitor of the D&D-like dungeon-crawling game genre from 1977 and fondly remembered as ADVENT by those of us who played it on PDP-10s, is one of the major artifacts of hacker history.

The earliest version by Crowther and Woods (sometimes known as 350-point Adenture) was ported to C by Jim Gillogly in ’77 just after it first shipped. That has been part of the bsd-games collection forever.

What I have have just received Crowther & Wood’s encouragement to polish up and ship under a modern open-source license is not the Gillogly port; it’s Crowther & Woods’s last version from 1995. It has 18 years of work in it that the Gillogly version doesn’t.

I feel rather as though I’d been given a priceless Old Master painting to restore and display. Behooves me to be careful stripping off the oxidized varnish.


  1. Congratulations! I confess to some curiosity as to what is in the 18 years of changes. Rewrite in a more modern language? More rooms? Better parser? The last advent I have played was the version Microsoft sold on a floppy in 19(mumble).

    1. >I confess to some curiosity as to what is in the 18 years of changes. Rewrite in a more modern language? More rooms? Better parser?

      I don’t know yet. This version is in C mechanically translated from FORTRAN. Its maximum score is 430 points.

  2. Eric may not, but I’ll say it:
    That’s not the sort of project that tends to pay well. Folks who appreciate this kind of cultural history could do worse than to drop a dollar in the jar.

  3. Fifteen years ago, I might have gotten excited to write a text adventure in Inform and/or Z-Code. Even that platform looks a bit krunketty these days. It looks like the kids on my lawn all write their text adventures in Python and RenPy.

  4. I first discovered ADVENT on a PDP-8 (if I remember correctly) in the summer of 1981. It’s one of the first computer games I ever played. This is quite an honor, and I’m sure you will be a great caretaker, Eric. I’m looking forward to seeing what’s been done to it in the years since.

  5. >It looks like the kids on my lawn all write their text adventures in Python and RenPy.

    I’m noticing that on my lawn too, and I think it’s very unfortunate, because the new kids’ text adventures* (at least in my metaphorical neighborhood) keep coming out with the bloody annoying twin misfeatures of printing text slower than my reading speed, and showing text one tweet-length chunk at a time due to large font size in small text area below pointlessly oversized character portrait*. I infer these are defaults of RenPy. Having 50 save slots is little consolation. I still liked Long Live The Queen though.

    *Possibly one might want to distinguish these as “visual novels”. But they’re still spewing lots text at me I need to read, and nothing of importance would be lost from the game’s function by removing the character portraits.

  6. @Erik

    printing text slower than my reading speed

    My understanding is that theoretically it’s meant to be the character’s speaking speed.

  7. Working as an IBM mainframe operator on 3rd shift in the late 80’s, I remember an intense three month period where I played ADVENT (350 points) every night on VM/SP CMS. The euphoria I experienced when I finally completed the game and became a “Master Adventurer” has rarely, if ever been duplicated. And the puns! “With your bare hands? Against *his* bear hands?” But I never did crack wizard mode. “Foo, you are nothing but a charlatan!”

  8. I remember stumbling onto an Apple II port somewhere around 1979 or 1980. The first version I saw was on a disk somebody gave me that had a BASIC version, which wasn’t even finished; I was able to get a few rooms into the cave before hitting a dead end because the other locations hadn’t been input into it yet. Since everything in BASIC is “open-source”, I was able to see how the location data was stored and even attempted to make up some more rooms to extend the cave. It was a few years later when I finally got a complete version of Adventure, probably the Microsoft version.

  9. Osborne-1 for me. I still associate Osborne’s particular green font with excursions to Bedquilt and beyond. I played that crap out of that thing (farm life is boring), trying to draw realistic layouts of the map, and getting very used to solving puzzles with no walkthroughs a web search away (I didn’t even have Internet).

    Much later, I played and beat what I think was the 430-point version. I’m certain the Osborne-1 version had a bug that made it impossible to get one of the treasures, and it certainly was missing some 100 points’ worth from the later version I saw. ISTR there’s a version map out there somewhere, and who knows how many people have seen fit to expand it themselves…

    I wonder just how much history one could unearth just by trying to follow the spread of Advent through the computers of the time. Things were a lot less connected back then. The trails might be easier to follow.

  10. >This version is in C mechanically translated from FORTRAN.

    Hmm… has the C code been hacked on any since the translation? How recently was the translation done?

    I have the general sense that FORTRAN-to-C transpilation has improved significantly in recent years. Maybe it would be better to start with the FORTRAN?

    1. >Hmm… has the C code been hacked on any since the translation? How recently was the translation done?

      I don’t know.

      The program is not large – 2.4KLOC. Hand-translation is probably feasible.

  11. There’s going to be some archaeology required here. I have a CD from 1992 which contains a Usenet archive which includes posts containing 350 point Adventure source in Fortran with a bit of finessing for VMS.

    As a Fortran compiler would appear to be everywhere a C compiler is, does it make sense to keep it in as original form as possible?

    (The reason I remembered I had a CD etc etc is that back in about 1992 when Windows NT first previewed I ported Adventure from those sources via a port of f2c and the tools required to make that build. An interesting exercise. I don’t think I ever played the result much.)

    I’ve just attempted to build this with gfortran but there appear to be some loose non-printing characters about that are upsetting the parser. Shouldn’t take long to twiddle. I know almost nothing about Fortran…


  12. I’m having a hard time coming to terms with the excitement I’m experiencing right now.

    I need to play it. Very need.

  13. My ADVENT platform was Multics, between approximately 1980 (when that system first got installed at Avon) and 1981 (when the sysadmins got too accomplished at hunting down and removing any existing or running copies). It must have been a FORTRAN version (no Multics C was available then), although I don’t know how close it was to the original C&W release and can’t recall the points total. I do remember someone else spending ages attacking the binary with the machine level debugger (there was no source code) trying to reverse engineer the wizard password algorithm, but they never succeeded.

    It would be most interesting now to get hold of the source or binary, and run it on the current emulator.

  14. OT:

    Eric, could I request that you write a post commenting on the link below?

    Now, this doesn’t affect me (or, likely, a good chunk of your readership) directly because I already avoid Netflix like the plague, but that they could get away with something like this indicates that the situation for general purpose computing is bad and likely to get worse: Namely, Android, which is the least evil mobile OS that isn’t vaporware, is deeply, unacceptably evil: As far as I can tell, almost all Android devices are sold without root, and almost all require the system be cracked by the owner to obtain root. If any significant fraction of Android devices were rooted, Netflix wouldn’t be able to get away with this. And them doing this makes the situation likely to get worse, lots of power users that aren’t committed to FOSS principles are going to stop rooting their devices, which will decrease the manpower available to make sure root is available, and also the fraction of users other companies might alienate by making their apps depend on an unrooted device. As I see it, we’re already living in a dystopia so deep (tech-wise) that it would have looked like rock bottom 20 or 30 years ago, and we’re *still in freefall*. Now from some of your writings, ISTR that things looked pretty bleak around 1990. How does now compare to then? In your view, how bad are things, really? And what needs to be done to turn things around?

  15. VMS version on a VAX-11/780 for me, sometime around the mid 1980s. I remember getting so frustrated wandering around the “maze of twisty little passages” that I finally broke into the debugger and figured out a way to teleport myself to either end of the maze by setting the right value into the right memory address. Then I wrote a script that would start Advent in the debugger, set a break point automatically with a break condition that would trigger whenever I entered the maze, and defined a keyboard macro to set the magic value that teleported me to the other end.

    Some might call that cheating, but I just considered it a clever and creative way of solving a problem. That is the hacker way, after all, is it not?

  16. @Jeff L – if that approach is legit for James T Kirk, it’s good enough for you.

    Nice one :)

  17. Between the Netflix “power move” and the recent vote on Net Neutrality, I see a bad moon a’ risin’.

    Don’t know what to do about it, though.

  18. I solved the mazes (there are two) of twisty passages the “correct” way – dropping items in each room to serve as an ID, then carefully mapping where each direction led from each room.

    The thing I find interesting about this is that Advent was the earliest instance I can recall where I was forced to dismiss the assumption that leaving a room from one direction implied entering the next room from the opposite direction. You’re prepared for this by certain irregularities in the locations above ground, or at the least by the east end of the Hall of Mists(?) leading north into the Hall of the Mountain King, only from the east. (I’m sure this isn’t that hard for anyone, but c’mon, I was a kid.)

    So by the time I got to the “all alike” maze, and got over the initial feeling that I’d been punished with eternal entrapment for daring to enter (a la some fairy tale) and that there might be something beyond it, I got to work, and was rewarded. I did the “all different” maze the same way. Though I noticed the room descriptions were slightly different, I trusted item dropping more.

    The whole time I kept being concerned that my new assumptions might be bad – that dropped items might move around, or that passages would shift, disappear, …who knows? I’m sure I didn’t think of it that way at the time, but this was another step in my exploration of experimentation and proof – a second terrain existing alongside the terrain I was imagining in that cursed maze. Strange new territory for an eight-year-old. Worth the excursion, though.

  19. I’m not sure if I’ve played ADVENT or not. It doesn’t help that despite maybe not playing it I’ve come to recognize the various references to it, like “maze of twisty little passages”, or “GET LAMP”.

    Scratch that, I *have* played it, even if only briefly, and I’m not quite sure where. I found a JavaScript port on the web and poked at that. I recognized the road by the well house. When I played it the first time, I managed to get lost pretty quickly. So when I quit out of frustration and got called a rank amateur, I felt put off enough that I decided I was never going to play that stupid thing again if it was going to insult me.

    I wonder if it was on the computer that had a port of Dungeons of Moria on it. There were other dungeon-themed games on that computer, left there by a previous owner. Good god, I logged way to many hours in Moria. I refuse to feel sorry about it, though.

    I really should go back and try ADVENT again. I look forward to seeing how your port progresses. Part of me is tempted to try to contribute, but I’m not sure what value I can add to such a project.

    1. >sure enough, here it appears to be, along with several others:

      If you look, you’ll find that the 2.5 copy there doesn’t have open-source licensing. Or man page. The other collected versions have similar issues – the source code is there, yeah, but the conditions for use and redistribution and modification are not at all clear.

Leave a comment

Your email address will not be published. Required fields are marked *