ID:153699
 
For my MUD I plan to allow certain rooms complete, dynamic descriptions that change depending on the environmental conditions and the player.

The problem comes both in creating a method thats fast, looks proper, and is able to perform this generation without manually plugging in a description for every single attribute and combinations of attributes.

Say a room is composed of a few description objects, such as Fir Trees, a Road, a Spiderweb, some Underbrush, and mayby a Lantern. The attributes change depending on weather conditions etc, but for this example, lets use the following:

Snowy, Dark

Basically I am trying to develop a system whereby these 'attribute' objects can modify the Description Objects, as well as the state of the player.

If the player can't see so well and its dark, it might not actually say "Tree's", but merely "Towering shapes" or such, and might not spot the spiderweb at all.

I want to escape having to hand-tailor every situation, because thats pretty much impossible. That rules out 'replacement' symbols, because they are pretty choppy anyways (Such as, "The ${insert descriptive word} vale"). I would prefer to design a system that works with datums and procedures that you can override.

Thoughts, suggestions?
What would be really nice in a MUD would be to have it so that you sometimes mistake things for other things. So if I see a Green Healing Potion on the ground I might think its a Green Poison Antidote Potion, especially if I know nothing about potions.
Anyway Im not very good with dynamic systems, but you might want to attach visibility, shape and size variable onto everything.
That way you can use a system of if()s and pick()s to give anything from a vauge description too a perfect description.
For example "Towering Shapes" could apply to trees, pillars, skeletons leaning against the wall.
In response to DarkView
I have one word: database

=)


In response to DarkView
DarkView wrote:
So if I see a Green Healing Potion on the ground I might think its a Green Poison Antidote Potion, especially if I know nothing about potions.

While I won't implement that, I am going to implement a similar system that works in a bit less of an obscure way. While you don't mistake one potion for another, if you can't see what it is, it will simply appear as "a potion" etc.

You might not know this is the legendary sword Excalibur, and would simply see "a gold-inlaid sword" until you gain enough weapons knowledge or have it identified.

Im more looking for design-specific content on the generation engine itself, although I might use something similar to what you described as part of it =)