The Dialog problem is more a problem what we want to see, more then what we can do.
Most of the full writen dialog sentece option fans, like those dialog options in Fallout.
Want to have some dialog options which are funny but writen by the developer.
I enjoyed the dialogs in Fallout 1 and 2, but this options are very limited.
The Keyword / Keyphrase system has nearly no limits, what you can ask or say,
but you decide what you write and sometimes you dont know what to write.
And against all statemenst that you can not have a funny dialog like the dialog
in Fallout 2 between you and the enclave soldier, that is not true you can do it.
On the other hand the Keyword / Keyphrase system has a major drawback and that
is that you have always guess what you will say and the reaction of the your
dialog partner will be.
And this fact is what i dont like and other have correctly critizised,
and the keyword/phrase system is in my opinion a little bit thin.
I think that a better solution exists then a simple Keyword/phrase system and
that is a simple Grammatic.
Input:
x = topic (Keyword), y = declarator, z = modificator.
Result:
rd = result dialog, ra = result action.
Lets take a look at the current Keyword system:
talk(x) => result(rd) or/and result(ra).
This is for a machine a good solution but for a human it is not good.
By example:
you: needles
answer: needles is place where the rangers killed the ghoul.
If you look at the answer you can only ask further {needles, place, where, rangers, killed, ghoul}
but you have always guess the raction of your dialog partner which is not good, because it
is not specific enough.
My proposal of a simple grammatic:
talk(y,x) and (z) => result(rd) or/and result(ra).
With:
y = {Ask, Info, Offer, Demand, Rise, Lower, Do, How, Where, What, Who, Why, Where}
z = {Initimidate, Polite, Bluff ,Normal} and {Topic}
The topic modifing parameter -t is a set of Strings representing other keywords.
By example:
you: Ask: needles -p
answer: needles is place where the rangers killed the ghoul.
Now you can further ask: Where: needles -p, What: place -p, Who: rangers -p, How: killed -p etc.
But you can even ask: Where: needles -p, What: needles -p, Why: needles -p.
And even combine other keywords for more possibilities like:
How: help -t=generator.
Ask = simple question about a topic, should be default (not necessary to type in).
Info = an answer to a question from a NPC and should behave like ask.
Normal should be default and therefore not needed to write, or everything that is writen
without a specific modifier is normal.
With this simple grammatic you should be able to do every possible dialog, without
any confusion what you are saying and what the result will be.
Further it would be nice if the grammatic would be translated in to english standard phrases,
and displayed in the dialog window and if we could edit in options these phrases few standard
pharses that are used offten.
Like:
Offer: help -n => We could help. edited; We will help you.
Offer: help -p => We would gladly help you.edited: Our help is the least we can do.
Offer: help -i => You will die without our help.edited: A..hole if we don't help you, you will die.
By using such a grammatic it is possible to keep the current keyword / keyphrase system,
and satisfy both sides, furher even give the player a better tool for commmuncation and teach them to
use a terminal. And it is not costly.