Help choose the best ZIL substrate/library

Hi there,

Coming from the table-based authoring engines’ (PAW, DAAD and the likes) community from the 80s, ZIL is being an eye-opening experience.

A few years ago, I read thru the whole of the Digital Antiquarian epub-ed huge collection of articles. For this recent approach to ZIL, I have come back to the Infocom special compilation. Along with the Design Documents, it’s being an exciting learning route. However:

The extensive availability of ZIL source code and the myriad of versions of libraries and so-called substrates is making it hard for me to decide which is the best ‘clean library or substrate’ to use as the basis for my new ZIL game project. Reading thru the Antiquarian, I’m wondering whether it would be a good choice to use the source code of one of the latest Infocom game so that I can have the best version of the parser. Or if I should stick to the 1988 zlib I found I don’t know where. Or maybe a Zork substrate also found somewhere. Or a recent Proudfoot version…

++++appreciated if anyone could suggest the best approach and point me to the best lib with the best available parser code. A first game map in ZIL exported from Trizbort is ready to use and waiting for a substrate!

Just as a token of acknowledgement, reading thru the design docs has taken me back to the artisan spirit of the adventure writers of the 80s. It is exciting and its getting me in the mood to write!

Tks in advance!!!

I would recommend the version that ships with ZILF. Infocom never really came up with a “standard” version that was intended to be reused; the implementors would just take the source code from a previous project and strip out the parts they didn’t want, then copy in pieces from other projects as needed. But ZILF does attempt to provide a standard, clean library (with a good parser) for people to start with, which is I think a better approach for a system that’s meant to be used outside one specific company.


Tks+++ for yor suggestion!

I wonder if the ZILF author has used the Infocom source codes now available to ensure the best part of the latest Infocom tech is reused for the best player experience. Or is it a new lib from scratch? Do you know?

Given the much un-canonical nature of the many docs available about the ZIL language (learning, course, etc), things like a fixed list of attributes and properties is hard to find. Also, certain changes on attr and props names have been made, and certain function names and constants etc are also different from the documented texts from aback. That’s why I’m looking for a substrate/lib that I can work with, in sync with the existing docs, as ZILF itself has not any proper manual itself.

I believe the ZIL substrate is pretty much entirely written from scratch, with influence from Inform and other parsers that were built in the post-Infocom years.

The Infocom source code wasn’t publicly available until a decent time after ZILF was published, so while it’s entirely possible that the ZILF dev team went back and made changes based on it, I don’t believe they were able to use it in the original creation.

I have the opposite impression, but I suppose a gentleman would never tell.

In any case, yes, my strong impression is that the best answer for ground-up development is the library included with the ZILF compiler. That’s certainly the one where you have the best chance of getting community support as it is actively developed. I am just a caveman and not to be taken seriously but my strong impression is that the Proudfoot “substrates” are idiosyncratic pursuits and not useful in the way I understand the word.

@heasm66 has been working on some improvements in documentation, perhaps he will arrive when summoned and provide links!

1 Like

By chance, i’ve just come acroos the Vapourware blog. And it reports that ZILF 0.9:

Version 0.9 of ZILF was released recently! Highlights include easier setup for non-Windows platforms, compatibility with the unearthed Infocom source, and lots of bug fixes.

Meaning the package YES does observe compatibility with unearthed Infocom code. Thus, yes, the ZILF library is the best option.

I agree that the ZILF library is the best to use. It is developed independently from Infocom (in theory the Infocom code is not free to use, it is under licens) and the goal of the library is to comply with the “specifications” outlined in Steve Meretzsky’s Learning ZIL: Everything You Always Wanted to Know About Writing Interactive Fiction But Couldn’t Find Anyone Still Working Here to Ask.

One big advantage with the ZILF library is that you can change target z-version. The Infocom parsers are hardcoded against the z-version the game uses.


If you want to see the ZILF library in use and how you can modify it, there is a ZIL-version of Ryan Veeder’s Craverly Heigts. There are also versions of this game done in Inform7 (the original), Dialog, Inform6 standard library and Inform6 PunyInform library, all with basically the same disposition to make it easy to compare.


Thanks for your suggestion. I’ll try the route you suggest.