Obsidian Entertainment's Josh Sawyer has made another rare appearance on the company's blog system to discuss the principes that he adheres to when implementing "player-driven dialogue in choice-heavy RPGs".
* Dialogue should inform and entertain players -- inform them about the world and quests, entertain them with interesting characters and prose. If you aren't informing or entertaining, think hard about what you're trying to accomplish.Hear, hear.
* Write an outline. Really. Just do it. You should have an idea of where you are going before you set out. If you don't know where you're going when you write your conversation, chances are the player is going to get lost at some point.
* Always give at least two options. At a bare minimum, you should always have an option that says, "Let's talk about something else," that leads back to a node where you can say, "Goodbye." You may think that your dialogue is riveting and no one could possibly want to stop reading/hearing it, but believe me -- someone out there does.
* Never give false options. Do not create multiple options that lead to the same result. It insults players' intelligence and does not reward them for the choices they make.
* Don't put words in the player's mouth. With the exception of conditional replies (gender, skills, stats, etc.), phrase things in a straightforward manner that does not mix a request for information with an emotionally loaded bias ("I'd like to know what's going on here, jackass.").
* Keep skills, stats, gender, and previous story resolutions in mind and reward the player's choices. If it doesn't feel like a reward, it isn't; it's just a false option with a tag in front of it. Note: entertainment value can be a valid reward.
* The writing style and structure are the project's; the character belongs to you and the world. As long as the dialogue follows project standards and feels like it is grounded in the world, it is your challenge and responsibility to make the character enjoyable and distinct.