What is this?
This is Gull, a package designed to enable people to familiarize themselves with Glulx Inform. What is Glulx Inform, you ask? Part of the purpose of Gull is to explain that. In fact, the whole first section is intended to provide a thorough enough background that even people entirely new to programming interactive fiction can understand Glulx Inform and how it fits into the scheme of things. The second section is a manual for Glulx Inform designed for people who already know Z-machine Inform — meaning that Gull doesn't come close to supplanting the regular Inform Designer's Manual, which is required reading before beginning section two. Finally, Gull includes a number of sample games illustrating various aspects of Glulx Inform, which you can play and whose sample code you can peruse.
What's the story behind it?
A while back I came up with an idea for a game. Unfortunately, to fully implement it, I'd need a system that allowed me to use graphics, music, mouse input, maybe even animation... and none of these were possible with the one computer language I knew, Z-machine Inform. At first I thought I'd have to learn HTML TADS or Hugo — both of which I'd looked at, and neither of which I'd much liked — or possibly even go outside the realm of IF languages altogether, and learn C.
Then I discovered that Glulx Inform, which I'd mistakenly thought of as being little more than a way to create programs with large file sizes, was both (a) much closer to being usable than I'd thought, with working compilers and interpreters, and (b) capable of handling all the gimmicks I wanted to use and more, at least on some platforms. Whoo-hoo! I wouldn't even have to learn a new language! All I'd need to do would be to look at the documentation for the new features, and... er...
...well, something was missing. At the time, people who wanted to look at Glulx Inform were directed to the Glk spec and the Game Author's Guide to Glulx Inform. However, the former is more of a reference than a set of instructions, and the latter doesn't cover the multimedia stuff. Furthermore, both are written in a fairly dense and technical manner, which I found really off-putting — I don't have a lot of experience dealing with technical writing, and from what I've seen, I'd rather accrue as little as possible. And I don't think I'm unique here: by its very nature, IF attracts people who may have no programming experience whatsoever, and even accomplished Inform programmers may not do any programming at all outside of IF — I sure don't. So the current docs weren't going to cut it. What I needed was a manual, a friendly manual that'd say, "Okay, if you want to put graphics in your game, first do this, then this, then this, and here are a bunch of examples." But I was too impatient to wait for such a thing to appear before proceeding with my project, and I couldn't exactly demand that someone write it for me and have it on my desk in six weeks or whatever. I'd have to write it myself.
Of course, there's a fairly fundamental flaw in the logic here: the whole reason I needed the manual was precisely because I didn't know the stuff that would be in such a document. I'd have to learn it some other way — my method was bombarding the creator of Glk and Glulx, Andrew Plotkin, with questions for a month — and write down what I learned as I learned it. That way I'd learn the language quite thoroughly, and the next person who wanted to learn it wouldn't have to pester Andrew. So that's what I did.
Why is it called Gull?
Well, I needed to call it something, and I figured that since the goal of the project was to make Glk and Glulx easy to understand, the name should take the shared phoneme of Glk and Glulx and use it in a word that was easy to pronounce. And this name let me put a cute li'l seagull in the header.
So where is it?
Right here. Note that at present, this hasn't been looked at by many people, so there may be points which aren't clear, or steps in the explanations that are missing. There may even be an error or two. Should you happen upon such, please mail me and I'll be more than happy to try to clear and/or fix things up. Gull has also been uploaded to the IF archive in two pieces: gull-docs.zip, with the HTML files, and gull-games.zip, with the sample games.