Anyway, I have a few questions.
- The idea of every character having its own faction. I think I get the point here, but it seems like it would add up to a lot of factions... I plan to have about a hundred distinct NPCs, in addition to a party of semi-player-controlled characters. Am I understanding this right, that each character should own a separate faction that is in turn a child of other ones? And then party members also belong to a Party faction?
- Dominance: I'm a little muddy on this mechanic. For instance, in the manual it reads "...witnessing
aggressive deeds against friends will make characters feel submissive." Maybe I'm reading it wrong, but if someone walked up and slapped my wife, I don't think I'd feel submissive; in fact I'd likely feel very aggressive... but the term "dominant" is confusing here. Can you elaborate on the exact nature of dominance as it applies to character behavior? - Cooldowns/timers: The game I'm developing will have both real-time and turn-based modes. How should I handle timing in turn-based scenarios? My first thought was to use an artificial clock which stops in turn-based mode, and I manually advance it a certain amount after each turn. Does that sound like an approach that the product would handle well? I saw the bit on "custom time", but it was a bit unclear to me.
- Deed Impact/Aggression: I'm wondering why these are "baked in" for each deed. Why not have them as parameters of ReportDeed? Let's say I have a "Heal" deed. A character healing another for 1 health point would have the same effect as healing them from the brink of death. In order to represent the contextual impact of those situations, I'd need to create 2 version of Heal: "Trivial" and "Life-Saving"? Stealing a grape from a rich merchant vs. stealing a homeless orphan's blanket... they're both stealing but one is far worse. Or someone pulling off a crazy daring heist of a grape -- low impact, high aggression. I'd have expected: ReportDeed(key, impact, aggression) for handling such variations.
- My intent with "traits" was mostly to have them inform how characters react to dialogue. For one, the responses available to the character would be determined by their Trait loadout (a character who was meek would have different response options from one who was assertive). Also, characters have different emotional reactions to things other characters say (someone highly moral would feel negatively about an NPC asking them to steal). I saw your example about checking Affinity, but wanted to make sure that more advanced checks were possible in the DialogueSystem which I'm also evaluating.
Thanks in advance.