cyo
encrusted
cyo | encrusted | |
---|---|---|
1 | 1 | |
181 | 127 | |
- | - | |
0.0 | 0.0 | |
over 4 years ago | almost 2 years ago | |
JavaScript | Rust | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cyo
-
50 years of text games – 1977: Zork
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.
encrusted
-
50 years of text games – 1977: 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
What are some alternatives?
zork1 - Zork I (Microcomputer Version) by Infocom
twinejs - Twine, a tool for telling interactive, nonlinear stories
RockMUD - Node Websocket MUD Server. Demo: https://rockmud.herokuapp.com/
mud-eventemitter
lectrote - The IF interpreter in an Electron shell