ZILF was first announced in July 2009. The initial release, 0.2, included one sample game: a port of Cloak of Darkness, with its own primitive parser. The announcement on rec.arts.int-fiction teased three things to come in the future:
Since then, the parser has grown in sophistication and become a true standard library. Advent was ported and became the first full-length game written in ZIL since 1989. And now, sixteen years later, all three parts of this prophecy have finally come to pass.
At long last, I give you ZILF 1.0.
Changes in this version include a new system for customizing the status line, easier modification of standard verbs, improved Unicode support, a new command-line experience, and yes, experimental support for compiling to Glulx. (Youâll also need Glazer for that.)
Get it at zilf.io, where youâll also find links to documentation and our Discord server. Visual Studio Code users can get the ZIL language extension from the marketplace.
I may be missing something again here, but I just downloaded and tested this v1.0 build with the idea that I could compile my new WIP with a different name or extension in one command. I tried zilf hotel.zil hotel.dat and also zilf build hotel.zil hotel.dat but both fail to produce a hotel.dat file - at the point where zapf should be invoked, I just get the zapf âusageâ help info. I can do this as a two step process with - zilf -S hotel.zil followed by zapf hotel.zap hotel.dat but from the zilf build -h help it looks like this should work as a âcombinedâ zilf command ?
Version 1.1 is now available for download. It features some big parser improvements (topics, missing verbs, âeverywhereâ scope, better syntax line decisions), better integration with the VS Code extension, and the âeven more experimentalâ Glulx mode I used for Zork II and III over here.
Version 1.2 is now available for download, featuring some Glulx improvements (GLK function, better V4/V5 compatibility) and library fixes (ordering NPCs, drawing the V6 status line).
Version 1.3 is now available for download, featuring Blorb support, parser improvements, debugging improvements, an updated Cloak of Darkness example, and minor bug fixes.
I downloaded 1.3 and I have a library issue with openable containers for one ofmy WIPâs (think this may be an existing bug though) I have a glass case which is closed and locked (but transparent so you can see inside). Inside this is a box which can also be opened. I created a minimal example in zilf here
"EMPTY GAME main file"
<VERSION ZIP>
<CONSTANT RELEASEID 1>
"Main loop"
<CONSTANT GAME-BANNER
"EMPTY GAME|
An interactive fiction by AUTHOR NAME">
<ROUTINE GO ()
<CRLF> <CRLF>
<TELL "INTRODUCTORY TEXT!" CR CR>
<V-VERSION> <CRLF>
<SETG HERE ,STARTROOM>
<MOVE ,PLAYER ,HERE>
<V-LOOK>
<MAIN-LOOP>>
<INSERT-FILE "parser">
"Objects"
<ROOM STARTROOM
(IN ROOMS)
(DESC "START ROOM")
(FLAGS LIGHTBIT ONBIT)>
<OBJECT GLASS-CASE
(IN STARTROOM)
(DESC "glass case")
(SYNONYM CASE)
(ADJECTIVE GLASS)
(FLAGS CONTBIT TRANSBIT OPENABLEBIT LOCKEDBIT)
(TEXT "A basic glass case.")>
<OBJECT BOX
(IN GLASS-CASE)
(DESC "box")
(SYNONYM BOX)
(FLAGS CONTBIT OPENABLEBIT)
(TEXT "A basic box.")>
If I attempt to open the case, I canât as it is locked. But I can open the box which is inside the case but should not be accessible as the case is locked - there does not seem to be a check for this. See transcript here
INTRODUCTORY TEXT!
EMPTY GAME
An interactive fiction by AUTHOR NAME
Release 1 / Serial number 260122 / ZILF 1.3 lib T5
START ROOM
There is a glass case here.
In the glass case is a box.
I believe this is historically accurate. ZIL doesnât traditionally enforce touchability for actions other than taking; instead, you could add a check to the containerâs CONTFCN.
However, itâs the 21st century, and we can probably do better. Iâve filed this as ZILF-292.
I have never really looked at the CONTFCN, so thought I would look up its use. Couldnât find too much documented but it seems it intercepts any interaction with objects inside the container in question. Therefore, I put a guard against doing anything to the box that required âtouchâ while the container was closed and that seems to have resolved my issue - thank you.
Version 1.4 is now available for download with some big library updates, including a scoring system, touchability checks (!), and parser improvements, as well as optimizations and bug fixes.
Wow, not sure I can keep up with all these releases coming thick and fast I was in the process of overriding the parser to be able to just alter the âthree dotâ empty response for one of my projects, when the notification popped up for this release and find that itâs already added as a new NOTHING-ENTERED library message â keep up the good work @vaporware Thanks
I canât locate how to just get the bin folder for actually compiling the games. Iâm very excited about the new use of TCOLOR, which I was not aware about beforeâŚ
If youâre on Windows, the installer puts it at C:\Program Files (x86)\ZILF\bin, but it should also be added to your path so you can run zilf from anywhere.
Ah, so ZILF is now an installable thing? Right. I might need to figure that out, because on some other projects Iâd rather keep the old bin files as it uses the three-noun modifications I did for MilliwaysâŚ