ZILF 0.6 released

I’ve released a new version of ZILF, the ZIL compiler + Z-machine assembler + parser and game library, which you can download from Bitbucket.

There are way too many changes to list here, including:

  • Doors!
  • Loops!
  • Scope!
  • Time!
  • Order!
  • Vectors!
  • Splices!
  • Sections!
  • Flags!
  • Prepositions!
  • Quirks!
  • Retro goodness!

Thanks go out to @RoodyYogurt for contributing to the library.


ARE YOU A BAD ENOUGH DUDE(TTE) TO WRITE YOUR GAME IN ZIL?

If you’ve never tried ZIL before, here’s a taste of what you’re in for. This snippet from the 0.6 library demonstrates such new features as inferring missing nouns (“Get What I Mean”), looping over objects the player can see with MAP-SCOPE, printing an object’s definite article with <TELL T .OBJ>, and documenting what the hell the library code is doing:

;"Searches scope for a single object with the given flag set, and prints an
inference message before returning it.

The flag KLUDGEBIT is a special case that always finds ROOMS.

Args:
  BIT: The flag to search for.
  OPTS: The search options to use. (Currently ignored.)
  PREP: The preposition to use in the message.

Returns:
  The single object that matches, or false if zero or multiple objects match."
<ROUTINE GWIM (BIT OPTS PREP "AUX" O PW)
    ;"Special case"
    <COND (<==? .BIT ,KLUDGEBIT>
           <RETURN ,ROOMS>)>
    ;"Look for exactly one matching object"
    <MAP-SCOPE (I)
        <COND (<FSET? .I .BIT>
               <COND (.O <RFALSE>)
                     (ELSE <SET O .I>)>)>>
    ;"Print inference message"
    <COND (.O
           <TELL "[">
           <COND (<SET PW <GET-PREP-WORD .PREP>>
                  <TELL B .PW " ">)>
           <TELL T .O "]" CR>
           <RETURN .O>)
          (ELSE <RFALSE>)>>

Yay, great news. Looking forward to playing with it!

Aw, man, I simply don’t have the time–but it’s cool that someone is doing this, so very well done!

I’m still trying to learn assembly language myself. It had a mystique from my Apple II days.

Oddly enough, now that I’m reading through Jimmy Maher’s Digital Antiquarian backlog, and I’m reading about the super-early days of gaming, I have a whole new appreciation for ZILF. For one thing, I can understand what it IS-

I’m certainly not enough of a bad dude to actually use it, but I’d really enjoy playing a game made with it.

I’m working on a Colossal Cave port, so you may get that chance!

1 Like

That is almost so cyclical it’s elegant.