Conversation -- Menus generated from ASK/TELL

I have an idea regarding conversing with NPCs that I plan on incorporating in my tentative work in progress, if I can figure out how to do it on whatever authoring system I end up using. I’m wondering if it has been done before.

What about bringing up a menu upon an ASK ABOUT or TELL ABOUT command with options regarding what exactly the PC is to inquire or comment on the topic? Naturally, the menu options will very based on what the game author determines to be the PC’s knowledge on the topic at any given game state. At the beginning of the game, the PC might have a couple possible questions about a visible landmark; after exploring the landmark for him/herself, the PC might have more available questions and perhaps some comments directed to the same NPC (or, possibly, multiple NPCs).

Menu options will typically go away after being selected. When their are no options left for a given topic, a summary of all that was discussed on the topic could perhaps be given, as in the advanced ASK/TELL system used by many games. As an additional feature, if there is only one available option for a particular topic, it will be selected automatically without producing the menu. This would be difficult to code, but I think it would be well worth it.

Here’s a brief mock transcript:

What would would you like to inquire about the Cavern of Doom?
[1] “What so special about this cave?”
[2] “Is the cave dangerous?”

“Well,” says the man, “it’s rumored that ancient treasure lies hidden within, and that’s attracted foolish adventurers for many generations.”

You ask, “Is the cave dangerous?”

The man smirks. “Well, you tell me. Half the fool adventurers who go in there never come out again, and most that do come back insane or maimed.”

You have no other questions regarding the cave. The man has told you that there are rumors of treasure hidden in it, and that many who venture into its depths do not survive.[/b]

A game using this conversation model could implement a TALK TO command as well, which would bring up a menu of topics directly related to the current state of the plot.

I think this idea aims at many of the same goals as the common advanced ASK/TELL system with topic suggestions incorporated into the TADS 3 library. The only substantial advantage I think this system would have over the advanced ASK/TELL is that it’s cosmetically easier to read, but that’s my subjective opinion. The advanced ASK/TELL is a very good system, but I also like the affect of conversation menus even though they limit interactivity.

I could be mis-remembering, but check out Fate by Victor Gijsbers and City of Secrets by Emily Short.

eta: I’m not sure if these games give you menu options about a topic per se, I think they use a general menu interface with specific quips. But I don’t see too much different between that and what you’re talking about, so they might be good to look at anyway.

You can create such conversation scripts with the Node-X system I have developed.
I call it “flag-dependent” conversation. A more common name is interactive conversation.

For example, in Node-X you can base NPC conversations on a couple of game states,
such as on which node/s the player was before, on which item the player possesses
or not in the inventory and even on which item the player holds in which hand.

This technique allows you to create very interactive NPC conversations with a high
level of replayability.

Here is a pseudo-transcript for Node-X, based on your transcript:

[code]Situation 1
State: player hasn’t examined the cave and approaches NPC for the first time

The man asks “What would would you like to inquire about the Cavern of Doom?”

[1] “What so special about this cave?”
[2] “Is the cave dangerous?”


You ask the man what is so special about this cave and he replies:
“Well, it’s rumored that ancient treasure lies hidden within,
and that’s attracted foolish adventurers for many generations.”

[1] “Can you tell me more about the ancient treasure?”
[2] “Is the cave dangerous?”


You ask the man if he can tell you more about the ancient treasure.
He says: “I heard some adventurers saying that there is a secret
entrance in the cave in which the treasure is supposed to be hidden.”

[1] “Is the cave dangerous?”
[2] “Has anyone found the entrance yet?”


You ask him if anyone has found the hidden entrance yet.
The man replies: “There has to be an entrance somewhere,
but I have no idea where it could be.”

[1] “Ok. I guess I would have to examine the cave by myself. See you later.”
[2] “One last question… Is the cave dangerous?”


And now let’s take a look how the whole conversation would change
in Node-X when there is a completely different situation in the game
and when the player would make the same choices at the beginning
of the conversation…

[code]Situation 2
State: player has examined the cave before, found a hole in one of the cave’s walls
and approaches NPC for the first time

The man asks “What would would you like to inquire about the Cavern of Doom?”

[1] “What so special about this cave?”
[2] “Is the cave dangerous?”


You ask the man what is so special about this cave and he replies:
“Well, it’s rumored that ancient treasure lies hidden within,
and that’s attracted foolish adventurers for many generations.”

[1] “Can you tell me more about the ancient treasure?”
[2] “Is the cave dangerous?”


You ask the man if he can tell you more about the ancient treasure.
He says: “I heard some adventurers saying that there is a secret
entrance in the cave in which the treasure is supposed to be hidden.”

[1] “Is the cave dangerous?”
[2] “Hmm, I found a hole in one wall when examing the cave…”


You tell the man that you found a hole in one wall when examing the cave.
He raises his eyebrow and says: “Hey, that could be the secret entrance!”
The man asks you: “Have you already entered it?”

[1] “No, I’m a cautious person. Do you know if the cave is dangerous?”
[2] “No, it was too dark to see anything.”


You explain that it was too dark to see anything.
The man says: “I see. Take this old oil lamp of mine and enter the hole.”

[1] “Thanks! That might be useful in finding the treasure there.”
[2] “Can you tell me if this cave is dangerous at all?”


You could create a third situation for the conversation script where the player has entered the hole
without oil lamp, even though it was too dark, has found the treasure none of the less and approached
the NPC for the first time. Write some funny comments the NPC makes when you tell him that you
have already found the treasure and without using his oil lamp! :mrgreen:

I know this may sound a bit like self-advertisement now, but if such interactive conversations
is what you look for creating as an author I strongly recommend using my multiple-choice/CYOA
system Node-X.

As I mentioned before, you can write very interactive conversations with high replayability.
And if you are a skilled writer and take this stuff to the extreme you can create even more
realistic conversations with a non-repetitive flow which would make your adventure or story
different every time you play it.

Too bad I ran out of time last year and couldn’t showcase this feature in my previous entry
“Project Delta” for IFComp 2008. :frowning: Let’s hope I can showcase interactive conversations in
my new entry for the upcoming IFComp 2009…

Hm, thanks for the replies.

I’ll have to try City of Secrets when I get the chance. I think I started playing Fate before. Anyways, my idea for a conversation system really isn’t anything new when it comes to content or goals. I guess it really comes down to my preference for displaying content and the balance between interactivity and specific plot devices. Thanks for the info.

One thing I noticed about your example situations is that you avoid the “lawnmower effect” where the player just goes down the list of menu options by dynamically changing the actual wording of the options based on the player’s selections. It looks like it ultimately guides the player into choosing the options that reveal or advance the plot.

I like menu systems that deposit the player back at the command prompt after making a selection, because they seem more immersive. However, if Node-X is completely multiple-choice, then I assume the whole user interface would be more or less the same when simulating a conversation as at any other time? Maybe that would make the conversation more immersive by being seamlessly integrated, but I really have no idea how it would look, to be honest.

Well, I have very little experience with CYOA, but I’m willing to at least consider it as a possible approach. Natural conversation is one of my lofty goals for my game concept, but it’s not my only goal, or even my main goal. Really, I just want to make a work of interactive literature with a story that explores the human condition, which is also hopefully fun as a game in its own right.

I just searched the IF Wiki for Node-X, but I came up empty. Do you have any resources on the web for it yet? I didn’t play any of the 2008 Comp games, but I just downloaded Project Delta.

Then again, if I actually ever release this concept of mine, I’ll be pleasantly surprised!

Yes, I do this with intention. Since a node is treated as a page in a CYOA gamebook you get a new set of choices/options each time. Now in a normal game situation repeated options can have the same wording as before, e.g. “open door”, “go north”, etc. It would make no sense in this case. But if the options are part of a conversation and are repeated then you would be wise to slightly change/adjust their wording each time to better fit them to the current point in the conversation.

You could also add more variation when the NPC is being asked the same question on a particular page but gives a slightly different answer to it. In the example above this would apply to the “Is the cave dangerous?” question. The NPC does not have to give the PC the exact same answer to this question on page 1, page 2 and so forth. You can change the wording there too. This way you can further increase the replayability factor of the adventure.

As I said before, the more you take this technique to the extreme, the less predictable your adventure will be. Gamers will be interested to replay your adventure several times, just to see what a NPC would have said on this page or that page when being asked the same question. Is the outcome of the NPC conversation always the same when a certain question is being asked? Or is it different on a particular page and leads to an alternative ending? Maybe there is a hidden easter-egg? These are the kind of questions gamers will ask when encountering a well-scripted conversation in Node-X.

The trick is to gently guide the player into a certain directon but not force him/her to go into that direction. The player has to be given the feeling that it was his/her choice in the end and not the author’s choice. So the player has to think what to do next. This is critical in a multiple-choice adventure, because as you know multiple-choice tends to be too predictable and players begin to feel like a pawn being guided “on rails”, so to speak. I’m currently experimenting with this kind of stuff. It’s not that easy to create a situation in the game where the player is being gently surprised. You know, the well-known “wow, I didn’t expect THAT to happen” effect which makes a good adventure.

Well, in a Node-X adventure the player will mostly be back at the command prompt after making a selection at a node. There are exceptions though. I have also implemented so-called “JumpNodes”. These are pages without options which jump to a pre-defined node/page after the player presses a key. They can be used to introduce new chapters or sections during game. I already used that in “Project Delta”. In the new version of the Node-X interpreter a JumpNode can also be programmed to jump to a random (!) page. This can further increase the replayability factor which I talked about some paragraphs above. Things can become complex in a Node-X adventure. It’s not just “jump from this page to that page”.

I don’t exactly understand what you mean by saying “seamlessly integrated”, but ofcourse you can mix conversation-type options with normal options such as “open door” or “enter room” and make everything dependent on each other. It could look like this, for instance:

[code]You are in the cave in front of the hole in the wall. The man stands beside you.

[1] light up oil lamp
[2] exit cave
[3] “Will you go first or are you too scared?”


You ask the man if he will enter the hole first or if he is too scared.
He replies: “No, I’m not scared at all. Light up the oil lamp or give it to me
and I will tell you if the entrance is clear or not.”

[1] light up oil lamp
[2] give oil lamp to man
[3] leave the cave
[4] “You know, I think I should enter the hole first.”


You tell the man that you think you should enter the hole first.
The man answers: “Alright, go first and I will watch your back.”

[1] light up oil lamp and enter hole
[2] leave the cave


If this is not immersive enough then I don’t know what immersive is. :sunglasses:

I understand. You want to write an adventure where the PC talks to himself/herself or to his/her multiple personalities (shizophrenic PC). Looking at all the script examples I posted above I’d say it’s possible to write such a game in Node-X. In our case, when the PC stands in front of the hole the NPC (man) can be replaced with the PC’s mind. The PC is unsure whether or not he should enter the hole and makes a monologue.

Well, the Node-X interpreter (“nxi.exe”, “nxi (elf)”), which has an integrated compiler and adventure loader, is on my harddrive and is currently undergoing final beta-tests of mine, but I haven’t released it yet. It will be uploaded to the IFComp 2009 on September 30th, together with my entry (external gamefile). So by downloading my entry gamers not only can play my submitted adventure but also get the opportunity to create their own Node-X adventures.

There will be no tutorials included though which teach you how to write a Node-X adventure script (NodeScript) which the compiler understands. So you would have to figure it out by yourself, but it’s not really that hard. However, I will release Node-X tutorials at a later point on a website of mine… maybe after the competition.

You could give Node-X a try and see if the concept of yours can be released in a multiple-choice environment with features I have already mentioned and demonstrated in the examples above.

No, I meant the spiritual aspect of the human condition, not the psychological. The PC will be a universal symbol, the regions of the map will be somewhat symbolic, and several NPCs are symbolic representations of sin and evil.

I think I see a potential use for a multiple-choice environment in my concept, regarding the map of the prologue, which is just too big. Maybe with Node-X I could have the player initially jump around to the main areas instead of having to explore many rooms and possibly lose interest quickly. I’ll continue to write notes and draw maps and maybe fiddle with some code in various authoring systems, and I’ll give Node-X a look when it’s released. :slight_smile:

I think you’re misremembering where Fate is concerned - I’m pretty sure it’s just ordinary menus - but City of Secrets uses this system. So does Pytho’s Mask. So does Best of Three, although since it’s proactive about bringing up new quips, you don’t really need to change the subject much (if ever).

You might like to have a look at Emily Short’s article on IF conversation, if you haven’t already.

Sounds like the bad dream level in Max Payne…

Drawing concept maps is what I recommend. Especially if you want to implement enviroments in Node-X and not just plain CYOA stories. Besides, Node-X supports all ASCII characters for text output. So you could not only draw concept maps on paper but actually implement them in the game! This can be useful if you want to write a more graphical text adventure.

Here’s an example for a minimap and text used together in a Node-X adventure:


| |___| |
| 1 ___ 2 |
| | | |

You are in room 1.

[1] examine room 1
[2] go to room 2


Sorry for the lame ASCII graphics. This is just a quick example using standard text characters. :wink:

Each number in the minimap represents a node. You may understand now why I have named the system “Node-X”. Because a node can not only represent a page in a CYOA gamebook, but can represent a point on a map instead. That’s why in Node-X a standard node is not called a “page”, but a “PathNode”. JumpNode is another node type, as I have mentioned in my previous post. Can be also used for portals and stuff. And there are more node types.

It’s a bit like editing a 3D map for Unreal Tournament or another first-person shooter. If you draw any concept maps for your text adventure with rooms and stuff, make sure to include PathNodes (e.g. dots) where you want the PC to be able walking around later in the game. This makes it easier to implement actual environments in Node-X, not just text.

I’ve never seen that article before; it looks very helpful. Thanks.

I see that my idea is very similar to this, although what I had in mind is slightly different when it comes to game commands and perhaps also in the handling of topic suggestions. I haven’t really played any games using this method. Emily Short must be about the only one handling conversation this way, but that says a lot for the system’s level of immersion and finesse.

That’s an interesting idea that I never thought about. An ASCII map, possibly an interactive one, might be a way to organize the greater prologue region. Hm, possibilities…

Thanks for the advice!

There’s also Mike Robert’s article Choosing a Conversation System. It doesn’t specifically discuss hybrid ASK/TELL/menu systems, but it does give the rationale behind the topic suggestion system he chose for TADS 3, which is similar (as you noted in your original post).