But I've been thinking that maybe we need something intermediate that's
a step in the right direction in the mean time.
One of the things I've recently noticed in my own game as well as others
is that the great majority of responses to:
give <item> to <actor>
show <item> to <actor>
tell <actor> about <item>
produce the canned response instead of a custom response for that item.
One reason for this is probably that while coding the actor and items,
you just have no desire to painstakingly cross reference all the items
that are in your game. You code the ones that are necessary for game
play, a few others that sound cute, and leave the canned response for
most.
I think it would be cool if the actor had something different to say
about a lot of different items. So the question appears to be how to
offset the natural laziness of the coder.
One way would be to re-do how adv.t and std.t handles those verbs. (I
think world.t might already do this the way I'm thinking of). Redirect
all of the action to the items, so that each item would have a
property/method for the verb. Example:
hoop: item
sdesc = "circular hoop"
... etc etc ...
guardTellDesc = "Well that certainly sounds like a fine hoop. "
guardShowDesc = "Wow! That's one fine hoop! The best I've ever
seen!"
guardGiveDesc = {
"Wow! Thanks! I've always wanted one!";
self.moveInto (guardActor);
guard.willKill := nil;
}
;
That way, as long as you know what all of your actors are going to be
before you start coding, you can fill in the methods/properties as you
create them, instead of having to do them in batch and giving you a
chance to be lazy.
Another way I thought of would be this: I'm thinking of writing a
program that would parse through all of the .t files in the current
directory and build a list of all items that have the 'noun' property
defined and then prompt you for dialog on each. You would leave blank
any item that you plan on producing special effects for (this would be
hand-coded later). The program would then generate code for a
bare-bones actor that you could either flesh-out or cut & paste into an
already defined actor.
Would any of you TADS authors use such a tool?
-- John Baker "It ain't an easy life being a self-parody." - John Baker