I posted these on another company's forum, but they apply here too. Heavily edited for brevity, but still wordy, sorry:
[Edit: link to original thread: http://www.bethsoft.com/bgsforums?showtopic=751439

Quote
What Iíd really, really, dearly love in RPGs is the ability to talk with the people youíre fighting.

So you have the choice not just to kill or run away, but to:

taunt
Successful taunts cause target to enter berserk mode. We already have berserk in Oblivion, taunts in every single FPS since Doom, though admittedly only Duke3D ever did them well tongue.gif

stop fighting and talk out your differences,
Oblivion did this with the "Yield" command, but unfortunately made it related to the opponent's disposition to you, so regardless of your speech skill, you could never successfully yield to someone who had attacked you first, since they "hated" you enough to attack you.

offer them gold if they stop attacking
Not done anywhere yet, but in an engine that has yield and trading, should not be too great a leap.

And not just have you try to start or end the combat: have NPCs:
taunt you
Aka have NPCs cast "berserk" on you, with your speech ability governing your saving throw.

beg for their lives when beaten near death
OK, it's not been done, but how hard is it?
Code
when npc starts combat
  if (NPC's strength) < (0.1 * PC's apparent ferocity)
    then
      if (npc can flee)
        flee
      else if (npc can surrender)
        surrender
      else
        fight

when npc takes damage
  if NPC is in combat, AND is marked as surrender-capable, AND (HP < 5% OR AMMO == 0)
      if (npc can flee)
        flee
      else if (npc can surrender)
        surrender
  else
    fight


(I say "apparent ferocity" as I feel this should be a combination of things like reputation current health, arms and armour, whether his weapon is holstered, whether he's just defeated anyone nearby in a fight, XP level, charisma, and so on. Comparing the NPC against how strong he thinks the PC is, would be a bit harder to code but more realistic, I feel, than to compare the NPC's real strength against the PC's real strength. It would mean that a wussy or pacifist PC could "fake out" strong characters by just looking buff.

You could get prettymuch infinitely complex, like with anything in a RPG. You could take into account daft stuff like whether the PC's outfit was made of matching pieces, and whether the NPC thought people in uniform were scary, or wusses... but beyond a certain point, the player stops being able to second-guess the results completely accurately, and at that point it becomes "realistic": no point getting any more complex than that. So, a simple "reputation + random roll" might even suffice for most purposes.

Basic flee/surrender/fight decision making, ending combat before death, is not beyond today's technology, would not take ten years to develop, but nobody, so far as I know, has ever done it in any game.

If the NPC is at 3 hp and he's out of ammo he will toss aside his gun and beg for his life damnitt! And if I choose to spare him and let him go, I have to run the risk of him attacking me again when he's healed up and rearmed. And if I choose not to spare him, and people see me killing an unarmed cripple begging for his life, then that could be a problem for me too!

Combine it with what we already know is in engines such as Oblivion: NPCs can pick up stuff when you are in the area. So you spare them, or they flee; they move to the weapon cabinet, grab a healthpack and weapon, and attack again!

If you also make bad guys heal and rearm over time if you leave the area, that would obviously improve realism too.


Have beating someone unconscious with your fists mean something, too: that you have beaten them, disarmed them, but spared their lives and they and people nearby know it: some might consider you hardass but merciful, others might consider you weak for your morality. OK, this hasn't been done yet, but shouldn't take ten years. Past combat affects the opponent's disposition towards you.

This depends on the NPC, and whether you or they fled/surrendered/fell unconscious, and on who started the fight: if they attacked you and you still spared them, that's a possible plus. If you attacked them and they fled, or were beaten unconscious, probably not so much of a plus!

Having people nearby affected could be harder. However, the Oblivion engine has murder detection within a certain range, the Ultima engines have theft detection - can't an engine have "sparing" detection, too?


Stuff like thatíd make the decision to kill in combat so much more immersive & meaningful. I am hoping that Oblivionís yield was just the first step on this road, and I applauded it - but I really hope that itís taken further in future.

I am so sick, so terribly, terribly sick of fights being to the death, and death being nothing but a source of XP. Nobody in real life has a bar fight to the death, not unless stuff goes really wrong.

NPCs shouldnít willingly attack someone who can clearly wipe the floor with them, unless they're defending something more important to them than their own life.


Combat should have further repercussions. What if a woman bandit out by a deserted shack demands your food so you kill her, but then you go inside the shack and see a baby in a crib. You killed its mother, and if you leave it there, it will die slowly of thirst/starvation. What do you do? This one doesn't even take any PROGRAMMING! In the construction kit, place female bandit, place baby, bingo, moral dilemma in a can!

You could, with simple scripted rules, add more depth. Take the rule "all children without parents turn feral within one week, have disposition to player reduced, blah blah." So, you kill a guard, then later find his children, gone feral with nobody to look after them. What do you do?

You have the rules: "guard feeds and tortures prisoner daily on schedule. Guard kills prisoner when a set plot trigger happens. Prisoner starves without food for more than two days." So, you spare a guard's life and later see him torturing and killing a prisoner. Or you kill him and find the prisoner. Or never find the prisoner until it's died of thirst anyway... suddenly, your guard-killing has consequences.

If you kill or spare someone, you will affect that person's dependants, lovers, employers, friends, enemies, victims and others.

OK, now this, building a web of relationships between people, is more complex. But... not THAT complex.
Permit NPCs be members of any number of factions (already in most engines).
Extend that by allowing them to have relationships not just with factions, but with characters too.
Give each relation a value from -100 (utter enemy, would love you for killing him) to +100 (close family member, would never forgive you).
If you are seen to have killed a person (using existing theft/murder-detection system), check that person's relationship network, and affect each person [edit: or faction] in the network by that amount.
If the death was a murder, double the amount.

If you want to get really fancy, as well as the relation value, give each character "onOwnDeath" and "onContactdDeath" script hooks so that you can change conversation options and whatnot, as well as just their dispositions.
[edit: this allows us to modify the above-described hardcoded "all children without parents turn feral within one week" to "dependents who's guardians are dead". No need to restrict to children, can include pets, slaves, etc, who become freed by their master's death, who's disposition to the player may go up, etc]

None of that is rocket science. None is beyond what is plausible. None is 10 years' work. Most of it is maybe 10 days', plus time for voice acting the surrender dialogues. But this, giving meaning to death, is the stuff that separates RPG from FPS.


There was some good feedback. One person pointed out that it is definitely possible as Shin Megami Tensei:Nocturne does much of it.

More stuff I'd like to see later, if I don't get flamed rotten for posting something as long as this as my first post here <img src="/ubbthreads/images/graemlins/smile.gif" alt="" />

Last edited by DewiMorgan; 17/09/07 02:21 PM.

Game Designer - ThudGame.com
Technical Director - MorganAlley.com
Associate Producer - PayneAndRedemption.com
QA Lead - Furcadia.com