On Scenery Objects #34
Replies: 1 comment 9 replies
-
I think that the "scenery" implementation is modeled after "That's just scenery." that you find in some games. Things that are there just for ... scenery, not playing any part in the game, not even as a prop. With it, you can go through your location descriptions and create scenery objects for all the nouns. In this way, the player doesn't get "I don't understand the word 'painting'" when the game has just said there was a painting there. If you have long descriptive texts which mention many nouns, this needs to be as simple as remotely possible. I feel there is a stylistic variance between "That is just scenery." (that you might want to keep) and a more "illusion preserving" response. Maybe there is room for something slightly different. Perhaps a type of thing that is fairly easy to create and works as you would expect with descriptions and all necessary verbs. I just wanted to comment on this, before proceeding. Expanding on the scenery class to provide all that "protection" is probably a good idea. And, if done inside that class it should not present any further burden on the author. So I think this is a point of possible improvement. Default ResponsePerhaps just expand on the current to
That fixes issues with forms for the item as such. Still have the "is" though, but that's an easy extension of the suggestion provided that the author can indicate the plural-ness, which shouldn't be an issue:
But also, when it comes to "scenery" players might probably disregard any grammatical errors, so I'd say fixing that is only necessary for completeness and perfection ;-) (Other languages might require other aspects to resolve this, I suppose.) Blocked Attributes vs Verbs OverridesIt seems like overriding verbs is the safe route to go. Then the default response can be given in unconditional checks for all blocked verbs:
Since checks are always run first starting with the most specialized, this will override any general checks, for objects e.g. And then we don't need the negated attributes. You are probably writing more Alan code than me these days so, I might have missed something. |
Beta Was this translation helpful? Give feedback.
-
I've noticed that the implementation of
scenery
objects is somewhat limited.Here's the entire source module:
Honor
xDesc
AttributeThe main problem I see with scenery objects is that in order to produce some text when examining them you need to implement the
Verb examine Does only
on the specific instance, whereas it would be much easier to separate theexamine
verb definition above and tweak it to honor anxDesc
attribute which is not an empty string (like we did for examine and elsewhere).It makes sense to me that many scenery objects are usually intended to be examinable, since they are the to provide mood and atmosphere to the game.
Improve Default Message
Also, I'm not quite happy with the "That's only scenery." default response.
I think the goal of the default message is to inform the player that he/she is dealing with an object that plays no significant role in the game (except maybe revealing some info or hinting in the right direction). So, trying to take it, push it, etc., should result in a response that makes it clear that it's not worth attempting further actions because the object has a merely scenic purpose (without being so explicit though).
Blocked Attributes vs Verbs Overrides
For the same reasons mentioned above, I can't but notice that scenery objects are trying to prevent actions via attributes negations:
Although setting those attributes is probably a good practice, I still think that the best approach is overriding as many verbs as possible, to ensure the default (deterrent) response is shown, otherwise these attributes will prevent specific actions without clarifying that attempting other verbs is futile — which might lead to player frustration, especially if he/she is stuck in the game and is going for the "guess the verb" brute force solution to move in the adventure.
Since many verbs share similar syntaxes, it should be possible to override all library verbs with a limited number of verb overrides. The real problem might be that the negated attributes might be triggering CHECKs that will prevent the verbs execution, so overriding the verbs might not work, unless we set all those attribute to true, confiding that our custom
DOES ONLY
verbs on the class will prevail. Authors should still be able to override via customDOES ONLY
verbs on specific instances (if the need be).@thoni56:
Also, the attributes list needs to be checked for it might be incomplete — e.g. I'd add
Not wearable
,Not eatable
, etc., even though these are unset by default, just to be on the safe side.Beta Was this translation helpful? Give feedback.
All reactions