50 years of text games – 1977: Zork

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • twinejs

    Twine, a tool for telling interactive, nonlinear stories

  • RockMUD

    Node Websocket MUD Server. Demo: https://rockmud.herokuapp.com/

  • Let me shamelessly plug a project I'll probably always be poking at: https://github.com/MoreOutput/RockMUD

    I mainly played DIKU stuff so it feels a bit like that OOTB, but its very flexible (i hope).

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • cyo

    Simple HTML Storytelling Engine

  • I've used this angular framework in the past with great success https://github.com/danielstern/cyo

    Searching "cyoa" on github brings back a tons of results that you can filter through to meet your tech stack needs.

  • zork1

    Zork I (Microcomputer Version) by Infocom

  • Most of Infocom classics can be found at e.g. https://github.com/historicalsource/zork1

  • lectrote

    The IF interpreter in an Electron shell

  • There are still people making new works of interactive fiction, including in the parser-based style of Adventure or Zork. You can find a lot of the more recent games on IFDB[0] and general info about IF and the community on IFWiki[1]. Most modern parser games are built for VMs with interpreters available for many operating systems and types of devices, with Lectrote[2] being a common recommendation for desktop platforms.

    [0]: https://ifdb.tads.org

    [1]: http://ifwiki.org/index.php/Main_Page

    [2]: https://github.com/erkyrath/lectrote

  • encrusted

    A z-machine (interpreter) for text adventure games like Zork

  • One of the coolest technical aspects of early Infocom text adventure games is that most games weren't actually written using native assembly code for the platforms they ran on, and were instead compiled down to "z-code", a bytecode which ran on the "z-machine" virtual machine architecture. Z-machines are pretty niftly little bits of tech, as while they have a lot in common with regular 'ol machine code, the z-machine spec also includes dedicated instructions for fetching text input from the user, outputting text to the console, saving/loading data to disk, etc...

    Having games target the abstract z-machine platform made it incredibly easy for Infocom to port games across platforms, as instead of re-writing every game from scratch, they could simply write a z-machine interpreter for said platform, and immediately gain access to their entire adventure game catalog!

    A happy side-effect of all this is that it's super easy to run these classic adventure games on modern platforms, as instead of emulating the UI/UX of a 80s microcomputer, it's possible to write a z-machine interpreter that takes full advantage of modern GUIs.

    One of my personal favorite modern z-machine interpreters is `encrusted` [1], which is written in Rust that runs on the Web thanks to WebAssembly. As a fun side-project, I ended up forking the project and making `embcrusted` [2], a z-machine interpreter that can run on embedded platforms without a full C-library. In a weekend or two of hacking, I was able to port a z-machine interpreter to my mechanical keyboard, in order to get the "authentic" experience of playing a text-adventure game through a teletype :)

    [1] https://github.com/DeMille/encrusted

    [2] https://github.com/daniel5151/embcrusted

  • If TypeScript and OO are your thing, I made some code for this: https://gitlab.com/brlewis/mud-eventemitter

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts