PunyInform

From IFWiki

PunyInform
Authoring system
Simplegame.png
Links Home page Download Run online
Developers Johan Berntsson, Fredrik Ramsberg, Pablo Martinez, Tomas Öberg
Format Z-code
Interaction style Parser
Systems Browser, Windows, macOS, Linux, MS-DOS, Classic Mac OS, Acorn Archimedes, Atari ST, Commodore Amiga, Other
System details PunyInform games can be developed on any platform which the Inform 6 compiler can be built for. There are usually binaries available for Windows and macOS, but you should also be able to build the compiler for Linux, Amiga, Archimedes, Atari ST, BeOS, Mac Classic, OS/2, MS-DOS, Unix, VMS and EPOC.
Latest version 5.4 / 10 Apr 2024
Status Stable
Uses interpreter
Multimedia support
License MIT
Notes See also: Inform 6.
Browse the software database
Edit this infobox

PunyInform is an alternative to the standard Inform 6 library, developed by Johan Berntsson and Fredrik Ramsberg, with additional coding by Pablo Martinez and Tomas Öberg.

PunyInform is meant to be a lightweight alternative to the Inform 6 library, specifically for authors writing games for 8-bit platforms. Since games are compiled to Z-code, they can of course be played on more modern platforms as well. Compared to the Inform 6 library, PunyInform is more compact and has been developed with a greater focus on execution speed on slow platforms. Also, it can compile to z3 format.

From a programmer's point of view, PunyInform is very similar to the Inform 6 library. PunyInform lacks a few of the standard library's features, and some features are implemented in a different way to make for smaller and faster code. Some features are optional, so you can decide if your project needs them or if you'd rather save some space.

Platforms

PunyInform games can be developed on any platform which the Inform 6 compiler can be built for. There are usually binaries available for Windows and macOS, but you should also be able to build the compiler for Linux, Amiga, Archimedes, Atari ST, BeOS, Mac Classic, OS/2, MS-DOS, Unix, VMS and EPOC.

PunyInform can be used to build games in z3-, z5 or z8 format. All of these formats can be played on modern platforms. Games in z3-format can also be played on dozens of 8-bit and 16-bit platforms. Anyone looking to build a PunyInform game for as many platforms as possible should have a look at the Puddle BuildTools for PunyInform.

Comparison to the Inform 6 library

PunyInform has most of the features of the standard library, and the programming interface is very similar. Some of the most notable differences are:

  • Many PunyInform features are optional, to save space in games that don't need them.
  • The compiled size of the PunyInform library is about 50-60% smaller than the Inform 6 library, depending on which library features are activated.
  • The PunyInform library code is notably faster than the code of the Inform 6 library.
  • PunyInform uses fewer objects than the Inform 6 library, which means the author can use more objects in a z3 game, where there's a hard limit of 255 objects.
  • There is no Compass object and the twelve direction objects have been replaced by a single Directions object.
  • Replacing library messages is done differently.
  • PunyInform does not natively handle identical objects, like a pile of gold coins which can be split up into any number of smaller piles. The distribution does however include a demonstration of how one can make a game support a small number of identical objects.
  • The WriteListFrom routine doesn't exist, but there is a simpler replacement routine called PrintContents.
  • A few of the library entry point routines used in the Inform 6 library are not supported by PunyInform.
  • The set of verbs and the grammar tables for these verbs are not identical to what the Inform 6 library provides.

Games known to use PunyInform

In the first 3.5 years, more than 50 games using PunyInform have been released. You can find them all at https://ifdb.org/search?searchbar=tag%3Apunyinform . Here are some of the more ambitious or well-known ones:

Links

  • Get the library from the project homepage at GitHub. There is also an online manual in the Wiki there.
  • There is a comparison with the Inform 6 library at Intfiction.org.
Authoring systems
By style ParserChoiceParser-choice hybrid
By system BrowserAndroidiOSLinuxmacOSWindows
Browse Stable authoring systemsSearch formDrilldown
Other software InterpretersUtilities