TADS 3 - Not fun to start with; probably just me

Granted I’m just learning and all, but compared to Inform 7, TADS is absolutely no fun to start with. Considering that Inform 7 is basically “Install then start writing”, I’m trying to cut TADS some slack. So here’s what I finally ended up with. I have a project directory and in that I have makefile.t3m:

-D LANGUAGE=en_us
-D MESSAGESTYLE=neu
-D TADS_INCLUDE_NET

-o "build/exe/app.t3"
-Fo "build/obj"
-Fy "build/sym"

-lib adv3/adv3web
-lib webui
-source tadsnet

testing.t

It took awhile and some digging to even figure out some of that stuff. LANGUAGE and MESSAGESTYLE, even though the engine indicates it has defaults, must be in place. Having defaults usually means they don’t need to be in place and if they aren’t the defaults will be used. But whatever.

My testing.t looks like this:

#include <adv3.h>
#include <en_us.h>

gameMain: GameMainDef
  initialPlayerChar = me
;

versionInfo: GameID
  name = 'My First Game'
;

firstRoom: Room 'Starting Room'
  "This is the boring starting room."
;

+me: Actor
;

Pretty much copied from one of the manuals.

When I run t3make, here’s what I get:

No idea what the problem is. This happens if I remove the Web UI stuff (adv3web) and just use the normal adv3 library in my makefile as well.

I’m doing this on a Mac, incidentally, but from what I can see that shouldn’t matter. I’m using the latest FrobTADS installation.

You need to also use the system library, not just adv3:

-lib system
-lib adv3/adv3

Note that if you use WebUI, you can only run the game in a browser with frob acting as a server (“frob -N44 game.t3”). You will not be able to run it directly in frob or in QTads. The only interpreter right now that can run web games directly is the official Windows HTML TADS interpreter.

RealNC is right; the system library (TADS.H and all the other files) are required in every TADS 3 game.
I don’t know about you, but as someone who loves tinkering with code, learning TADS 3 (and even TADS 2) was a great deal of fun.
I’m still learning how to use the system (I’ve mastered the basics, E.G. using dobjFor and iobjFor, programming conversations, Etc.), and I’m loving every minute of it.
Perhaps it’s not as “fun” for someone who has never programmed.

Also, if you’re new to TADS 3 (and you have experience with Inform 7), I’d advise taking a look at Jim Aikin’s “Moving from Inform 7 to TADS 3” (musicwords.net/if/MovingFromI7toT3.pdf).

I had entirely forgotten that I wrote that. It’s a bit out of date by now. For instance, I7 no longer uses “indexed text,” and the adv3Lite library is much better developed than it was three years ago. But the basic ideas should still be valid.

As far as I can remember, all text in the latest versions of I7 are “indexed”; there is no longer a difference between “text” and “indexed text”.

I thought that was just on the user level; that on the inside, it still had both, but was dynamic about it: that it converted text to indexed if indexed-y things were being done to it.

And I had the vague notion this could occasionally trip people up, but I could be off my rocker.

Then again, I could be right and still be off my rocker.

…oh look, it’s a swivel chair I’m on. I AM off my rocker.

Yes, Peter, you are definitely off your rocker, although you may be right about the whole dynamic text thing. I don’t know, exactly, but I’ll have to browse the changelogs to find out.