encrusted
zork1
encrusted | zork1 | |
---|---|---|
1 | 4 | |
127 | 1,093 | |
- | - | |
0.0 | 0.0 | |
almost 2 years ago | about 5 years ago | |
Rust | ZIL | |
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.
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
zork1
-
Zarf Updates: A treasury of Zork maps
Thanks, looks like this is the relevant code: https://github.com/historicalsource/zork1/blob/master/1actio...
As I understand it, the thief doesn’t take room exits, but rather warps through the rooms sequentially in the order they’re listed in the code, skipping any that are sacred or non-land.
-
I am writing an interactive fiction builder in C#. I decided to put it to the test by recreating Zork 1
Indeed I made an assumption without looking into it first. However, I did just find some Zork 1 source code on Github and it doesn't seem that I was too far off. Take this file for example which appears to largely confirm my statement of "likely all authored/coded screen by screen and command by command". You can essentially see how they're coding each action and result on a case-by-case basis. I am not saying that's bad or anything. I have a substantial advantage over their 40-year-old technology and resources, but it does seem I was right about how early text-based adventures were developed.
-
50 years of text games – 1977: Zork
Most of Infocom classics can be found at e.g. https://github.com/historicalsource/zork1
-
In the original Planetfall, is the lantern actually coded to work properly?
Compared to the lamp in Zork 1 for example -- it sets the LIGHT/LAMP-ON bit (along with the candles, matches, torch, etc. )
What are some alternatives?
twinejs - Twine, a tool for telling interactive, nonlinear stories
cyo - Simple HTML Storytelling Engine
RockMUD - Node Websocket MUD Server. Demo: https://rockmud.herokuapp.com/
inform - The core software distribution for the Inform 7 programming language.
lectrote - The IF interpreter in an Electron shell
mud-eventemitter
planetfall - Planetfall, by Steve Meretzky (Infocom)