Now, my take…
I have even successfully shifted the dev of a large story from adv3 to adv3lite, a feat duly reported (and described…) here in past
Actually some of the main features of adv3Lite was anticipated in various adv3 contributed extensions (I call these “contribs”), by no less that Eric itself.
(I think that https://www.ifarchive.org/if-archive/programming/tads3/library/contributions/scenes.t is a major case in point; I recommend comparising this and adv3Lite’s scene system…)
Onward, I think that Zieg’s broad categorisation can be enough for planning; but on more specifics, the easiness of adv3lite coding came with a price, namely, a bigger story file, mainly because many thing which in adv3 are in specific classes are put straight in the Thing overclass, cutting many classes (e.g. Readable: an adv3 Readable in adv3Lite is simply a Thing with a non-nil ReadDesc) so every Thing borne with all flags, methods and variables needed for being nearby every adv3 class)
in the porting from adv3 to a3Lite, only two things was sacrificated; a custom posture, which was rather too simulationist, as was noted by too many alpha testers, and the transparency of a liquor cabinet (albeit I’m undecided about a sort of “booze label puzzle” I have lying around half-cooked, opening the cabinet is more than enough for putting the readables in-scope; incidentally, an a3Lite bottle can have a “label” synonym AND be readable, at the price of, well, questionable inputs like “read whiskey”; whose reeks of “alcoholmancy”…)
an a3Lite issue I have is the handling of thinking: personally I dislike having separate, say “crown” and “tcrown”, the latter for THINK ABOUT CROWN; I wonder why wasn’t implemented also a, say, “thinkDesc”; granted that the thinking mechanism allows thinking on abstract concept without dealing with scope, but there’s also simpler, much more material thinking… (remember that I think that THINKing is a much more immersive alternative to HINTS…)
on heavy modifying, I let the ouvre speak for itself: the successful separation of the siamese twins, TOUCH and FEEL:
// separating, once and for all, the siamese FEEL and TOUCH
//240911: you siamese idiots, should be fully separated now !!
modify grammar predicate (Feel):
'feel' dobjList
:
verbPhrase = 'feel/feeling (what)'
missingQ = 'what do you want to feel'
;
DefineTAction(Touch);
VerbRule(Touch)
'touch' dobjList
: VerbProduction
action = Touch
verbPhrase = 'touch/touching (what)'
missingQ = 'what do you want to touch'
;
modify Thing
touchDesc = "Touching {the dobj}, {i} don't discover nothing new."
basicExamineTouch() {touchDesc;}
dobjFor(Touch)
{
/* Obviously, we have to be able to touch it */
preCond = [touchObj]
verify() { }
action()
{
/* show our "touch" description */
display(&touchDesc);
}
}
;
;
modify Actor
feelDesc = "feeling {dobj}, {i} don't discover nothing interesting."
basicExamineFeel() {feelDesc;}
dobjFor(Feel)
{
/* Obviously, we have to be able to touch it */
preCond = [touchObj]
verify() { }
action()
{
/* show our "touch" description */
display(&feelDesc);
}
}
;
;
speaks for itself on the modifying adv3Lite.
I think that is enough for now…
Best regards from Italy,
dott. Piergiorgio.