I designed a spiritual successor to Infocom’s Z-machine, which was originally created for the home computers of the 1980s. Glulx has a 32-bit architecture and a pluggable I/O system. The latter allows text games to behave consistently across many kinds of UIs — native GUI apps, web pages, Slack/Discord bots, even headless modes for automated game-testing.
I implemented the first Glulx interpreter in C. Since then I’ve ported it to ObjC (for iOS) and JavaScript (for the web). I then wrapped the JS version in Electron to turn it into a portable downloadable app.
On the compiler side, I extended Graham Nelson’s Inform 6 Z-machine compiler to generate Glulx game files from the then-standard Inform language. This has been carried forward to the modern Inform 7 language, which is still in use.
Inform 6 is a text-adventure compiler. It is written in pure C. I am not the originator of this project (that was Graham Nelson, 1993), but I added a new 32-bit back end to the code generator (see Glulx).
Over the past decade, I’ve been the primary contributor to the codebase, tidying and refactoring. The biggest job was changing the memory management system from simplistic pre-allocated blocks to extendable memory pools. I also added a test suite of some 700 cases, along with a debugging malloc library, to check for array overflows and other C sins.