Trouble compiling source from IFDB (Re: Dragon)

I’m new to Inform, but I’ve played/read IF since 1983. I’ve also noodled around with Inform since 2000, but never got very far. I also have an IT background, so I’m not totally clueless. Yet, I’m running into so many issues compiling story text, that I suspect I’m doing something wrong.
I’m using 6M62 to compile new-ish source (e.g., 2018 Re:Dragon) but running into issues with extensions being the wrong version, or obscure syntax errors. Especially for a new-ish source like this, I would expect that 6M62 would compile it without problems.
Another issue (which I somewhat expected) is compiling older source (e.g., 2012 IF Whispers 5, 2014 Sparkle). I realize that the original source must be matched to the Inform compiler of the time, but I haven’t been able to find correct matches. It seems a bit of a crap shoot. Add to that matching previous versions of extensions, if I can even find them. Out of the 20+ IF stories that provide source, I’ve only been able to successfully compile one: 2017 Absence of Law.
Again, I suspect that the problem is on my end (as in “the trouble is with the plug between the keyboard and the screen”) and I’m perhaps over-thinking this.
Any suggestions on compiling story text, new and old, so that I can study them would be greatly appreciated.
Patrick

1 Like

Hey, good to have you here, @Patrick.Demets !

Re: Dragon is an unusual case in that it’s not just using out-of-the-box Inform 7. It employs a lot of code trickery and a specific web interpreter called Vorple to accomplish what it does. Vorple requires unlisted extensions to work that aren’t in the main Inform library but should be available on its website.

1 Like

You may also want to take a look at Inform For Programmers. It was written a number of years ago and some of it might be out of date, but may assist you on a concept-level with I7’s natural-language syntax.

1 Like

Thanks for your replies HanonO!

I’ve had my paws on various documentation (official and not) for many years, going so far as ordering two copies of the DM4 way back when.

My troubles aren’t limited to Re:Dragon; I’m running into issues with most story text, and the errors vary depending on the Inform compiler version I’m using (again, I understand that old source might not compile out of the box with 6M62, and vice-versa, an older compiler might not like a newer story file). This has led me on a wild goose chase for the past two weeks.

I also have Aaron Reed’s ‘Creating Interactive Fiction with Inform 7’, and I’ve read that the suggested I7 compiler version to follow along with the text is 6G60. That makes sense. I can then read the release notes for newer compiler versions and modify the code accordingly. So now I have the major releases (6M62, 6L02, 6G60) installed and I’m juggling those, but with very limited success.

What approach would you suggest to learn by examining others’ code? Obviously, I need to ensure that the code actually compiles (with some version of the I7 compiler) before assuming that the code is correct and spending time studying. I’m looking to study both newer and older code.

Thanks!

If you haven’t done so yet, I would definitely try to get through the entire “Writing with Inform 7” manual by reading it in the IDE so you can click the links to copy example source text over to the left and play with it yourself.

Similarly, the Recipe Book that’s also linked in the IDE is full of example implementations of tricky situations. You can experiment with those directly in Inform 7 as well.

For full games, the usual suggestion is Emily Short’s Bronze. She literally wrote the manual for Inform 7.

(Plus this forum probably is the largest community of authors currently writing in Inform 7, so don’t hesitate to ask for help here or search through more than a decade of archived messages.)

Again, I’m sure you’re aware that the Inform build is listed on the banner of nearly every I7 game and all the build releases are archived on the download site.

Release 2 / Serial number 161113 / Inform 7 build 6M62 (I6/v6.33 lib 6/12N)