TADS 3 recipe wiki or site?

We think alike. This afternoon I put this together just to see how far I could get:

The idea is for each wiki page to be paired with a source file that demonstrates a solution.

My stretch goal: As I run into problems with my game, I’ll add a wiki page detailing how I solved it, depending on how much energy I have at my disposal.

I agree, but it’s easy to setup and get going. Plus, GitHub wiki provides a natural affinity between a human-readable page and compilable source code.

3 Likes

This is a great initiative!

The closest thing I’ve seen before to this is this extension: GitHub - Th3OneAndOnly/AdventEX: AdventEX(tension) - The versatile extension to Adv3 that we all n

During earlier experiments in the vscode-tads3tools extension I tested a hover feature that took text from the libref guide, but I felt the text didn’t always gave enough information to work with and I’m also unsure from a copyright perspective if I can do that.

Would it be ok and and in that case an idea to link to this recipe wiki (via the extension) on each keyword so the information could be seen repeatedly?
And perhaps encourage more people to take part in it?

2 Likes

Absolutely. What I have right now is so barebone, I don’t see it being authoritative of anything. The idea that it could grow to a resource for others is exactly what I’m hoping for.

I’m still struggling to figure out how to open this up for more people to contribute. Requiring full-blown Git pull requests is probably too much to ask. I’ll try and get a Contribute page put together and work out a way I can give edit perms to motivated folks.

1 Like

If you untick the “Restrict editing to collaborators only” setting, then anyone with a Github account can edit the Wikis.

Maybe I’m being a stickler, but I’m hesitant to open the wiki up to anyone with a Github account. I don’t want it to become a dumping ground for random, drive-by suggestions.

My thinking at this point is that anyone can submit an entry using the Issues feature. I’ll take whatever is there and massage it into a wiki page and code sample.

If, by some miracle, there are individuals so motivated to help out, I’ll add them as collaborators and give them full access to the wiki and repo.

1 Like

Very nice. I am going to add a link to the developing Tadsjam site.

Thanks

1 Like

Hey Jim, glad to see some new (or revisited) TADS interest! As an avid user, I’d be interested to know what issues you find that you feel need solving, and how you deal with them. A couple of things that I found really helpful for my own game I’ve posted semi-recently in the TADS topics; one is a macro system for simplifying customization of Container and Surface listers, one is sort of a wrapper for Daemons and Fuses that makes them really easy to use, turn off and on etc. Feel free to take a look if it helps! I think you saw my action response system also… I have quite a number of other little library tweaks or classes that are more for detail consciousness. Anyway, have fun with TADS!

1 Like

For me, the big-ticket issue is getting my game finished, but let’s but that aside for the moment.

Coming back to TADS after twenty years (where did the time go?), I still feel the biggest impediment for me is documentation. It’s not that there’s not enough of it; it’s that there’s so much, and knowing where to find what you’re looking for can be daunting.

Too often I find myself having to dig through the library source to understand exactly how something is meant to work. I plainly recall going through the same process 20 years ago. That’s why I asked about a recipe site, and why I started the wiki just to get something going.

I’m using adv3Lite for my new game. It does a good job of simplifying the original class library, making informed decisions about corners that can be cut to simplify coding without sacrificing game play. Removing postures, for example, or the simplification for containment and surfaces. I’ve done a little NPC scripting, and that seems easier too. I’m sure for some games that’s a deal-breaker, but it’s not for mine.

(I confess, I do worry that I’m going to get 90% finished with my game and run into some aspect of adv3Lite that it lacks, but could be done trivially with standard adv3. We’ll see.)

The bulk of the time I spend fixing “difficult” issues is related to handling actions. I’m still coming up to speed on the verify/check/action/report cycle, which is even more complicated when dealing with transitive verbs and indirect objects. I’ve started to wonder if there’s a way to ease the most common cases, either through macros or a small side-library that sits on top of adv3/adv3Lite.

I don’t know that I’ve seen your action response system. I would be curious to know more, if you can post a link.

1 Like

It’s funny, your original post led me to dig up a post by Jim Aikin I bookmarked 12 years ago, Learning TADS 3 | Jim Aikin's Oblong Blob – not much (nothing?) has changed ;).

I like adv3lite; it’s not “lite” at all IMO. Eric Eve has a lot of game writing experience and IMO that improved the design of the lib compared to adv3. At the same time, I’m not sure it’s that mugh easier to wrap your head around than adv3…

With regard to the action cycle, have you checked out doers? Maybe it’s not presented as well as it could be but I think it’s an important piece of adv3lite (a tangent, but are the adv3lite docs online anywhere? It would be handy to make direct links).

2 Likes

Oh, well I got a like from you on the custom action response topic, so I’d assumed you had seen it. It works on underlying macros, but it was written for adv3 and I don’t know how compatible the action process is with Lite, if at all (I’ve still never seen the Lite docs or source). It’s more geared to make simple verb responses as easy as typing one string; for the tricky stuff you’d still use dobjFor etc…

Here is a link to Eric Eve’s Adv3Lite Website

The IF Archive link referenced in the Adv3Lite Website contains the full set of documentation and source. The documentation is very much like the documentation for TADS 3 / Adv3. It is very complete.

Are the docs browsable online though?

Come to think of it I don’t know what Eric’s license is for redistributing/hosting.

This is the listing on IFArchive:

adv3Lite.zip [02-Apr-2017]

Version 1.5 of adv3Lite, an alternative library for use with TADS 3, by Eric Eve. Freeware.

Cool! Should be straightforward to put the docs up somewhere then.

I’ve studied the docs, but haven’t tried incorporating them into my game. Doer looks like…a way to short-circuit the parsing flow? A way to say, “If the user does X, do this,” which seems powerful but also something that can be abused and cause headaches down the road.

hmmmm…

Being an historian, I agree not only with “george” about this very forum being the best recipe repo, but I extend it to the very beginning, that is, r.a.i.f

the One True IF repository has practically all the shared IF knowledge accrued since 1992:

http://www.ifarchive.org/indexes/if-archive/rec.arts.int-fiction/

http://www.ifarchive.org/indexes/if-archive/info/intficforum/

On the former, I have figured the Linux spell necessary for turning the rather huge (350+ MB of pure ascii text & NG headers) r.a.i.f mailbox into a manageable set of indexed HTML files and an index, similar to Todd Nathan’s archive, albeit with some misgivings (mainly because of changes in the RFC standards) (spell available on request, but I warn, it WILL heat the CPU) and I have basically on this machine, between Blasius, Grenade, the aforementioned Nathan, Shiowitz and Olsson and the .mbox file, the entire two decades 1992-2012 years of r.a.i.f (plus a large variety of spams, concentrated roughly in the 2007-12 period…)

Best regards from Italy,
dott. Piergiorgio.

3 Likes

I just found this page, Tips on Using TADS 3, also by Jim Aikin, which is pretty close I think to what you’re doing, but for adv3. Perhaps adapting it to adv3lite would be interesting and/or useful.

2 Likes

I ran into Jim’s page before, it’s a good resource. I like to think the cookbook can supplement and build on it.

I’m also thinking about adding adv3Lite pages, since my current project uses it. Small steps…

1 Like

@jnelson How can I contribute to this wiki?

Concretely, I found that the solution on this page falls short:

It only works with verbs which have one object. For zero or two objects, here is the correct solution:

For example, if I have a rope and want to remap “tie x to y” to “attach x to y”, the solution is

   modify Thing
    iobjFor(TieTo) remapTo(AttachTo,DirectObject,self);
1 Like

For now, the best way is to submit an issue to the project. The page on Contributing has more.

I’m also fairly active on this board, so posting it here is fine too.

I’ll make edits to the page shortly with your corrections.

Thanks!

1 Like