I've been looking around but I can't find anything that even remotely touches on an idea I've had, so I think that I might actually have had a completely original idea, which is interesting since I think it's a rather simple idea.
Let me begin with what I know of the current generation of conversation engines inside of games. There are 2 types of conversations, as I see them.
1: No player input at all. Usually used in cut scenes and on the move talking. It's good because the player can be actually playing the game while the conversation goes on and it doesn't break the flow of the game, though some reactive dialogue would be nice for when the player does something stupid, like try to hit the NPC or something, to make it feel more alive.
2: Dialogue trees. Recent examples include a good deal of rpg's like mass effect and the telltale games. This is good because it let's the player make a choice about how their character acts, even if it's just the illusion of choice, though it would be nice if the dialogues changed more things so that the player is incentivized to actually roleplay a little more.
But I have come up with a different kind of system, and I have no idea if it would work, and how much work it would be to implement it.
First we start with an absolutely huge cache of words, phrases, and paragraphs.
Then, we get the NPC or PC to choose what they want to use based on a kind of finite state machine like so.
state 1: Relationship to the one the character is speaking to.
state 2: Current disposition toward the one the character is speaking to.
state 3: Current mood of the character.
state 4: perceived disposition of the one the character is speaking to.
state 5: perceived mood of the one the character is speaking to.
state 6: Topic of discussion.
Given these 6 states you make the NPC choose their dialogue. Now, it would be fairly easy to add this to an NPC engine and let NPC dynamically choose their dialogue and provide the player with a dialogue tree. But I propose that we give the player the exact same state machine that we give the NPC.
This would allow us to make conversation a part of the game rather than something that happens in cut scenes or scripted dialogue scenes. We tell the player about the relationship, we give them the ability to change their disposition and mood within reason, we let their perception stats determine how they perceive the mood and disposition of the other character, and give them a few topics they can cycle through based on their knowledge and the character.
Then the conversation would flow like it does in real life, one topic flowing into the next and with the conversation able to dynamically break and reform based on player action.
Can you envision how such a system would work? What are the pro's and con's that you can see, just from reading about it. I would like some feedback on your ideas about this system, to help me refine the idea before I start prototyping it.