Advertisement

'Best' technique to write multiple choice dialogue

Started by February 21, 2011 10:19 PM
16 comments, last by Tom Sloper 13 years, 1 month ago
Finally found the topic I was after.
Iv searched for a bit for a program/software to write out multiple choich/path dialogue. Iv not played fallout - but what had in mind was what had Mass-Effect guys done to layout the dialog?

The game im trying to design will have a Zelda- Link to the past Graphic design. What Moe is making sounds like what im after in terms of just a simple editor to layout the text, and make sure it flows that way i image. If anyone knows of any software for this.

The code I have at the momnet I would want it to access simple text files which contain:
Condition
Script
Respons
Effect
GoTo

every thing optional excpet the Script bit. This saved in thousands of tiny text files, all named approprilty. Then i forgot about XML. Though off the top of my head not sure how to jump within text file(the xml file) in Java. as im design game for java?
So any direction about my fist question of software to layout my dialog?
Thanks

If anyone knows of any software for this.
So any direction about my fist question of software to layout my dialog?

Technical questions like this might get answers in one of the technical forums. And did none of the above links give you any good ideas?

-- Tom Sloper -- sloperama.com

Advertisement
This is a hurdle I've encountered as well. I don't want to hard code responses to NPC to save on overall time. However, I want responses to make sense and be tailored enough to sound genuine from whatever NPC you're talking to. I've thought about a generative process whereby you would select "how" you want to respond (kind, hateful, greedy, etc) and depending on the NPCs attributes (if they're in a good mood, generally of a grumpy disposition, suspicious of others, etc) would determine how they'd respond. But, I'm trying to make a generally open world. If your game is more script like what Tom suggested (labels or mini trees) sounds like a common sense way to go about it. If it weren't for the complexity in what I'm trying to accomplish I'm sure I'd settle for something very similar myself.
Always strive to be better than yourself.

Chat Mapper

It is cheap and good :) Support for complicated dialogue trees, scripts, export to XML etc.


Just want to add that I checked this out and it's quite good :) I'd recommend it.
This is a hurdle I've encountered as well. I don't want to hard code responses to NPC to save on overall time. However, I want responses to make sense and be tailored enough to sound genuine from whatever NPC you're talking to. I've thought about a generative process whereby you would select "how" you want to respond (kind, hateful, greedy, etc) and depending on the NPCs attributes (if they're in a good mood, generally of a grumpy disposition, suspicious of others, etc) would determine how they'd respond. But, I'm trying to make a generally open world. If your game is more script like what Tom suggested (labels or mini trees) sounds like a common sense way to go about it. If it weren't for the complexity in what I'm trying to accomplish I'm sure I'd settle for something very similar myself.


This is quite an interesting take on a dialogue. SunAndShadow offered a well written definiton of possible dialgue options in this post.

I know that generic ai generated dialogues may easily end up repetitive and “heartless” so there are many things to consider.
I liked the idea of diplomacy in Vanguard (as it was planned / marketed before we actually saw what it turned out to be) and actually influencing the way an NPC reacts to me by being snappy, sarcastic or simply nice sounds like a good way to get more emersion in an rpg. Writing out the complete dialogue options for every possible combination for every NPC… I don’t think so. I’d imagine that with enough planning it should be possible to implement a system where not only what I say but as well how I say it affects the reaction and following dialogue.

Possible Requirements:
  • Attributes for wit, charisma and empathy
  • Skills for diplomacy, negotiations, discussion skills, haggling etc
  • Factions, politics, racism etc

    1) Player A starts a dialogue with NPC B (default mood unless otherwise declared for the encounter)
    2a) NPC B reacts based on personal preference towards the player, the player’s race and form of greeting as well as a set of NPC specific properties (being a merchant, guard, noble or whatever)
    2b) NPC B checks if he is biased for/against the player (did they meet before, how did the confrontation go/end etc) and if not set he get’s an attitude towards the player based on the given situation [see 2a)]

    3a) Player A can choose from a set of dialogue options based on the reply of the NPC as well as the role of the NPC (being a merchant, guard, Quest NPC or whatever)
    3b) Additionally Player A can choose from a set of general dialogue options based on Quest status, special items in his inventory etc
    3c) Player A can choose to set the “mood” to nice, angry, demanding, bullying or neutral (either for one reply or the rest of the dialogue)
    4) NPC B reacts as in 2 based on mood, input from the player and global influence as well as his attitude towards Player A

    Etc pp


    Things to keep in mind:
    • Each node has to be general, a placeholder for the actual response.
    • There should be a set of default reactions for each node that the dialogue can draw from.
    • Each NPC can get a special set of reactions for each node/situation that overrides the default if set.
    • Special NPCs should have some basic functionality that the player can access without to much hassle (Quest NPCs, guards, merchants, shop and inn owners etc)
    • Certain NPCs should refuse to interact with a player unless he is able to “overcome” the negative attitude the NPC has against him (global and personal factions, gifts, a certain way to start the conversation, special knowledge to bait the npc into a dialogue.
    • It would be nearly impossible to write all the things a Player might say... if appropriate it would be better to generalize (give snappy retort, agree, mention [important fact from quest chain], laugh etc)
    • It would be necessary to be able to define both a custom root, custom nodes and custom settings/parameter for special NPCs that override the default to make sure he interacts with the player in the right way.
      Another thing would be that if your task is to "retrieve" an item from NPC B and he "refuses to part from the item" the game should be able to offer an alternative ("pickpocket the item" or "retrieve it from his cold dead hands"... ) which -- if this includes more options than a) ask, b) steal or c) kill and more situations than "get Item XY" -- is a massive requirement for the game design and will possibly kill quite a budget to get it right.


      It would be a massive task to build this moloch of a dialogue handler and it would make it “a little bit harder” to create a complete dialogue set for special NPCs but every new NPC would have a base functionality that could be expanded, adjusted etc. Sounds like a huge task but a possible way to create more interesting interactions with NPCs for socializers and with good planning, it might be possible to build a diplomacy system on top of the dialogue handler that enables NPCs to react to player behaviour, skills, attributes, race etc to decide if he is allowed to pass the gate or buy the magic potion etc.

      Just my 2 cent
This is precisely what I'm working on right now for my dating rpg, which is almost completely dialogue oriented. It's the first time for me, but I've at least created a system that works. I did something similar to what Moe did, with a text file instead of XML, but I might change it to XML. I don't know what GUID means either.


Interestingly enough, I'm slowly piecing together my own dialog editor. I'm half writing it for fun and half hoping that I'll eventually use it in a Deus-Ex style game. Basically it is broken down into a few basic objects - Conditions, Dialog Nodes, Dialog Choices, and Conversation. A dialog node can have a precondition, some text that is displayed, and 0 or more dialog choices. A dialog choice links to another dialog node. A conversation is a set of dialog nodes. Everything is identified by a GUID, so it makes it fairly easy to jump to a particular dialog node, conversation, or even a dialog choice. It's saved as an XML file, and should (in theory) be easily parse-able.


The dialogue in itself is not so difficult to construct, but there will be a future problem for me when the dialogue also changes various other things in the game, like stats, what happens, and where characters go, if music should be played, and so on. I'm not sure how I will take care of the increasing complexity when more and more different kinds of effects comes from choices made. I will need to make my system more flexible.

In my stystem there are two different kinds of objects that I call topics (dialog nodes) and options (dialogue choices). A topic object can have a number of option objects, and a character can have a number of topic objects. When the player clicks on the character, the character chooses one of her topics depending on time, place, relationship and so on. If she runs out of topics she has a default topic, like "I'm bored" or "I'm really busy right now". The player can choose an option, which links to the next topic, and that can also have other repercussions like lowering the relationship variable.
Advertisement
Another difficulty that I don't know the solution to is if I want to have a dialogue with two NPC:s at the same time, with them also exchanging words with each other. I don't think I'll implement this in my game, but it would be cool. Has anyone else done something like this?
Hi everybody,

I'm following the forums for quite a while, but haven't posted so far. But now that the project I'm currently working on as a designer is in Beta I would be really interested in your opinion. So why am I posting in this topic? Because our project - articy:draft - is also focused on making the writing of non-linear dialogs easier and more comfortable. It comes with a very flexible graph editor and provides a XML export.

So I'm pretty sure that it could be an interesting alternative for some of you. If you try the Beta you can send me a PM with some feedback if you like. I would love to know, if it fits your demands. :)
Ancient thread necro'd by a near-spam. Closed.

-- Tom Sloper -- sloperama.com

This topic is closed to new replies.

Advertisement