This release includes a handful of new extensions, quite a few bug fixes, and numerous feature enhancements. In addition, the TADS 3 System Manual is now included in the documentation along with a version of the TADS 3 Technical Manual substantially adapted for adv3Lite.
upper floor done; only issue, there’s a major ambiguity in the new directional handling; looking toward an unimplemented direction gives a definitively misleading stock answer:
>look nw
There’s no need to look in particular directions in this game.
… in a location where looking into the cardinal directions IS a major point in the story & narrative ! perhaps replacing “in this game” with “here” isn’t a bad idea ? (only a suggestion, of course…)
The stock message is intended for games that don’t want to implement directional looking at all, which I’m taking to be the majority of games. Replacing “in this game” with “here” would cause the reverse ambiguity, wouldn’t it, suggesting to players that they may well need to look in particular directions in other locations, which may not be the case.
If you want looking in cardinal directions to be a major point in the story, then you may want to consider using the lookdir.t extension, which is designed to handle that kind of thing. The default message would then be "You see nothing unexpected in that direction. ".
Or else, if you don’t want to use lookdir.t you could do something like this (further adapted to your own particular requirements):
modify LookDir
sayNoNeedToLookDir()
{
if(direction is in (northDir, southDir, eastDir, westDir))
"You see nothing special that way. ";
else
{
"In this game you only need to look in the cardinal directions. ";
abort;
}
}
;
so, changing the stock message (or, as you suggest, the sayNoNeedToLookDir is best (because the looking around matters only in that location; if one think on the (still provisional…) title, is obvious that intentional reference to related tropes are to be, expected in our specific case:
so, thankfully without spoilers, the narrative function of the specific location is explained…
Best regards from Italy,
dott. Piergiorgio.
ps. for mere fun ONLY, and allowing the postulation of scientifical hypothesis ;), another isekai trope (perhaps I have found the means of appeasing both sides of the atlantic pond…):
The Inform library settled on “here” pretty early for generic failure messages.
Digging would achieve nothing here.
There’s nothing suitable to drink here.
There’s nothing sensible to swing here.
And similar messages that implicitly apply to the current location:
You see nothing unexpected in that direction.
There’s not enough water to swim in.
You feel nothing unexpected.
You taste nothing unexpected.
This seems to be the best compromise. If a player tries digging in a few places and gets “Digging would achieve nothing here”, they understand that it’s not worth trying again unless the game specifically prompts it. But if a naive author adds a DIG action to a single room, the default message elsewhere isn’t actually wrong.
(A better compromise may be to drop the default action from the library entirely, and indeed Inform 7 has dropped DIG and SWIM and a few others.)
The message is now defined (as of the next update) as:
sayNoNeedToLookDir()
{
DMsg(no need to lookdir, '<.parser>{There}{\'s} no need to look in particular directions
{here}.<./parser>');
abort;
}
Game authors who prefer something else can easily override sayNoNeedToLookDir() to say something else.
The point of the message is to tell users that commands of the form LOOK NORTH are not used in a particular game (where they aren’t used). If a game wants to implement command of the form LOOK NORTH it should probably be using the lookdir.t extension, in which case the default message becomes:
sayNothingUnexpectedThatWay(dir)
{
DMsg(nothing unexpected that way, '{I} {see} nothing unexpected in that direction. ');
}
Which is defined on Thing (which would be the Room or Booth enclosing the player character).
The purpose of defining a LookDir grammar in the standard library (and not just the extension) is to avoid the kind of thing that previously happened:
>LOOK NORTH
You see no north here.
This could have been fixed by removing VerbRule(LookX) which allows LOOK X as a synonym of LOOK AT X but it seems at least some game authors want to allow this grammar. Indeed, previous discussions suggest that some authors rely on it to make commands like LOOK NORTH describe objects with ‘north’ in their vocabulary, so removing it would break existing code.
With hindsight, perhaps I should have followed more the adv3Lite philosophy in later (re)designing that location, which marks the passage from the early game (narrative) and the middle-game (narrative)
little OT anticipation: is 90% certain that I’ll amnisty the final adv3 (NOT adv3Lite) version of Isekai, which, if one thinks on, is somewhat historical, because back then I managed to do what was considered impossible, porting an established codebase from adv3 to adv3Lite) and because JJ is both coding in adv3 AND is a “scientific researcher” (said codebase predates the debate on the “EU-centric narrative” ,so to speak, aspects of Isekai…) I think that he will be delighted…
This to say, aside the mistake, with hindsight, of relying on LOOK , now a major difference between adv3 and adv3Lite should be put on the table: that adv3Lite don’t differentiate between indoor and outdoor location, relying on the improved region handling (which is superior to Inform 7, mainly because the regions can overlap, I use it for handling multi-location scenery which (or whose) differs in an handful of locations), so perhaps the best handling of looking in direction is in regionalisation, which allow a rational handling of the main LOOK difference between indoors and outdoors regions. so, aside the stock default, perhaps differentiating sayNoNeedToLookDir and sayNothingUnexpectedThatWay for locations, regions and world (that is, the default DMsg) is by far the best handling of the issue…
well, is a bit late for the ash wednesday, but with head covered in ashes, I admit that perhaps I should rewrite that location…