Learning TADS 3

Conrad Cook recently started a Google-based Study Group for learning TADS 3. So I’ve been learning some meta-lessons about learning.

T3 is easily the most powerful system for writing interactive fiction. It’s sophisticated, it’s dense, and it’s not easy to learn. There’s a reason why Inform 7 has become vastly more popular: I7 is ultimately less powerful and arguably more idiosyncratic, but it’s also far easier to get started with, perhaps especially if you’re a novice.

More than a dozen people have joined the study group, and messages have been flying back and forth. What I’ve been observing is that the frustrations I found myself mired in three or four years ago, when I first looked at T3, are mirrored or echoed by some other people in the group — people who are now approaching it for the first time.

T3 comes with five or six book-length manuals, each with its own raison d’etre. There is some overlap, but each manual is different. And there’s no overall index that covers them. Part of the learning process is discovering what’s in each of the manuals, so that you’ll know where to look when you get stuck. Because you’ll get stuck often. And learning where to look for stuff in the manuals is separate from the process of actually learning to write T3 code.

When you’re learning any programming language, I suppose, the two personal traits that will help you the most are patience and being systematic. I try to cultivate the attitude, “Hmm … I wonder why that’s happening.” This is much more productive than, “Why the fuck isn’t it doing what I want?” (The latter is always a temptation, of course.)

Some programming languages are easier to get started with than others, but TADS 3 isn’t just a language; it’s a large, complex library of code. My advice is, just accept the fact that it will take months to learn. Trying to jump around and learn five features at once will only make matters worse.

TADS 3 comes with an IDE (integrated development environment) called Workbench. With Workbench I can look at the call stack or watch the values attached to objects to see how and when they change. Trouble is, both the stack and the objects are so complicated that I can’t get anything useful out of these professional-level tools. Setting breakpoints doesn’t usually help either.

What does seem to help is having a sort of unconscious mental model of the TADS library. I doubt anyone has a complete mental model of that, but after writing two or three games in T3, my unconscious will sometimes (not always!) nudge me in the right direction.

This entry was posted in Interactive Fiction and tagged , . Bookmark the permalink.

4 Responses to Learning TADS 3

  1. Conrad says:

    I try to cultivate the attitude, “Hmm … I wonder why that’s happening.” This is much more productive than, “Why the fuck isn’t it doing what I want?”

    Hilariously true! I can’t think of a time when “Why the fuck isn’t it doing what I want?” got me anything good.

    It seems that, more important than raw intelligence is the emotional robustness that leads to patient, determined persistence. People who succeed in show business are always telling aspirants, “Learn not to take it personal.” Which makes me think it’s a universal principle.


  2. georgek says:

    Jim, has anyone started using the guide that Marnie Parker and Eric Eve were working on? Its goal seemed to be to help people create just such a map of what was where in the library.

    • midiguru says:

      I don’t know about any guide, but Doe hasn’t been heard from lately. She announced an upcoming Art Show, after which I sent her an email offering encouragement (and implicitly sort of offering to help). I never heard from her.

      • georgek says:

        Yeah, I finally went looking for the guide — it looks like she pulled the link to it or took it down completely. Too bad, as it was shaping up as a good alternative introduction to the language.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s