An adventure through Colossal Caves adventure and the era it evolved in
  • Rust 89%
  • Python 5.9%
  • CSS 4.4%
  • Dockerfile 0.3%
  • Shell 0.2%
  • Other 0.2%
Find a file
David Pollak a5a11221fa
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Maybe CI fixes
Signed-off-by: David Pollak <feeder.of.the.bears@gmail.com>
2026-09-07 09:28:48 -04:00
data Initial commit 2026-03-16 09:47:06 -04:00
docs Maybe CI fixes 2026-09-07 09:28:48 -04:00
images/rooms Initial commit 2026-03-16 09:47:06 -04:00
scripts Initial commit 2026-03-16 09:47:06 -04:00
src Added CI 2026-09-06 17:40:23 -04:00
static Initial commit 2026-03-16 09:47:06 -04:00
tests Added CI 2026-09-06 17:40:23 -04:00
.gitignore Initial commit 2026-03-16 09:47:06 -04:00
.woodpecker.yml Maybe CI fixes 2026-09-07 09:28:48 -04:00
Cargo.lock Initial commit 2026-03-16 09:47:06 -04:00
Cargo.toml Initial commit 2026-03-16 09:47:06 -04:00
Dockerfile Initial commit 2026-03-16 09:47:06 -04:00
index.html Initial commit 2026-03-16 09:47:06 -04:00
LICENSE Initial commit 2026-03-16 09:47:06 -04:00
README.md Added CI 2026-09-06 17:40:23 -04:00
rebuild.sh Initial commit 2026-03-16 09:47:06 -04:00
Trunk.toml Initial commit 2026-03-16 09:47:06 -04:00

Retro Adventure

A full port of the 1976 Colossal Cave Adventure as an interactive FORTRAN-to-Rust tutorial.

Play it online | Source Code


What Is This?

Retro Adventure is a faithful re-implementation of Will Crowther and Don Woods' Colossal Cave Adventure (1976) — the game that launched interactive fiction, inspired Zork and Infocom, and helped shape computing culture. The original was written in FORTRAN IV for a PDP-10 mainframe. This version is written in Rust, compiled to WebAssembly, and runs in your browser.

But it is more than a game port. Every room in the cave is paired with a side-by-side comparison of the original FORTRAN code and its Rust equivalent, plus a "Machine Room" essay about the computing history behind the code. As you explore the cave, you explore the evolution of programming languages — from COMMON blocks to modules, from GOTO to pattern matching, from 36-bit mainframes to WebAssembly.

Quick Start

Docker

# Build the WASM release
trunk build --release

# Build and run the container
docker build -t adventure-cave .
docker run -d -p 8080:80 adventure-cave

Open http://localhost:8080 in your browser.

Development

# Prerequisites
rustup target add wasm32-unknown-unknown
cargo install trunk

# Run with hot-reloading
trunk serve

See docs/how_to_build.md for full build instructions.

Features

  • Complete 1976 Adventure: all 140 rooms, all puzzles, all treasures, dwarves, the pirate, the endgame — faithful to the Crowther-Woods original
  • IBM 3270 terminal emulator: green phosphor text, blinking cursor, scanline effects, CRT glow — all in CSS
  • AI-generated room illustrations: 140 unique images (512x512 PNG) created with FLUX Schnell, in a Tolkien-inspired style
  • FORTRAN-to-Rust tutorial: every room shows the original FORTRAN IV code alongside its Rust translation, with a discussion of the translation
  • Machine Room essays: computing history vignettes covering the PDP-10, core memory, ARPANET, timesharing, and the people who built them
  • Tutorial explore mode: browse all 140 tutorials independently of gameplay, with quick-jump to 13 featured rooms
  • Full save/load system: multiple named saves in browser localStorage, plus JSON export/import for portable backups
  • Toggleable images: collapse the image panel for a pure text experience
  • 350-point scoring: matches the original scoring system
  • Runs entirely in the browser: no server-side logic, no accounts, no tracking

Documentation

Tech Stack

Component Technology
Language Rust 1.94 (2021 edition)
UI Framework Yew 0.21 (CSR mode)
Compile Target WebAssembly (wasm32-unknown-unknown)
Build Tool Trunk
Browser APIs wasm-bindgen, web-sys, js-sys, gloo
Serialization serde + serde_json
Styling CSS (IBM Plex Mono, custom 3270 theme)
Images FLUX Schnell (AI-generated, 512x512 PNG)
Deployment Docker + nginx:alpine

Credits

  • Will Crowther — created the original Adventure in 1975-1976 at BBN Technologies, based on his exploration of Mammoth Cave
  • Don Woods — expanded the game in 1976-1977 at Stanford, adding scoring, puzzles, dwarves, and the endgame
  • The original advent.dat data file is used with gratitude. The game has been freely copied and redistributed since the late 1970s.

License

New code in this project (the Rust source, CSS, documentation, and tutorial content) is licensed under the Apache License 2.0.

The original game content — room descriptions, messages, puzzle logic, and the advent.dat data file — originates from the 1976-1977 Crowther-Woods Adventure. This content has been freely redistributed across the ARPANET and internet since the late 1970s and is generally considered to be in the public domain, though it was never formally released under an open-source license. We use it here in the same spirit of free sharing in which it has been distributed for nearly fifty years.

Room images were generated using FLUX Schnell and are included as part of this project.


Source Code on Codeberg