Porting something to ZIL

The ZILF library has a bit of a chicken-and-egg problem: it’s not complete enough to really try writing a large game in, but without doing that, it’s hard to know exactly what’s missing. So I’ve thought it might help to port an existing game instead of writing a new one.

A good candidate would be something whose source code is available, that doesn’t make heavy use of anything too fancy, and which people are familiar enough with to know whether the port is correct/complete. Does anything fit the bill other than Colossal Cave?

Wasn’t there some adventure, “Cloak of Darkness” I think it was, that served as proof of concept for porting to various platforms?

The source code of 9:05 doesn’t seem to be readily available, but it seems like it’d easy to reverse-engineer and I don’t see why Cadre would deny it if you asked him (but then, I’m not him, so I don’t know). Off the top of my head, it’s just one of those games everyone knows and everyone loves and everyone has played at least twice, with the added bonus of being relatively simple.

Also, yeah, CoD is always a good standby. Also you could even try some of the examples in the manual of I7: Isn’t “The Reliques of Tolti Alpha” in there? Probably too much for what you want right now. How about “A Day for Fresh Sushi”? That’s in the manual as well, I’m sure I’ve seen it.

Indeed - Cloak of Darkness is already included as the sample game, though, along with an extended version that serves as a test case for some library features the original didn’t use. I guess I’m looking for something larger than that.

Good ideas. I do remember RoTA being pretty complicated, but I’ll take another look at it and the other I7 samples.

Also, I was thinking about making this a collaborative effort. For code sharing, I’m most familiar with Bitbucket, but it seems like GitHub is what most people are using. Any thoughts?

I’ve never written a game in ZIL before, but I’d like to help with this (it’s an interesting language and I would like to see a complete game’s source code). I’d recommend Colossal Cave myself, because that’s generally considered to be in the public domain and has source released in several different languages.

If I ever learn enough about ZIL parsing to make a stab at coding support for character orders, I’d like to implement some of the Infocom manual example transcripts as a fun coding exercise. If I were to ever write an homage to the Infocom universe, it’d also be in ZIL.

That said, nothing jumps quickly to mind as for what would be good to port. I’d consider an older Advsys or AGT game for the dual purpose of smoothing out the parser of the target game and possibly reigniting some interest in an old gem. Finding the right one could be tricky, though, depending on how much one cares about licenses (declared or not) and whether source is available (or the ease of decompiling).

I don’t have any preference between Github or Bitbucket.

Zarf released the source for many of his games recently: http://gameshelf.jmac.org/2014/06/old-zarf-code/

Hmm… MST3K Presents “Detective” is basically a port of an AGT game, and it has source available.

I just remembered something seriously obvious.

http://ifdb.tads.org/search?searchfor=tag%3Asource&searchgo=Search+Games

Also, I remembered Sand Dancer just now.

Anyway, maybe if you idly peruse these search results you’ll find the perfect candidate. :wink:

Going over that list, my eye was caught by “Augmented Fourth” and “Perilous Magic,” both games that evoke aspects of the Enchanter trilogy and it might be neat to give them a home in ZIL. I don’t know whether AF would fit and PM has the advantage of an ultra-accessible author for asking permission.

Also, I noticed that “Ninja” by Paul Allen Panks is on there. I figure it could be a sweet homage to port one of his games.

I think one of the most interesting possible uses of something like ZIL could be writting z-machine stuff that would work smooth and seamlessly in old 8-bit machines. A bigger library could be counter-productive to that end. That doesn’t mean I think expanding it with the kind of comodities we are used to in the infrom era is itself a bad idea, but I would stick to its most basic incarnation at least when involved in retro-gaming targetted projects :slight_smile:

Yeah, I’ve tried to write my own library stuff with that in mind, making unlikely-to-be-used-in-every-game stuff includable but not necessary. On the other hand, nobody wants to re-invent the wheel and start from scratch for every game, so yeah, it’s worthwhile to work on a library. It’s kind of an interesting hybrid between the old school and new school approaches.

Indeed. I’d like to implement the stuff described in Infocom’s ZIL manual for the core library, and anything on top of that would either be an extension or a separate “modern” library.