I am interested to hear your ideas about having dialog with NPCs in a multiplayer RPG.
First, let me elaborate a bit about dialog structure.
A dialog will start when a player interacts with a NPC. A dialog is built-up from multiple pages. A dialog page has a text and optionally has a list of options player can select also a page can optionally trigger a quest.
So a player can start a dialog with an NPC which can end up with a quest that NPC gives to the whole team.
I want other players to get the whole picture of what is actually going on.
Note that multiple players can have dialogs with different NPCs at the same time.
My idea is to show a dialog box similar to a chat box (which displays the chat that is going on between the player and the NPC) to other players.
I am interested to hear about your ideas.
Different games have implemented this in different ways.
Usually, I think every dialog has some “channel” that it’s associated with and that determines how the other players perceive it. For example, if you are just talking to a merchant and traversing lists of items then that’s private… no one needs to be spammed as you go back and forth asking about sword1 and sword2. (After all, these sorts of dialogs can be used for all sorts of things.)
Another “public” channel might just have the text hovering over the players’ heads if that’s how conversations work… and/or broadcast in the chat for anyone nearby. If your game has the idea of a ‘party’ then you could also have a “party” channel that let’s everyone in the party see the messages but no one else.
In Neverwinter Nights, I could also filter what my ‘chat’ window was displaying to ignore certain types of NPC interactions. There are lots of different ways for that to happen.
For anything other players can see, you probably also want to have the ability to ‘lock’ an NPC while in the dialog. It’s a bit silly if two players are traversing the same dialog tree and everyone nearby is getting spammed with the same duplicate messages at various times.
As a rule, I figure a ‘multithreaded’ NPC’s conversations should be private… or at least hidden to anyone that might be seeing multiples. (So NPC X might be multithreaded for Party 1 and Party 2 if the dialog text is private to the party, etc.)
I have no investment in this other than curiosity, but the way you describe it sounds a lot like something like slack. Subscribing to a channel in a team and so forth. Would that be a good analogy?
If you were talking to me then no, it’s nothing like slack… since you don’t actually subscribe to anything. The only thing similar I think is the word “channel”… but “level” might have worked just as well here.
Paul, thanks so much for sharing your ideas.
I like the idea of “channel”.