TADS 3.1 was released today. The new features are deep and powerful. If you’re not into writing text adventure games (also known as interactive fiction, or IF for short), the 3.1 release will be of no interest to you. Even if you are an IF author, you’re far more likely to be enamored of Inform 7. While Inform 7 is very popular, the user community for TADS 3, never large to begin with, is languishing. Nonetheless, TADS 3 is the authoring system for grown-ups.
Or at least that’s my usual thumbnail description. I’m compelled to admit that people like Aaron Reed, Erik Temple, and Andrew Plotkin are, in fact, grown-ups, and they all use and love Inform 7. So maybe I should be saying, “TADS 3 is an authoring system for grown-ups.” But that doesn’t have quite the same ring.
I’ve used Inform 7 too, but I don’t love it. It has always struck me as rather gawky and mystifying. TADS 3 is sometimes mystifying, too — but it’s mystifying in a much less mystifying way. Its syntax is always conceptually clear and concise. The syntax of Inform 7, a programming language that purports to be based on “natural language,” is sometimes a bit murky.
The 3.1 release adds two of the most attractive features of Inform 7 to TADS. Cross-fertilization of ideas is a good thing. Now if only we could get Mike to port Workbench to MacOS….
I wasn’t going to blather about the languages or their features, though. I was going to whine about the game I want to write — the game I’ve been working on, off and on but mostly off, for the past couple of years. I’m still kind of stuck. I know how I want the ending of the game to work, that part is okay, and better than okay. It’s going to be great fun! What I don’t understand is how the player is supposed to figure out what to do in order to get to the desired ending.
I’m not going to give any spoilers here (because, after all, I may sit down and finish the game, now that 3.1 is out, and then maybe you’ll want to play it), but here’s a quick synopsis. The game is a sequel to “Not Just an Ordinary Ballerina,” which was my first IF game (released in 1999). The setting, a large and somewhat creepy shopping mall called Stufftown, is the same, though because the new story is set ten years later, some of the old stores have been replaced by new ones.
Your quest in “Ballerina” was to acquire a doll from the toy store for your charming seven-year-old daughter Samantha. In the sequel, which is tentatively called “Everything but the Prom Dress,” Samantha is now 17. For reasons that are unabashedly far-fetched, she is in need of a prom dress, and quickly. You play, as before, the part of the harried parent, though this time around (unlike the first time) it’s clear that you’re the mom, not the dad. The puzzles are at least as strange and varied as in the first game. There will be more characters to interact with, though, and more detail.
I’ve worked out why it’s so darn difficult to get your hands on the prom dress. Not too much of a spoiler: A mannequin named Bianca comes to life, snatches it out of your hands, and runs off with it. Once that happens, your quest is to get the dress back from the maddening mannequin.
I’ve worked out the whole set of things you need to do in order to get it back. What perplexes me is how the player (or, for that matter, the harried parent) is to know that this particular set of exotic ingredients and manipulations is to be deployed. Will the player have to read the author’s mind? That’s not good. What’s worse, even if the player comes up with the right idea, it’s not plausible that the harried parent would know that the method would actually work. For all the harried parent knows, Bianca could respond to the player’s convoluted machinations scornfully and possessively, refusing to part with the dress under any circumstances. There seems to be no way for the harried parent to know that Bianca will, at the crucial moment when all of the puzzles have been solved, obligingly do the right thing and hand over the prom dress.
Sometimes collaborating with another author on a game can get you past a stuck point. But I pretty much have this whole game laid out. There’s not much for a collaborator to do. Drat!
I’m curious if you’ve given a shot at putting Workbench in a VM on your Mac yet?
It works, with the same minor issues as before. I have Crossover for MacOS, and Workbench for 3.1 works in Crossover, but the Options dialog box is cropped on the right side, just as it was before. I haven’t yet checked whether the Options are saved between sessions — that was a second problem. The double scrollbar bug in the Workbench main window (a trivial issue) is still there.
The compiler works in Crossover; I just now tried it. So if you have Crossover (or possibly Boot Camp — I’ve never used it), writing T3 games on the Mac is very feasible. Alternatively, you could use the text editor of your choice in conjunction with the FrobTads compiler. That would be a bit more work, but the experience might be less funky.
Did you try using a VM or just Crossover? Crossover is an emulator, so it won’t work as well as full virtualization. If you have a copy of Windows lying around I’d definitely try a VM if you haven’t already, with VirtualBox or something like that.
I’ve just completed writing my first IF game in Inform 7. I found your Handbook to be a useful supplement to the built-in documentation. Thanks for writing it.
Regarding the prom dress question: I have a very similar problem with my second IF game. I am thinking that I can resolve it by giving the player enough clues to build an internal world model of the NPC that will allow the player to accurately predict what the NPC’s response to a given situation will be. The clues will come from the words and actions of the NPC, from the words and actions of other NPC’s, from the environment (e.g., notes, objects with special meaning to the NPC, etc.), and from a off-stage hinting system (e.g., cell phone calls, announcements over a PA system, etc.) I hope this helps.
Regarding the TADS versus Inform 7 question: First, I am a self-taught hobby programer. So while I’ve created a few small applications with BASIC, Forth, C, and LUA, I learned only enough to solve the problem at hand and have not acquired the deep understanding of a professional.
Several years ago I wrote an IF game with the TADS 3 beta. Even with Eric Eve’s fine tutorial, I found the leaning curve with TADS 3 to be pretty steep, I did manage it, or I should say, I learned enough to write my first IF game. Now, years later, I’ve decided to write another IF game in collaboration with another person, who learned BASIC in school, but remembers very little about it.
After showing him a little of my TADS 3 code, his eyes glazed over and we decided that he wouldn’t be able to work with it. We looked through your Inform 7 Handbook and he thought that he might be able to work with Inform 7, if I could learn it first and be a mentor for him.
I just spent five weeks in learning how to write code with Inform 7 by writing a nice little Sci Fi IF game with it. The game is an egg-farm simulation set in an alternate universe with quite a bit of dynamic game play. In my opinion, it is a non-trivial game from both a player and a code-implementation viewpoint.
Based on these two IF authoring experiences I can say that Inform 7 has a much shorter learning curve than TADS 3 for the first couple of layers of understanding. At this level of understanding, you can write an simple but usable IF game with Inform 7. But to write an IF game with more complexity than this basic level, the “fuzziness” of Inform 7’s syntax make it difficult for the author to predict how to write code without a LOT of trial and error and frantic searching through the vast body of information and examples for Inform 7. This searching often calls to mind the old expression: “Looking for a needle in a haystack.” But that’s not a complete picture and it’s a little unfair to Inform 7.
To be sure, writing code with Inform 7 sometimes resembles the “guess the verb” puzzle that is the bane of many an IF game. Or, better yet, it resembles the difficulties inherent in learning to spell words in the English language where it can seem like the exceptions outnumber the rules. However, once successfully puzzled out and written, the Inform 7 source code can be read and understood by an inexperienced person much more readily than the TADS 3 source code, which can make collaboration with others easier. Also, it seems like writing code in Inform 7 gets easier and more “natural” to the author faster than writing code in TADS 3, but that might be a quirk in the way my mind works, a quirk I seem to share with some pretty darn high-level programming gurus by the way.
In summary, I believe that most total newbies to computer programming will find Inform 7 more approachable than TADS 3. However, TADS 3 is more “powerful” than Inform 7 in that you can eventually get TADS 3 to do anything your author’s heart may desire, while I feel like you might have to compromise on some desires with Inform 7. On the other hand, I believe that most experienced programmers will find TADS 3 much easier to use and learn than Inform 7, and they will experience less frustration in implementing the more advanced game designs.
Bye for now,
I think you’ve nailed it, Robert. At least, your assessment of I7 vs. T3 coincides neatly with mine. (Well, I wouldn’t have put quotes around “powerful,” but that’s a nitpick.)
I will probably return to the prom dress game later this year. Right now I’m hammering away on a shorter, more manageable game that was also lying on my hard drive, half-finished. Look for it in this year’s Spring Thing.