Trizbort Update 1.5.8.11 – Now supports ZIL

As the title says, there is a new Trizbort update.  1.5.8.11 is available over on the github release page (along with the code as usual).  This update is rather small in number of changes, though the ZIL support is a pretty cool addition.

  • Text wrapping will now occur on dashes as well as spaces
  • Redact text from map – remove all text so as not to give away spoilers Ctrl+F4
  • Updated link to online help in the help menu
  • History text in map settings will generate an “about” command when exporting code. Currently only I7 and TADS3.

As the title suggests, I’ve also added ZIL support.  If you are not sure what ZIL is, it is essentially the language that Infocom used to write their games (language definition documentation is an interesting read).  Under the code export, menu (File->Export) there are now options for saving your map to ZIL as well as copying the ZIL code to the clipboard.

menu

This will output a simple ZIL file, with code that looks like the following:


"A Trizbort Map main file"

<VERSION ZIP>
<CONSTANT RELEASEID 1>

"Main Loop"

<CONSTANT GAME-BANNER "A Trizbort Map|An interactive fiction by A Trizbort User">
<ROUTINE GO()
    <CRLF> <CRLF>
    <TELL "" CR CR>
    <V-VERSION> <CRLF>
    <SETG HERE ,CAVE>
    <MOVE ,PLAYER ,HERE>
    <V-LOOK>
    <REPEAT()
        <COND (<PARSER>
               <PERFORM, PRSA, PRSO, PRSI>
               <APPLY <GETP, HERE, P?ACTION> ,M-END>
               <OR <GAME-VERB?> <CLOCKER>>)>
        <SETG HERE <LOC ,WINNER>>>>

<INSERT-FILE "parser">

"Objects"

<ROOM CAVE
    (DESC "Cave")
    (IN ROOMS)
    (LDESC "The cave is dark, wet and clammy.  A mist appears to hover inches above the ground.")
    (FLAGS LIGHTBIT)>

<OBJECT FLASHLIGHT
    (LOC CAVE)
    (DESC "Flashlight")
    (SYNONYM FLASHLIGHT)
    (FLAGS TAKEBIT )>

So now I’ve got this cool ZIL language file generated from my map….well now what?

Well here is where the work of Jesse McGrew comes into play. He is currently working on a ZIL compiler and related tools, that will compile this ZIL file and take the resultant file and create a Z8 file from it (or Z3 or Z5)…you can see his work, or just grab the compile to play with on his Bitbucket account (https://bitbucket.org/jmcgrew/zilf/wiki/Home). He has put a lot of effort and done a great deal of work on his project so it’s great to see it progressing to the point of actually being able to create games with it.

I should mention that Jesse is still working on his project so things may and likely will change. I don’t suspect there will be issues, but I will try and make sure that as Jesse puts out new releases, that Trizbort keeps pace.

The ZIL support in Trizbort currently handles rooms and objects as well as I understand them to work in ZIL. I’m still learning the language myself, so there are bound to be issues….but I hope to work them out as well as expand on the way Trizbort handles objects in the future which will pay dividends across all the languages that Trizbort exports to.

This was also a good experiment for me on creating an new language exporter in Trizbort….up to this point, I’ve just worked with what Genstein had originally put into Trizbort, just making minor modifications and fixes….but I’ve discovered that this isn’t really all that hard to put a new language in place, so I hope to not only expand on how Trizbort handles objects (and people and supports / containers and all that entails), but also on expanding into other languages….Alan, Hugo, …. whatever else might fit the bill and lend itself to code generation from a map. This actually sounds like a lot of fun to implement.

Anyway, enjoy this little update and I hope you find it useful. Please feel free to let me know of any issues that you may find.