Without a doubt, the NPC dialogue system has been the most poked, prodded and mused over part of Revel Immortal since 2013 started.
- There are many, many different ways to implement it
- It sets the tone for the game in many ways
- It determines the kind and amount of work that goes into conveyance of story
- It is 1/3 of the story related mechanics in Revel
Let's keep in mind that in Morning's Wrath, dialogue was one-click incremental/contextual conversation between Princess Morning and the NPC.
The history thus far concerning dialogue Revel... ~1/22/13
Originally, we implemented linear sets of 'topics' "text assumed to be said by the player", and responses "text assumed to be said in response, via the NPC"
All of these topics had qualifiers, a list of conditional expressions which determine if the topic is visable and thus sayable.
We implemented this system, and in accordance with some retrospectically long-winded dialogue; we found it to be inadequate.
The system to end all systems... ~6/1/13
A single-level topic system wasn't gonna do it for us, we had lots of dialogue, and so it was determined a nested dialogue structure would be needed.
This structure was created and the UI updated to handle it; topics would automatically descend into sub topics etc.
And as it turns out, 'no one' wanted to read all this crap; and we didn't really want to write it.
With all this power to create huge dialogue trees, we found ourselves creating mini novella in each NPC, and this wasn't good.
It's not what we wanted to work on, it's not what players wanted to read; the focus in Revel isn't to just chew the fat with a few NPCs for hours.
There is supposed to be tons of emergent complexity from Revels' non-linear design, and the moment you start writing books and being long-winded, that complexity potential goes out the window. It often can tie your hands in your ability to change the world; as the dialogue will no longer 'jive' with the changes.
Smaller, more important bites; coupled with a silly decision. ~11/1/13
And so reform came along again, this time in conjunction with the Revel Editor Project.
Dialogue was now to be sequentially automatically chosen NPC responses, in response to player prompting 'pressing activate' of an NPC.
In addition at conclusion of dialogue, if present, several options would be presented for player action (accepting quest, trading an item etc.)
This was part good idea part bad idea; the removal of nested topics brought dialog down to bite sized, qualitive chunks; but the bad idea, which I knew in my heart was a bad idea yet chose to ignore, was the 'automatic choosing'.
The idea stemmed from games like terraria or Fez where, you poke an NPC, and they say something, often randomly chosen from a set of possible choices.
But Revel isn't like either of those games when it comes to dialogue; as the world changes so too does the dialogue; and the topics really need to be intelligently chosen by the player, not randomly pulled.
Yet another revision ~12/2/13
So after experimenting with this system and seeing a few of its shortcomings; we've decided to move towards having selectable topics 'short worded' that are qualified for visibility and thus selectibility; and having qualified responses per topic (to allow varried response based on randomness or changes in the world, etc.)
In addition options would be attached to responses, and option visibility and clickability may be qualified.
Hopefully this will be the last major revision in NPC dialogue, but I guess we'll see.