Revisit Colossal Cave with Open Adventure

Groundbreaking 1970s interactive fiction game Adventure gets new life—and new contributors—with an open source license.
542 readers like this.
open source button on keyboard

In the history of computer games, very few are as influential as Colossal Cave Adventure. Initially developed in 1976 by Will Crowther and expanded by Don Woods in 1977, Adventure was the first interactive fiction game and inspired countless other computer games. Adventure directly or indirectly led to the entire corpus of text-based adventure games, and by extension, graphical adventure games.

Crowther wrote the original release of Adventure in FORTRAN for the PDP-10. This initial version had puzzles for users to solve as they explored an environment based on the Colossal Cave complex in Kentucky, but it lacked a scoring system. Woods' enhancements added more puzzles and a scoring system. This release, where the user could earn a maximum of 350 points, is the iconic version of the game. Most ports derive from it, though not all ports are straight ports; many implementations added their own puzzles and increased the maximum score available. With numerous unofficial branches, Adventure has a publishing history nearly as complex as the maze puzzles found within the game itself.

Open Adventure welcome screen

A Crowther- and Woods-approved UNIX port of 1977's 350-point release of Adventure, programmed by Jim Gillogly and available as part of the bsd-games package on modern BSD and Linux distributions, has been available under a BSD license, but the official Crowther and Woods development branch, which culminated with the 430-point Adventure 2.5 in 1995, never had a formal open source license attached to it—until now.

Recently, Eric S. Raymond, author of The Cathedral and the Bazaar, with the approval and encouragement of Crowther and Woods, released the official version of Adventure under a BSD 2-clause license. Raymond calls this release Open Adventure to avoid conflict with the various unofficial releases of Adventure that have version numbers higher than 2.5. Also, Open Adventure compiles to an executable named advent, which was the command for Crowther's original PDP-10 version, to avoid conflict with the 350-point bsd-games version's use of "adventure" for its executable.

Raymond created a repository on GitLab to host Open Adventure and start work on improving the code. Yes, Raymond and a few others are actively improving code from a 1995 release of a game whose development started in the 1970s. Most of the work so far adds historical information to various text files in the repository, but there have also been several code enhancements. The makefile has been improved, regression tests have been added, and some of the code has been cleaned up. However, there is still a lot of work to do; the source code for Adventure 2.5 was automatically converted from FORTRAN to C, so it's nowhere near as clean as it could be. However, the comments are still intact and worth reading for anyone interested in taking a look at a piece of computing history.

While welcome, making Adventure 2.5 available under an official open source license is less significant than the work being done to clean up the project's code. It would have been easy to simply put the BSD license on the project, do enough coding to get the game to compile, and call it done. Instead, the work to translate the "FORTRANish C" into modern C is a very interesting programming exercise. Looking through Open Adventure's Git history will be a valuable learning experience for anyone learning to improve suboptimal code.

Another nice benefit of Open Adventure is that it increases awareness of interactive fiction games in general. Interactive fiction games are not just relics of a bygone era; people are still developing them. You can find a plethora of games and the tools to play them (though not all of them are open source) on the Interactive Fiction Archive, and there is even an annual Interactive Fiction Competition. The availability of many newer, easier to use tools for crafting interactive fiction games makes it unlikely that many games will be developed using Open Adventure's code, but all of the recent interest in Open Adventure going open source is good for bringing awareness about interactive fiction and the community around it.

If you have never played an interactive fiction game before, give Open Adventure or a modern interactive fiction game a try. The experience might be different from what you are used to, if you have only played modern, action-oriented video games, but interactive fiction games are challenging and rewarding. There is nothing quite like having an a-ha moment when you figure out the solution to a puzzle you have been stuck on for days.

Do you have fond memories of playing Colossal Cave Adventure or another interactive fiction game? Share them in the comments below.



I was a Hitchhikers Guide To The Galaxy fan myself. :)

As of July 2017, "Open Adventure" still has a long way to go before it reaches the code quality of the original... and it seems to be moving in the wrong direction. Not only are some of ESR's refactorings incorrect, there are now a number of crashing bugs in the game, where Don Woods' original code, AFAIK, had none. For a faithful port of the original game to modern readable C, you can't go wrong with if I do say so myself. My version is also playable online, through the magic of the Z-machine. (Play it now via the link above!)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.