Nothing much to post today. I had a think last night about how the dialog system should work, and I have a pretty good idea of how I want talking to happen. Today, i made a stab at the Conversation class that is going to be the basic foundation for the dialog game mechanic, but I haven't actually hooked it up to anything that can run yet.
Anyway, here's how I think it will work. There is something called a conversation, which has a location, and a list of names of people who are meant to be a part of that conversation, although actors can "enter" and "exit the conversation as well. Conversations will be triggered by events in the world, or scripted to happen at different times. A conversation will spawn, direct the actors who are a part of that conversation, and then vanish when it has been completed. If the player is nearby, where nearby is defined as within one screen size away from the conversation's center, the ui will show textboxes.
To simplify the scripting, most of the commands a conversation uses will have some automatic ai behaviors. For instance, npcs will usually turn to face the last person who said something, unless they are speaking someone's name (in which case they will face that person). Also, when the conversation begins, all the speaking characters will enter the conversation region - and they will disperse when it is over. I should be able to just write something similar to a movie script, with very little direction, and have the basics function. If needed, I will be able to have more control - but I'd like it to seem like the characters are speaking of their own will.
Finally, if the player is within range, he is considered a part of the conversation. Npcs may direct their lines at the player, prompting a menu to appear, with a timeout similar to the walking dead. In addition, the player is also able to interrupt while others are speaking, at scripted moments, to change the course of the conversation - or even spin off new ones.
If he is around to hear it in time of course :)