How can we enable players to ask NPC's questions about their world?

At the moment I am replaying Morrowind, a game I haven’t played since its release in 2002. I’m having a blast.

But there are a few things I am not enjoying and one of them is finding people/things. For example my mercantile skill is too low, I’m getting fleeced by traders. Where can I find a trainer for mercantile?

My answers appear to be: (1) talk to every NPC everywhere until I hit on one, (2) look it up via Google or ChatGPT. There are things I am perfectly happy to look up. Like I couldn’t for the life of me remember how lock picking, alchemy, or enchantment worked. I don’t mind looking up mechanics.

But I find myself a little resentful of having to look up in-world information. How could this be improved? Why can’t I ask an NPC who could can train me in mercantile? And if they don’t know, who do they know who might know?

So I started thinking about a system for asking questions of world knowledge. For example:

Who do you know that trains the mercantile skill?

We could break this down into:

query: who (could also be what, where, how, why, when … is that inclusive?)
subject: you
verb: know
relation: {trains_skill, mercantile}

We pass this query to the world model to get an answer.

That answer might very well be “nobody” and this is where it gets interesting because we could a facility to allow NPCs to make guesses about the world.

For example: We can know which other NPC’s this NPC has a relationship with, and we could model an attribute such as “knows_well” from 0 (knows their name) to 100 (knows where they buried the bodies), and use that as a kind of probabilistic knowledge relation.

We also know what the relationship is between the player and the NPC. So we could add in a dimension about how helpful this NPC wants to be towards the player.

So the second layer might be “I (am sure, think, guess) X in Y city (definitely does|i’m sure|might) do this”. Which could lead the player further into the game without requiring narrative support.

I doubt these are new thoughts (Chris Crawfords work comes readily to mind) but I wonder if anyone else is thinking about this type of thing, has ideas, spoken about it. Anyone else interested?

[Side note: I am working on a choice-based game, but using Rez which allows for building a world model to support such concepts, I guess they might be more directly implementable in a parser-based system]

6 Likes

The “ask about” and “npc knowledge” convos are definitely ongoing topics of design discussion in the IF community. While I’m not familiar with how other systems do it, I do know that TADS 3 has a robust capability for what NPCs know and can speak about, though not as in depth you suggested (to my understanding).

http://www.tads.org/howto/t3conv.htm

Galatea (an Inform game) is considered one of the greatest NPC conversation games in this sphere. Emily Short’s body of work and development is a lot about naturalistic behaviors regarding NPCs so I suggest you look more into her stuff!

4 Likes

Daggerfall had a more involved system for constructing questions, but I guess they decided to simplify in the sequel. Kind of like how Looking Glass’s experiences with Ultima Underworld led to System Shock’s conversationless approach based on finding log entries.

EDIT: It’s always worth considering an ad-hoc approach though. This particular problem could have been addressed just by making more NPCs mention this information. Or if you narrow the general problem from “asking about the world” to “finding certain services”, a game could include a directory. Circuit’s Edge comes with a phone book with addresses and phone numbers of the businesses in the game, which is pretty unusual.

3 Likes

Some interesting stuff in here, thank you. And I will dig into Emily’s work. I know the name but less the games.

That’s interesting, I never played Daggerfall coming into the series with Morrowind. I’ve been thinking about an interface for constructing questions and, inevitably, there are complexities so I can well imagine them simplifying to appeal to a broader audience. Shame though.

Simple but perhaps not scalable when you start thinking about combinations and how it could overwhelm both the knowledgebase and the UI.

That’s cute and a practical solution to the problem. Although it hoves a little towards “in-game Google”. One of the side effects that I like about where my thoughts were going is how it has the capability to draw the player further into the world by exploring probabilistic relations and creating clues.

1 Like

What about how Shōgun had a full-on mechanic to make simple statements possible? You could say, “XXXX is YYYY” or “XXXX should be YYYY” should/could/would/might/etc. All implemented. And lots of stuff like that.

On asking NPC about their world, I think that somewhat a line must be drawn, notwithstanding the level of familiarity between PC and NPC; and the line must be drawn around the structure of parser IF.

as an actual example, my major WIP is about gathering knowledge; out of the map is a city, and the PC get to know about the city, so he can ask NPCs about that town. But if he ask about the world itself, for story reasons NPCs raise more than one eyebrow (and serious worries in the NPCs more connected to the PC), so the PC wisely refrain to asking question about very basic knowledge, whose should be figured by other means.

parser-based IF aren’t precisely the optimal tool for scores of NPCs, even using choice-based talk system, so I don’t think that a TES/Fallout NPC knowledge/dialogue modeling can be fully ported to an parser-based IF.

But asking directions to NPCs IS a thing whose can be easily implemented in parser-based IF thru a NPC knowledge & dialogue system (built-in in both TADS libraries, and the former can be easily implemented in Inform 7/10)

(I’m Italian, and in Italy cities, towns and villages always has a labyrinthine layout of narrow roads and alleys, asking locals for direction IS the SOP (standard operational procedure) here)

Best regards from Italy,
dott. Piergiorgio.

1 Like

I (quite naively) thought parsers are doing better here than choice games because it’s easier to maintain variables representing NPC status.

Can someone explain me what Daggerfall’s and Fallout’s conversation system is about? Google wasn’t helpful for this question.

2 Likes

basically is a CYOA system; you select from menu(s) what you want to ask to the NPC.

e.g. from Skyrim:

conversation in Skyrim

Best regards from Italy,
dott. Piergiorgio.

2 Likes

Interesting question. It isn’t something I’ve given a lot of thought to, as I tend to avoid conversations with NPCs as the process is usually painful.

In Daggerfall, I remember choosing options from several lists to ask something. The main problem with this was that (quite rightly) not everyone knew the answer. As there were something like 100,000 NPCs, it was usually quicker and easier to find out for yourself.

From what I remember, Morrowind has a wiki style conversation system where certain words were highlighted in the NPC responses and you could click on them to find out more about that topic. This seemed a little more natural, but it was difficult to ask about a topic if the NPC didn’t mention it.

As far as trainers in Morrowind go, most of them were associated with a particular guild, so people who weren’t members would probably not know the information you needed.

One aspect of the Elder Scrolls games that I found useful was the books. You could read them to find out information about the world without having to ask NPCs.

I vaguely recall one of the games in Infocom’s Enchanter trilogy having an encyclopaedia that the player could read.

The only IF conversation system that I can recall off the top of my head is from Monkey Island, where you just choose an option from a list of possible questions. The possible choices could change, depending on what you had previously done or said.

The sword fight insults are a good example of this.

I would be interested in trying a modern parser-based conversation system, as I don’t remember the early attempts being very easy to use.

I don’t know if it has ever been tried, but I would like to be able to start a conversation by saying something like “talk to dwarf”. If they actually responded, the prompt could change to “[to dwarf]” or similar, and from that point on whatever you typed would be directly to the NPC rather than the computer narrator/DM until you ended the converstion by typing “goodbye” (or whatever).

This would be much easier than constantly typing “say to dwarf” before anything else. Of course, this could still be supported in case you just wanted to say one thing.

3 Likes

Thanks for the lead. I’m not familiar with that game. Is this this one?

I’m also trying to grok your examples and not quite there. Can you give a concrete example?

1 Like

I still haven’t played Morrowind but I checked out some longplays and it looks like there’s an area where NPC speech is printed and a clickable “noun bank” to its right, to direct the conversation.

Daggerfall had something like the Mac OS Finder’s column view to choose your question. And Fallout had a clickable dialog tree system, with a mostly useless “ask about” prompt. Probably the developers underestimated how much commitment it would take to flesh the NPCs that far.

Well, it’s a science-fiction game so it’s not so out-of-place as it might be in fantasy. It’s very “in-world” to make phone calls. Maybe in-game reference materials can actually draw the player in more, though. With the right organization or visualization, you can convey complex information that the player might not be able to assemble from hints dropped in conversation.

Although it’s interesting how reluctant games have been to include freely usable telecommunications in the game world (phones or the Internet). Kind of surprising since you’d think you could get some interesting puzzles out of making the player choose where to be when communicating with a given NPC.

2 Likes

You may well be right, I think it could be easier to construct a meaningful dialog system in a non-parser game (and, fortunately, I am not making parser-IF) with a more visual interface.

1 Like

Yep Morrowind dialog is a list + wiki text. You have a list of “concepts” (not necessarily nouns) that the NPC understands and when you click one you get text in the dialogue window and sometimes a choice (when the text refers to an active quest line).

The text may contain clues that add new elements to the list.

This all works reasonably well except that the lists for some NPCs get very long and it can be exceptionally hard to work out what the interesting stuff is. Sometimes the only way to know that a new topic has been added is that the list jumps a little.

This could be markedly improved on without dealing with the “ask questions about” type of scenario I am thinking about. But it’s not a bad starting point. Implementing the list & wiki text is simple in Rez and I already use inventory as memory and items as knowledge/topics.

I’m still thinking about a UI for asking questions and how to modify the Rez @relationship element to support something more nuanced than affinity.

1 Like

Not quite sure what constraint you’re trying to express here, can you elaborate?

1 Like

Yes, there was an additional window showing possible a list of topics to ask about, so that you didn’t have to soley rely on what the NPC had recently said.

The list updated as you learned new things, completed tasks etc.

There was also a journal that kept notes of important things you had learned.

It’s a shame that Morrowind had so many floating windows, as they seemed to get in the way more often than not. A tabbed interface would have improved the experience.

I haven’t played any of the Magnetic Scrolls games, so I’m not sure how I would get on with multiple display areas in a parser-based game.

1 Like

I now think my thought was wrong. Twine and your system have a full-fledged programming language at hand, so they can store an NPC status very well. So it is NOT difficult for a choice game.

2 Likes

One of my favorite non-IF “conversation” systems was Spiderweb Software’s first game: Exile: Escape from the Pit. When you talked to an NPC, it would pop up a dialog box and you could type in anything (mostly just one word) to talk to the NPC about.

A lot of times it worked like a menu system: you’d go up to an inkeeper and say hello, he’d tell you who he was, say hey this is an inn. You’d ask about buying things, he’d say you could get food or drink or a room for the night, you’d ask for one, he’d tell you the price, you’d confirm… but with the extra feature that if you knew what you were doing you could skip the in-between steps and just go straight to asking for a “room” for the night.

But then you could also just ask anyone about anything, and a lot of the NPCs would have pretty standard responses to common things. Which seems like it could be used for the original question: just type “training” or “mercantile” or something, and they could tell you where to go. I don’t remember it being used heavily for this in Exile, but certainly in the original town most of the NPCs would suggest where to go next. And in most places if you asked about the object of your quest they’d have something to say even if it was just “no idea, you should talk to the mayor about that.”

And it had that open-ended feel to it that parsers have: you could type anything in there (and there were hidden things to ask about in some places that’d give you a secret quest). And as with database fiction like Her Story, if you were playing for the first time you’d never guess them so you’d have to find the right words in more-or-less the proper sequence, but if you’d played before you’d know that you could just ask this innkeeper about the friendly spiders or whatever.

Anyway. Neat system. Sad that he abandoned it for the remakes and his other later games. Though I guess some people didn’t like it because they had to type, and that was slower than clicking buttons, which… fair enough, I guess.

Edit: whoops, I meant to throw in a link: there’s some footage of the dialogue system at the beginning of this YouTube video. The game itself is free, at the very bottom of this page but it’s a significant process to get it running on modern systems, so…

3 Likes

What’s coming to mind is a kind of mind mapping interface. You type in a topic and, based on the world model, it “expands” it to related topics, giving you more detail. This could be kind of cool.

Not sure what you are referring to here. If you right click it brings up the HUD with your character info, map, and so on (and pauses the game) and that takes up the whole screen. But otherwise, in play, it’s not visible/obtrusive. It feels like a pretty decent compromise when there’s so much info available.

I dislike the way that each menu opens independently in a different window as seen on this page.

If each of those windows was available in separate tabs (like most modern browsers) they would be less intrusive to me.