New, Inspired & Prepared TADS Programmer

I am very impressed by the TADS development system. I’ve taken about a week and fully designed a complete IF game that will fit into the IFCOMP 2 hour limits.

Unfortunately now that I am implementing, I find that I cannot even code the simplest thing (ok, I CAN code a room/object :laughing: ) and even more frustrating is finding information on what I need to code things correctly (so any tips for actually finding things in the documentation or documentation sources would be very helpful :cry: ).

Without human intervention I would be forced to give up, so I am very glad this forum is here. :slight_smile:

I have a basic understanding of computer programming (I can easily code my entire game in SUDS – the lack of a parser is rather embarrassing however) but the TADS engine is posing a further level of difficulty that will require a significant amount of effort for me to overcome.

I think its worth it though. :wink:

Once I have learned how to effectively code in TADS I will be able to instantly & easily create any game idea that pops into my head (WITH a parser included :laughing: ).

GOAL: To create a “passive passage” in an outdoor room that looks like the rest of the impassable scenery until the player types “SEARCH” (but not just LOOK) in that room. This is important because it needs to appear as though there is nothing but impassable terrain there (just like normal).

I know of two possible methods but cannot find the proper syntax in the documentation:

METHOD A: Create vocabWords with the name of the room and implement a dobjFor(SEARCH) as part of the room.

METHOD B: modify (Search) to check if the player is in the room & the passage has not been previously found (else inherited;) and change the “east” property of the room to the intended location with appropriate message.

I prefer method “A” because it seems to be the most direct method.

Can anyone help me with the code on this?

Sorry and thanks in advance! :blush:

You’re impressed by TADS without actually implementing anything? Have you taken a look at other as featureful and complete authoring tools such as Inform, Hugo and Adrift? Having only basic programming knowledge would hardly lead you much further into TADS. Perhaps Adrift would be more suited.

In any case, the “search” instead of “look” sounds like truly lame and arbitrary guess-the-verb kind of puzzle: it’s been common knowledge for several years that no one enjoys that. If there is a possibility for the player to find a passage, then it should be, even though just briefly, mentioned in the description. Tease the player’s curiosity, don’t hide info from her.

God bless you & thank you for your post.

I don’t think that’s exactly impossible. Every time Inform responds to a command with something like, “Which silver did you want to unlock the door with, the silver key or the silver necklace?” it highlights some of the ways which TADS makes things easier for players, even if it’s a more difficult tool (sometimes needlessly, I think) from an author’s perspective.

Similarly, the ability to use HTML formatting, or to compile straight to a Windows executable are both things that are evident to players who don’t know the first thing about what the code is like.

I think a better route would be make the passage passable after the player examines a specific object. The first description of the object would make it clear that it was hiding an exit, at which point the player would be able to move down that passage. I just don’t think typing “search” is something that players expect to have to do - unless you make it clear to them. And even then, searching specific objects seems more interesting than just typing '“search” in each room.

An alternative method (better?) is just to use the Room object’s RoomAfterAction method, which will also override the default response. Here’s some code I used to change the response to ‘Wait’ in my last game:

    roomAfterAction()
    {
        if(gActionIs(Wait))
        {
            if(waitCount==0)
                "Never mind doing things.  Maybe if I just give myself a moment of stillness,
                the clues will come to <i>me</i>. 
                <.p>Nate pokes me gently with the tip of his cane and I jump.
                <q>The crime won't solve itself,</q> he says. ";
            else
                "No waiting around for me. The crime won't solve itself. Apparently. ";
            waitCount++;
        }
    }
    waitCount=0

The TADS 3 Tour Guide is my usual first stop when I’m looking to see what TADS can do - it lists a lot of the different objects that are already in the library and shows how to use them. After that, Learning TADS 3 demonstrates some of the more useful techniques you may need, like searching through all the objects in a location, or stuff like that.

I disagree. I have a built in hint in the scenery configuration that would suggest something is hidden in the area, materials located elsewhere that specifically show that area as hiding something & a contextual help system that will give progressively more detailed hints with a warning before each level of detail increase.

Would this work if the “east” command accesses a noTravelDescription? I have already defined a property in the room that I could use to check if the “passage” was found… Wow thanks for the idea. I like it because its directly associated with the room and therefore quite elegant. :slight_smile:

The TADS 3 Tour Guide is my usual first stop when I’m looking to see what TADS can do - it lists a lot of the different objects that are already in the library and shows how to use them. After that, Learning TADS 3 demonstrates some of the more useful techniques you may need, like searching through all the objects in a location, or stuff like that.

Well yes I use those resources… I think the library could be improved to include programming examples and more specific info (beyond only the obscure hierarchical info that is present there now??)… I’m just glad this forum is here so I can get excellent advice that I specifically need since I’m a newb. :laughing:

Thanks for solving my problem.

Reyth

Sure, just have the RoomAfterAction set this property.

I think they’ll pick up on the “something is hidden here” aspect, but it’s going from realising that to typing “search” at the prompt which is what you may have to worry about. Unless players realise that “search” is a weapon in their arsenal, I’d expect them to react using the verbs they usually type to find things out - examine, look behind, feel, even “search OBJECT”… that kind of thing. Sometimes the last thing that players expect to have to type is the equivalent of “solve puzzle”.

But don’t let anyone convince you to do things in a way you don’t want to. If you think this will work, see how your beta testers react (especially without access to the hints)!

I will keep the above advice in mind as I code.

Thanks again.

Reyth

PS I’ve just realized (without even knowing it before) that the isolated command “SEARCH” IS required in another aspect and is also explained before the game begins! So thanks for the tips once again!