We just released PunyInform v1.0, a library for writing interactive fiction or text adventures in Inform 6, with focus on making the games fast enough and small enough to be enjoyed on 8-bit platforms like the Commodore 64. Games are compiled to Z-code, the format used by Infocom, and more specifically they can be compiled to z3, z5, z7 or z8 format. This allows the games to be played on anything from an early eighties home computer to the modern computer of your choice running Windows, Mac OS, Linux or pretty much any other operating system.
The main github page: GitHub - johanberntsson/PunyInform: A fast and compact library for writing text adventure games for the Z-machine running on 8-bit computers as well as other platforms.
The manual (also included as PDF with the library): Manual ¡ johanberntsson/PunyInform Wiki ¡ GitHub
The download page: Releases ¡ johanberntsson/PunyInform ¡ GitHub
PunyInform behaves very much like the standard Inform 6 library. Some features have been dropped and others have been altered to gain speed and decrease code size. Also, some features are optional, so you can choose to enable or disable them depending on the game. The Designerâs Manual, 4th Edition (DM4) is still recommended reading, and the PunyInform manual lists everything that is different from the standard library.
While the smallest possible Z-code version 5 game using the standard library takes up 57.8 KB, the same game compiled with PunyInform takes up only 23 KB. With abbreviations enabled, the PunyInform version shrinks to 22.2 KB. PunyInform comes with a standard set of abbreviations which is good for shrinking the strings used by the library, but of course you can also supply your own abbreviations.
Additionally, you can compile games to Z-code version 3. This allows the minimal game size to go down to 21.2 KB, with abbreviations. With the standard library, itâs not possible to compile a Z-code version 3 game.
The most notable feature which isnât present in PunyInform is the handling of identical objects - all objects need to be distinguishable from each other. Having a red book and a green book isnât a problem, but having two green books is. Also, when compiling to Z-code version 3, you canât use dynamic object creation or destruction.
PunyInform comes with a few handy extensions. Converting extensions written for the standard library should be quite straight-forward as well, in most cases. Many extensions will work out-of-the-box.
PunyInform comes with a fully working demo game called Library of Horror, as well as a minimal game template which can be used as a starting point for building your own game. There is also an implementation of Cloak of Darkness, which is compiled with the standard library if you compile it to a z8 file, but with PunyInform if you compile it to z3 or z5.
PunyInform requires the recently released Inform v6.34 compiler, which can be found at Index: if-archive/infocom/compilers/inform6 .
To compile a game, unpack the files, place the Inform 6 compiler binary in the base directory, and type i.e. âinform6 +lib -v3 -s -e library_of_horror.infâ (type âinform6 -h2â for an explanation of all commandline switches).