The Queen of Sheba
Suppose we want the player to ask questions of slightly more complexity - we might want to build in a system that understood "who", "what", "where", and "when", for instance. We could use a topic table for this, too:
topic | question type | reply |
"rain/weather/clouds/cloud/rains" | what | "'Clouds are a disturbance made by the paths of birds,' Solomon replies. 'The air beaten by their wings becomes agitated, as when a river is stirred and the mud churns up.'" |
"rain/weather/clouds/cloud/rains" | where | "'Weather is contained in a great silk bag which holds in the heavens,' replies Solomon." |
"hunger/food/eating" | when | "'Sorry, are you getting hungry?' he says, and rings a bell to summon servants." |
"hunger/food/eating" | why | "'Men were made to need food in order that they must farm and cook and dine together,' Solomon replies. 'Otherwise, they might live apart, each sufficient in himself. But no man can feed himself alone all through his life.'" |
"Solomon/he/himself" | who | "'As you see,' he says, holding out his arms to each side." |
"Solomon/he/himself" | what | "'I am an ordinary man,' he answers." |
One of the nice things about this system is that it only resets the "current question" when we get a new question word. For instance, this test will produce different replies to the question about Solomon himself, because the second time he is still in the mode of answering "what" questions:
If Solomon is to live up to his reputation at all, his wisdom table will have to be quite a bit longer - though one also would want to be careful, because forcing the game to cycle through a really immense table could be quite time-consuming. In fact, for the sake of this example, let's reward the player for managing to stay within the (narrow) range of Solomon's knowledge:
In a real game we'd need to be a great deal subtler. All the same, if we have a character of quite limited resources to present to the player, it's a good idea to give the player some incentive to stay on topic, ask questions the character can answer, and generally interact within the parameters we're prepared for.
Now, this last bit requires some trickery from later chapters, particularly those on Understanding and Activities, to pull the question words out of the player's command:
Test me with "ask solomon about himself / ask solomon what rain is / ask solomon about himself".
The pillars of the room are made of almug tree, the ceiling made of silk and the floor of glass.
You can see Solomon here.
>(Testing.)
>[1] ask solomon about himself
"As you see," he says, holding out his arms to each side.
>[2] ask solomon what rain is
"Clouds are a disturbance made by the paths of birds," Solomon replies. "The air beaten by their wings becomes agitated, as when a river is stirred and the mud churns up."
>[3] ask solomon about himself
"I am an ordinary man," he answers.
Truly, Solomon has answered all your questions, and his wisdom is even as great as you had heard!
*** Your heart beats strangely fast ***
And now we have a game that will accept (though not always respond very sensibly to) questions of almost any form we might put to another character: ASK SOLOMON WHAT RAIN IS will be answered, but then again, it won't be distinguished from, say, ASK SOLOMON WHETHER THIS PERSISTENT RAIN IS A DIVINE PUNISHMENT OR WHAT.
All the same, a system that allowed the player a bit more specification of questions than simple keyword-use might be useful in a mystery game, for instance, where we might want to let our detective conduct inquiries into specific details. An alternative approach to the rather free one above would be to force the player to use only questions of the form WHAT IS RAIN? or WHO ARE YOU?: this would cut down on false-positive matches. But we might still choose to store the responses in a table of this type.