Skip to content

🧞‍♂️ Public version of The Archive, the text adventure game on langworth.com, but without secrets.

License

Notifications You must be signed in to change notification settings

statico/the-archive-public

Repository files navigation

The Archive - PUBLIC REDACTED VERSION

This is the public redacted version of the text adventure game found on https://langworth.com. It's mostly the same source but without the initial puzzle secret and most of the story and secrets.

👉 The file you probably want to look at is the-archive.inform/Source/story.ni. 👈

It's built with Inform 7, a system for creating interactive fiction (IF) games like Zork. On the web site it runs in a CRT terminal emulator (langterm) with a Z-machine HTTP server (glulxe-httpd).

You almost certainly want to read Inform 7 for Programmers.

image

Development (macOS)

We'll install the IDE and use its pre-compiled tools, but I prefer to do development in the terminal using glulxe.

  1. brew cask install inform - installs the IDE and compiler
  2. brew install glulxe frotz - installs a command-line Glulx player and dfrotz for testing
  3. Open the extensions folder from Inform.app (probably ~/Library/Inform/Extensions) and download https://github.com/i7/archive and extract the contents there
  4. Make sure the game compiles from Inform.app by opening the-archive.inform and clicking the "Go!" button.
  5. npm install -g nodemon for an easy file watcher
  6. Open three terminals:
  7. vim story.ni - to edit the story (and install my port of the vim-inform7 syntax file)
  8. nodemon -e ni -x ./build - to build the .ulx file when the story changes
  9. nodemon -e ulx -w run -w . -x ./run - to run a script through the game when the .ulx file changes

Testing

  1. To build a non-ncurses, text-only version of glulxe: Check out glulxe and cheapglk beside each other. Build cheapglk and then glulxe. Copy the glulxe binary to dglulxe somewhere in your path. (The "d" is for "dumb.")

./test will compare the game's output against the saved snapshots.

Run ./test -s to update the snapshots.

Deploy

Run RELEASE=1 ./build and copy the .ulx file to the server.