the lovely coder for this is lurking now here in the background.
Well, i just decided to silently register me here so i can have a talk too.
The current system i am developing together with Gareth (and its neither final nor did both of us agree on - see it as a early prototype) is working the following way:
A character will have a set of base stats (like strength, intelligence, agility etc... )
He/she will also have a subset of so called talents - those include things like sword-mastery (how good i can fight with a sword) or axe-mastery etc.. but also stuff like climbing, swimming, orientation etc...
Everytime we perform an action that needs to get tested for success of failure (be it in combat or for other non-combat stuff) the same principle applies:
We use some of the base stats in a weighted fashion, as well as a talent and a random number and check this against a fixed value that will determine how "hard" this test is.
In the case of combat this fixed value will be a second test from the enemy.
If we get higher or equal than the value we test against the test is considered successfull. We than determine the percentage how much we are above the value we tested against, this will show how good our action was.
Combat Example:
additional change: Weapon Talent is splitted into attack/parry (so we can choose to favour more agressive or defensiv style)
(currently weighting attack just made up: 5 Brut 5 Agi 3 Int)
current weighting parry : 3 Tough 5 Agi 6 Int )
Player
Health = 20
Brut = 10, Agi = 12, Int = 7 Tough = 9, Init = 3
Sword Talent = 4 / 4 (using sword) Sword Min/Max Damage = 2/5 Sword Init +1
Armor = 1
Base Attack = (5*10 + 5*12 + 3*7)/13 + 4 = 14.08
Base Parry = (3*9 + 5*12 + 6* 7)/14 + 4 = 13.21
Enemy
Health = 18
Enemy = Brut 8, Agi 13, Int = 9, Tough = 8 Init = 4
Axe Talent = 6/2 MinMaxDamage = 4/6 Axe Init + 2
Armor = 2
Base Attack = (5*8 + 5*13 + 3*9) / 13 + 6 = 16.15
Base Parry = (3*8 + 5*13 + 6*9) / 14 + 2 = 12.21
Following Random Numbers are used :
6, 17, 8, 3, 20, 12, 8, 11, 4, 18, 10, 8, 9, 20, 15, 20, 1, 15, 9, 16, 12, 0, 3, 5,
20, 17, 10
Round 3) (Player Turn - next turn is 3+3+1 = 7) (current round + init value + weapon init modifier)
14.08 + ( 6) = 20.08 against 13.21 + (17) = 30.21 --> attack failed (34% lower)
Round 4) Enemy Turn - next turn is 4 + 4 + 2 = 10
16 + 8 = 24 against 13 + 3 = 16 --> attack succeed (50% higher) (we get random attack between 4-6 = 6, 50% of this is 3... 3-1 (armor player) = 2 hitpoints lost
player hitpoints = 20-2 = 18
Round 7) Player (next round is 7+3+1 = 11)
14 + (20) = 34 against 13 + (12) = 25 --> attack succeed (36% higher) (attack 4*.36 = 1.44 -2 (armor) = -.44 --> we hit but make no damage
The numbers arent balanced right now, it was just to ilustrate the mechanic how i see it atm...
Key parts: several stats are included (and weighted) in the test, the used talent skill with an extra weight.
weapons can be made more defensiv or active and also can be made fast or slow, as well as having a range of damage.
The system also can kinda simulate that we hit, but the opponent is getting nearly away, so we do low damage (or he totally screwed up his parry and we hit him very strong, maybe even more than the actual weapon damage is)
The above example also includes the initiative system wich isnt described here... (but kinda easy to see how its working)
Also: currently it seems i am able to exclude the formulas from the base-game so they can be edited/modded by the player.
Same is true for random events / quests. and i am currently trying hard to make at much stuff moddable as possible.
(I admit, i just wrote this to get you interested =P)
Please keep in mind: all of this stuff is just testing and experimenting atm, we didnt agreed on anything for now.
I would like to hear about your opinions about such a system and possible downsides i maybe overlooked.
(i also hope gareth doesnt kill me for posting this, but as i see that he getting quite valueable feedback here i thought it might be good to get into more detail)