I’m developing a TADS 3 module for generating iFiction XML records at compile time. (In other words, this is not a tool to extract metadata from an existing game binary and create an iFiction file for it.)
It works much how TADS generates its GameInfo.txt files: A game author instantiates an IFiction object in their source code. During pre-init the module culls metadata from various places in the code and assembles a <game>.iFiction file in the build directory.
A couple of questions:
Is this is useful? I cannot find any TADS code in the IF archive that does what I’m describing. I know the babel executable is capable of extracting an iFiction record from an existing TADS game binary, but the file it relies on (GameInfo.txt) isn’t as rich as the record my code can generate.
If a TADS game binary has a pre-built iFiction record, should it be included in a ZIP file, embedded as a resource in the game binary, or both? (I’m thinking “both,” but perhaps there’s reasons not to.)
I’m in the “imbed it as a resource in the game file” camp, but that’s probably only because that’s what Inform 7 does. Then again, I don’t think there is a way to retrieve the file other than with Babel, so I can see why zipping it up alongside the game would also be helpful.
(Slightly off-topic: I wonder why TADS chose to use its own resource format, as aposed to using Blorb. If I had to guess, it’s probably an artifact from the early days of HTML TADS, when Blorb was just a spell from the Enchanter trilogy.)
Probably that, yes. The first public draft of the Blorb specification only appeared a few months before the first HTML TADS release. And at the time Blorb wasn’t the “industry standard” we consider it to be now, it was just some format Graham Nelson (I think) had dreamt up to bundle sound and graphics with Z-Machine games.