INFOCOM style room descriptions

K.V.

The library:

VerbosityLib.aslx


Entering SUPERBRIEF or SHORT will not display any room descriptions (except for the room name, the objects list, and the exits list), even if you haven't visited the room.

Entering BRIEF will not display room descriptions in rooms you have visited before

Entering VERBOSE or LONG will display all room descriptions


This effects every room in the game, whether you enter a room or enter LOOK.


Example game's code:

<!--Saved by Quest 5.7.6606.27193-->
<asl version="550">
  <include ref="English.aslx" />
  <include ref="Core.aslx" />
  <include ref="VerbosityLib.aslx" />
  <game name="Room Descriptions">
    <gameid>cdf9bb53-4c92-434e-af0f-1bbf6648000c</gameid>
    <version>1.0</version>
    <firstpublished>2018</firstpublished>
    <start type="script">
      game.autodescription_descriptionBak = game.autodescription_description
    </start>
    <description>Just an example with BRIEF, SUPERBRIEF, and VERBOSE commands to handle room descriptions.</description>
    <attr name="autodescription_description" type="int">2</attr>
    <attr name="autodescription_youcansee" type="int">3</attr>
    <attr name="autodescription_youcango" type="int">4</attr>
  </game>
  <object name="room">
    <inherit name="editor_room" />
    <description><![CDATA[Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?<br/>]]></description>
    <object name="player">
      <inherit name="editor_object" />
      <inherit name="editor_player" />
    </object>
    <exit alias="north" to="second room">
      <inherit name="northdirection" />
    </exit>
    <object name="Steve">
      <inherit name="editor_object" />
      <inherit name="namedmale" />
      <look>He looks like a man.</look>
    </object>
  </object>
  <object name="second room">
    <inherit name="editor_room" />
    <description><![CDATA[But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?<br/>]]></description>
    <exit alias="south" to="room">
      <inherit name="southdirection" />
    </exit>
    <object name="Amanda">
      <inherit name="editor_object" />
      <inherit name="namedfemale" />
      <look>She looks like a woman.</look>
    </object>
  </object>
  
</asl>

Play the example game:
http://textadventures.co.uk/games/view/tks44blfveebumw-i1lhlg/room-descriptions


How would people feel about this being part of Quest? I feel like these commands are standard in IF, and would like to add them - if it is not going to cause issues. It does not change the default play, so should be okay. An option would be a way to disable them on the Features tab of the game object.

I notice that you do not get the description if you type LOOK. That feels wrong to me, but you probably know what InfoCom (and Inform) do better than I, KV.

Any library will probably not work correctly if you have included one that library's functions in your actual game code. (The function in your game code would override whatever may be found in any libraries.)

Not sure what this mean.


K.V.

I notice that you do not get the description if you type LOOK.

Yeah...

In some games (although not many), it's more for when you enter LOOK than for when you're entering a room.

Sometimes, you have to keep examining your surroundings to see if something has entered or exited the location, or something of that nature.


I tested all the Infocom games I've got (which is almost all of them), as well as games made with Inform, and this is how it behaves.

We could easily add the option to have LOOK print the description, though.


Any library will probably not work correctly if you have included one that library's functions in your actual game code. (The function in your game code would override whatever may be found in any libraries.)

Not sure what this means.

This was just terrible wording on my part.

Just a warning to library users:
Any function you have in your game's main code will override that same function if it exists in any libraries.


I've always thought look is should to give a more detailed description of the room. Look at should do the same for any object.


K.V.

This doesn't effect look at.

As far as look goes, it can be changed so it shows the long description. That's just not the old standard, which is what I was aiming for.

If you want look to ignore the setting, you can change that first bit to this:

[OLD CODE REMOVED. THE LIBRARY HAS BEEN UPDATED TO HANDLE THIS]


How about an attribute on the game object the creator can set for this behaviour. I agree with Forgewright that that is what would make sense to me.


K.V.

How about this?

[OLD CODE REMOVED]


K.V.

"Always show the room description"

game.verboseonly = true

"Always show the room description when the player enters LOOK"

game.alwayslook = true


The library has been updated.


Hi, Just had a little play of the demo game. It could be quite a useful tool, especially for mapping a maze for example.
If this library were to be included in Quest, I'd prefer it to either be on the 'Features' or 'Room Descriptions' tab rather than on a separate tab.
Could you also make the different commands 'Verbose', 'Brief' and 'Superbrief' check boxes on the tab, rather than as a manually entered command in the game.


K.V.

I'd prefer it to either be on the 'Features' or 'Room Descriptions' tab

Me, too, but I'd have to modify CoreEditorGame.aslx to pull that off, so this library just adds a tab to the game.

The game's "Room Descriptions" tab would be my pick, because this one setting covers every room in the game.

Could you also make the different commands 'Verbose', 'Brief' and 'Superbrief' check boxes on the tab, rather than as a manually entered command in the game.

Checking Always print room descriptions would make each command print, "This game does not support BRIEF or SUPERBRIEF settings. Room descriptions will always print." This seems like it would be better if this became a standard Quest feature, instead of some games not understanding the commands, but this would be entirely up to Pixie.


Note that I'm not lobbying for this to be included by default in Quest. I already have it my games, and this library is readily available. So, if anyone wants to add these commands , they can easily do so.


If the player were to use 'short' or 'brief' at some point on a regular game description, because they didn't think they needed to see all the blah, blah, they may inadvertently miss important information or clues needed.

I tend to turn off the location bar and add the room name to the top of the description. I make the description a short line to give an overall glance of the room. Then add a 'once' line giving more detailed features so the player does not have to see all the writing every time they enter.

I was thinking about changing the 'look' command to give a 'full description' (which would be an attribute of the room) in case the player forgot what the information the original message had given.


K.V.

If the player were to use 'short' or 'brief' at some point on a regular game description, because they didn't think they needed to see all the blah, blah, they may inadvertently miss important information or clues needed.

Yep. The sole purpose of this is to give the player the choice to do just that.

I tend to turn off the location bar and add the room name to the top of the description.

I leave the location bar on, but I uncheck "You are in" so it only displays the room's name on that first line.

These settings do not effect that line; only the line with the actual description, which is the bit we enter as a room's description and is listed fourth. (I change the description to 2, the objects to 3, and the exits to 4 most of the time, myself, but it's normally the fourth bit.)

I make the description a short line to give an overall glance of the room. Then add a 'once' line giving more detailed features so the player does not have to see all the writing every time they enter.

BRIEF wouldn't effect the 'once', but it would a 'notfirst'.

Again, though, these settings exist so the players can decide whether or not our prose prints for themselves, and, if this did become a built-in feature of Quest (which doesn't seem like a good idea at this point), authors would have the option to disable the BRIEF and SUPERBRIEF options. (This is almost on the same level as taking away our ability to UNDO, but it is still the author's prerogative.)


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums