I highly recommend using the adv3Lite library instead of adv3. It’s easier to learn and use than adv3, and it imports a few of the useful features of Inform, such as scenes and regions. It’s a separate download (your search engine can find it). The Quick Start Guide, which is part of the download, will explain how to install and use it.
The programming language syntax of the two libraries is identical – it’s object-oriented programming in the style of C. But the templates are different, so declaring your in-game objects works a bit differently. Really, I don’t think you sacrifice anything by using adv3Lite; the “Lite” is a misnomer.
The big challenge (I’m remembering how it was for me 15 years ago) is understanding how the documents work. Go through the tutorial step by step. The Library Reference Manual is not something you’ll need to start with; it’s not a manual at all. But eventually it becomes an invaluable resource.
This looks good. It appears to be a sort of nonlinear index that accesses various of the documents in a way that makes information easier to find. I seem to recall desperately wishing for such a thing when I was new to T3. Nowadays, if I can’t find something in “Learning TADS 3 with Adv3Lite,” I just go over to the Library Manual, the System Manual, or the Library Reference Manual. But it can still be a bit of a slog.
Yesterday the information on CollectiveGroups in “Learning” turned out to be missing an important fact, but that fact is included in the Library Manual. This is the kind of thing that a newcomer to T3 can’t be expected to grasp overnight.
Jim, my doubt is how many of a misnomer is “lite” ?
I’m still figuring if I have done the right configuration, switches and .t3m when getting a 1,5 Mb story file from a 684 bytes source (with adv3 I get 620Kb from a 743 bytes story file) and I’m not sure if this 1,5 Mb adv3Lite library overhead is OK or something is wrong in my adv3lite compilation setting.
I don’t think you have a problem. I just tested it by creating a new adv3Lite project and doing a build for release. It’s 1.5Mb.
The “Lite” name refers to the design of the library. The classes in adv3 tend to be rather complex. But in adv3Lite a class like, for example, Container, is just the Thing class with isContainer = true.
There seems to be a bit of interest in this topic among Inform authors. If I can find a spare couple of hours and my typing hands hold up (not guaranteed) I think I might write a longish blog post, or maybe a PDF, with explanations of ten things you need to know if you’re thinking of switching from Inform to TADS (using the adv3Lite library, which is probably a bit easier to grasp, especially for those who already know Inform).
Regarding the switch from adv3 to adv3lite, the only thing that keeps me from switching is the fact, that the german G-TADS extension (for writing german IF) is only available for adv3. But there is a lengthy discussion on the actual state of things for german authors over at the german IF-board (LINK)
That’s a good resource, though it’s a bit outdated. He wrote it before he developed adv3Lite. What it’s not is a quick overview of how Inform authors can get up and running in TADS. That’s the content that I think might be useful to put together, if I have time.
Please do: as my programming/coding philosophy is “the right tool (in this case, language) for the problem at hand” I’m interested in your explanation, from the perspective “is best this or that IF language/library for this story ?”
Thanks also of your dispelling my doubts on adv3Lite footprint.
I’m not sure there’s a difference between Inform and TADS with respect to which type of story would be better written using which language. I’d be interested in knowing if people have opinions on the subject, but my blog post doesn’t get into that.
What I’ve done is put together a quick and, I hope, useful explanation of TADS basics for anybody who already knows Inform (but perhaps doesn’t know conventional programming techniques) and would like to know a bit about what to expect in TADS programming.
I may add bits to this essay, but the point of it is to provide an overview, not to get into every detail.
I thought this would make an interesting read, but I was baffled straight away. I think you should emphasise that every reference to ‘Inform’ is actually ‘Inform 7’, which is a completely different language to ‘Inform 6’. For anyone migrating from Inform 6, I think the change will be far easier than for those migrating from Inform 7, but this blog is not appropriate for Inform 6 users.
That’s a very good point. I’ll do an edit straightaway. It has been 20 years since I used I6, so I’m not likely to have much in the way of useful commentary with respect to that transition. I avoided saying “7” because apparently the new roll-out is version 10.