So: races w/ cultural attributes help continue myths of inherent racial superiorities / etc; bad things.
Not sure I 100% agree, but if it puts off some players and it's easily sidestepped (or better, adds new & interesting things to char creation), I'm down with divorcing race from cultural traits.
Same essentially goes for stat-changing traits; why not a buffed out, dumb-as-a-rock elf, and a master of magic and lore orc who's weak in stature?
So: current system:
a) roll stats in order. Swap 2 if desired.
b) select a stat-change package (positive or negative) or two (one positive, one negative), if desired.
c) select an edu-stat change (just one, positive or negative), if desired.
d) apply to stats. Figure out the modifier for each stat, positive or negative. Total them all together. This are your 'trait points' (which may be negative or positive. Gotta get it down to 0 by the end.)
e) pick a race if desired, or a hybrid. Select racial traits, randomly, from the positive and negative trait tables for that race (or races, for a hybrid). Each trait either subtracts from your point total (a negative trait) or adds to it (positive traits). You cannot have more positive traits than negative traits. Duplicates are re-rolled until a non-duplicate is rolled. Some traits for a race will automatically confer if not a hybrid.
f) if training-based traits are desired, roll randomly on the positive or negative training traits tables; you can have a maximum of 2 positive training-based traits. Re-roll duplicates.
g) if cultural traits are desired, roll randomly on the positive or negative cultural trait tables. You can have a maximum of 2 positive cultural traits, and having two positives requires at least one negative trait.
h) if the current total is positive, each point positive is subtracted (1 for 1) from 32, or added to 32 if negative. The result is the age at which aging effects begin. This age cannot be below 16; if the result would be below 18, roll on the negative cultural trait table until the result would be 18 or above.
In which, I do bad things to what could be a good rpg. (Trepallium is a fantasy RPG heavily influenced by the mechanics of Classic Traveller)
Thursday, April 30, 2020
Tuesday, April 28, 2020
Combat Done, kinda for real this time.
Via working out some options for exhaustion w/ Camilla and a metric ton of sim testing (about 10 million sim'd combats), figured out how combat works.
To make an attack, determine your attack mod, then roll 2d6.
A natural roll of 2 is always a miss, and a 12 always a hit.
A natural roll of 2 is always a miss, and a 12 always a hit.
Modifiers to the roll:
- Weapon skill (-3 if untrained)
- DEX modifier, capped at +/- 1
- Moving targets: -1 if running, -2 if sprinting
- Unmoving targets, able to parry: +0
- Unmoving targets: +2 if remaining still and unequipped to parry
On an 8+ you hit.
- STR-based weapon: 1d6+1 + STR modifier damage, or 1d6+4 + STR modifier if the to-hit was a natural 12
- DEX-based weapon: 1d6 + DEX modifier damage.
So what's this do? About 51.5% of fights will be won by a str-based char vs a dex based char. This is fine; the dex based char would likely get some hits in from range before the str fighter closes. Plus, it'll get modified further by skill differences, traits, and so on.
Still need to work out being prone, maybe. And similar.
Sunday, April 26, 2020
Combat Part Deux - Testing
So, did some playtesting; found some balance issues, and some annoying mechanic issues, and we brainstormed solutions.
So, wrote up a script to test. First I tried it with all stats equal, starting with 7's, found some balance points. Then I moved on to random chars. Here's what it does:
- Roll 3 random 2d12+1 stats (so the minimum is 3, max is 13, this is fine. Judgement call.)
- Takes that set of three and makes two chars:
-- One takes the highest val and uses it for Str, and distributes the other two randomly
-- The other takes the highest val and uses it for Dex, and distributes the other two randomly.
It then steps through n qty of battles between 'em. After hitting n, it displays the results, and alters some things:
- Changes the dex to-hit limiter, toggling it between no limit & +/- 1
- Changes the str adder to max exhaustion, toggling it on and off
- Changes the base str dmg adder, between 0 and 5
- Changes the on-12 str dmg adder, between 0 and 5
- Changes the on-12 dex dmg adder, between 0 and 5.
If my math is right, and it might be, that's 864 runs of n qty each, to get each permutation.
Results are in this format:
2000: (rnd avg 16 exh: 2) (stend:1 dlim:0 st:0 s12:1 d12:0) (dex/str: 1046/954 (46))
2000: 'n'
rnd avg 16: on average, it took 16 rounds to complete a fight
exh: 2: on average, 2 pauses (catching breath) occurred
So, wrote up a script to test. First I tried it with all stats equal, starting with 7's, found some balance points. Then I moved on to random chars. Here's what it does:
- Roll 3 random 2d12+1 stats (so the minimum is 3, max is 13, this is fine. Judgement call.)
- Takes that set of three and makes two chars:
-- One takes the highest val and uses it for Str, and distributes the other two randomly
-- The other takes the highest val and uses it for Dex, and distributes the other two randomly.
It then steps through n qty of battles between 'em. After hitting n, it displays the results, and alters some things:
- Changes the dex to-hit limiter, toggling it between no limit & +/- 1
- Changes the str adder to max exhaustion, toggling it on and off
- Changes the base str dmg adder, between 0 and 5
- Changes the on-12 str dmg adder, between 0 and 5
- Changes the on-12 dex dmg adder, between 0 and 5.
If my math is right, and it might be, that's 864 runs of n qty each, to get each permutation.
Results are in this format:
2000: (rnd avg 16 exh: 2) (stend:1 dlim:0 st:0 s12:1 d12:0) (dex/str: 1046/954 (46))
2000: 'n'
rnd avg 16: on average, it took 16 rounds to complete a fight
exh: 2: on average, 2 pauses (catching breath) occurred
stend:1 for this run, exhaustion limit is str+end instead of just end
dlim:0 for this run, there was no limit on dex mod adder to to-hit
st:0 for this run, base damage for str weapons had no adder.
s12:1 for this run, damage for str weapons on a crit 12 has an adder of 1
d12:0 for this run, damage for dex weapons on a crit 12 has an adder of 0
dex/str: 1046/954 for this run, the dex char won 1046 times and the str char won 954
(46) for this run, the percentage of fights out of balance is 4.6%
dlim:0 for this run, there was no limit on dex mod adder to to-hit
st:0 for this run, base damage for str weapons had no adder.
s12:1 for this run, damage for str weapons on a crit 12 has an adder of 1
d12:0 for this run, damage for dex weapons on a crit 12 has an adder of 0
dex/str: 1046/954 for this run, the dex char won 1046 times and the str char won 954
(46) for this run, the percentage of fights out of balance is 4.6%
Thursday, April 23, 2020
Combat - Kinda Done?
I think combat is largely finished.
https://docs.google.com/document/d/1JVEnPnwp1gtwCW96n8WEIAiEQjxo3R37NvWDqvTSGGA/edit?usp=sharing
(Everything up to 'Equipment Prices'. I need to finish the critters (needs renaming as well) section, and generate a new combat example, but the guts are def there at this point.)
https://docs.google.com/document/d/1JVEnPnwp1gtwCW96n8WEIAiEQjxo3R37NvWDqvTSGGA/edit?usp=sharing
(Everything up to 'Equipment Prices'. I need to finish the critters (needs renaming as well) section, and generate a new combat example, but the guts are def there at this point.)
Wednesday, April 22, 2020
Damage Types & Mechanics
So; several damage types. Off the top of my head, poison, fire, cold, flux, certainly others besides.
Each applies its base damage on hit. For some, that'll be a variable (dmg:fire(1d6)), for some, it'll be set (dmg:fire(3)).
In many cases, there's a secondary effect; being set on fire, taking damage over time from poison, getting frozen, etc.
Some will have cumulative effect (the more fire damage you take, the more likely you are to be set on fire), some will have diminishing returns (cold and poison, where each successive hit within a time period causes less and less damage).
So:
Poison - diminishing returns (successive hits within fifteen seconds cause n-(qty of prior hits) damage, but add n-(qty of prior hits) to the additive hit), additive hit fifteen seconds after first application.
Fire - cumulative, if total of damage taken across ten seconds exceeds (END-6) (if wearing flammable gear / fur / whatever) or (END) (if not wearing anything flammable), target is on fire, and takes the threshold qty of fire damage + 1d6 ten seconds after the threshold was met.
Cold - diminishing returns; successive hits within fifteen seconds cause n-(qty of prior hits) damage.
.... Sod all that for a lark. This isn't simplicity during play; this is onerous. Let's give it a skip.
All damage types are... just damage types. They deal x extra damage, of that type. If you have resistance or armor which guards / soaks that type, yay, otherwise, it's damage, pure and simple.
Modification: they do specific stat damage. Normal damage, you get to spread across str/dex/end; for the special damage types:
dmg:fire - this damage goes directly to str
dmg:cold - dex
dmg:poison - end
dmg:flux - str/dex
dmg:somethingelse - dex/end
etc.
Simple, and still expresses what they do, to a degree.
(Do I still want to be able to set things alight?)
Each applies its base damage on hit. For some, that'll be a variable (dmg:fire(1d6)), for some, it'll be set (dmg:fire(3)).
In many cases, there's a secondary effect; being set on fire, taking damage over time from poison, getting frozen, etc.
Some will have cumulative effect (the more fire damage you take, the more likely you are to be set on fire), some will have diminishing returns (cold and poison, where each successive hit within a time period causes less and less damage).
So:
Poison - diminishing returns (successive hits within fifteen seconds cause n-(qty of prior hits) damage, but add n-(qty of prior hits) to the additive hit), additive hit fifteen seconds after first application.
Fire - cumulative, if total of damage taken across ten seconds exceeds (END-6) (if wearing flammable gear / fur / whatever) or (END) (if not wearing anything flammable), target is on fire, and takes the threshold qty of fire damage + 1d6 ten seconds after the threshold was met.
Cold - diminishing returns; successive hits within fifteen seconds cause n-(qty of prior hits) damage.
.... Sod all that for a lark. This isn't simplicity during play; this is onerous. Let's give it a skip.
All damage types are... just damage types. They deal x extra damage, of that type. If you have resistance or armor which guards / soaks that type, yay, otherwise, it's damage, pure and simple.
Modification: they do specific stat damage. Normal damage, you get to spread across str/dex/end; for the special damage types:
dmg:fire - this damage goes directly to str
dmg:cold - dex
dmg:poison - end
dmg:flux - str/dex
dmg:somethingelse - dex/end
etc.
Simple, and still expresses what they do, to a degree.
(Do I still want to be able to set things alight?)
How does poison work?
Seems like every RPG handles poison differently. So let's do that.
Poison in Trep is a damage type - so, dmg:poison-n.
Figure most non-standard damage types will require some rules - dmg:fire should have a chance to set things on fire, dmg:cold to slow things down / freeze water, etc. So: poison would cause n points of stat damage (str/dex/end) once per minute until... something. Figure that out later. Once per minute, with the initial damage inflicted on hit.
Would it stack? IE, get hit w/ dmg:poison-3, take your three points, next second get hit again - do you take another 3? This feels wrong. What about n-qty of doses? So, being hit by poison-3 would allow stacking as 3+2+1, with applications after the 3rd being ineffective? I think I like this. How to balance? Make poison expensive.
Alternate take: poison doesn't stack. Get hit once, take your points, get hit again - if you managed to get rid of the poison effect, you'd get it again, but otherwise, no additional effect.
Take 3: each additional hit, you'd take the additional poison hit, but it would reset the timer.
So, the options are:
Poison in Trep is a damage type - so, dmg:poison-n.
Figure most non-standard damage types will require some rules - dmg:fire should have a chance to set things on fire, dmg:cold to slow things down / freeze water, etc. So: poison would cause n points of stat damage (str/dex/end) once per minute until... something. Figure that out later. Once per minute, with the initial damage inflicted on hit.
Would it stack? IE, get hit w/ dmg:poison-3, take your three points, next second get hit again - do you take another 3? This feels wrong. What about n-qty of doses? So, being hit by poison-3 would allow stacking as 3+2+1, with applications after the 3rd being ineffective? I think I like this. How to balance? Make poison expensive.
Alternate take: poison doesn't stack. Get hit once, take your points, get hit again - if you managed to get rid of the poison effect, you'd get it again, but otherwise, no additional effect.
Take 3: each additional hit, you'd take the additional poison hit, but it would reset the timer.
So, the options are:
- Take initial damage, and again on the minute; extra hits do nothing
- Take initial damage, extra hits are reduced in effect, and the total of first + additional on the minute
- Take initial damage, and again on extra hits, resetting the timer
I like the middle one for scaling's sake. dmg:poison-1 would max out at 1 point per minute; -2 would max out at 3 per minute; -3 at 6, -4 at 10, -5 at 15. That seems reasonable.
(IE: dmg:poison-5 would cause 5 points of poison damage on initial hit; 5 points again after a minute passes. If you got hit again with it before the minute, it'd do 4 points of damage, and a minute later, 5+4 points of damage. If you got hit -again- before that minute, it'd hit for 3 points, but at the end of the minute, 5+4+3. Building up a lethal dose.)
Unsaid till now, but I'm thinking that the initial hit + the additional at the one minute mark is it; IE, the poison wears off after that minute.
... A minute is a -really- long time in combat; maybe 15 seconds? I prefer 15 seconds.
So, final result:
Getting hit w/ dmg:poison-n does n damage on initial hit. Fifteen seconds after the hit, take an additional n damage. If hit again w/ dmg:poison-n prior to the fifteen seconds elapsing, take n-1 damage, and at the end of fifteen seconds, n+(n-1) damage. (A third hit prior to fifteen seconds elapsing would do n-2 damage initially and cause n+(n-1)+(n-2) damage at the fifteen second mark, and so forth. (Floor 0 on damage, it wouldn't go negative). Subsequent hits which would not add damage (IE, n-x = 0 or less) do not reset the fifteen second timer.
Language revision courtesy of Archon's Court, Machine Sage in #workshop on the OSR discord (it's -much- clearer this way, thanks!):
Poisons are all given a single number: poison-3, poison-8, etc. Poisons do damage equal to this number on the first hit. After 15 seconds, they do that much damage again.
If more poison is applied before 15 seconds, the target takes damage equal to that poison minus 1. After 15 seconds, the target takes damage equal to both poisons. (For example, affecting someone with poison-3 would immediately deal 3 damage. If you then apply poison-8, that would do 7 damage. After 15 seconds, they would take 10 damage). This continues as many times as you apply poison, with 1 damage stripped off the most recent poison with each application (so the 3rd poison would do 2 less, the 4th would do 3 less, etc.). This cannot cause the poison to do less than 0 damage. If the poison does 0 damage, it does not count as an application of poison.
Language revision courtesy of Archon's Court, Machine Sage in #workshop on the OSR discord (it's -much- clearer this way, thanks!):
Poisons are all given a single number: poison-3, poison-8, etc. Poisons do damage equal to this number on the first hit. After 15 seconds, they do that much damage again.
If more poison is applied before 15 seconds, the target takes damage equal to that poison minus 1. After 15 seconds, the target takes damage equal to both poisons. (For example, affecting someone with poison-3 would immediately deal 3 damage. If you then apply poison-8, that would do 7 damage. After 15 seconds, they would take 10 damage). This continues as many times as you apply poison, with 1 damage stripped off the most recent poison with each application (so the 3rd poison would do 2 less, the 4th would do 3 less, etc.). This cannot cause the poison to do less than 0 damage. If the poison does 0 damage, it does not count as an application of poison.
Design Choices - Skills Focus
Since Trep chars don't have classes, they're defined by the skills they acquire. And there'll have to be a lot of them.
My initial thought as I went to sleep last night, is that it would require a shift in the way I GM; I'd have to make skills matter a lot more than in my player's current system of choice, 5e.
But I'm not so sure; really, what else do players do right now, other than skill checks? The class features, and some of the feats, are really just skills; some of them so amped up that they're no-fail, in essence, but still demonstrations of skill. How is that any different than getting 'tracking-0' and raising it through various career and skill table choices during character creation to 'tracking-5' or similar?
One place I think this'll come in potentially handy is the edge cases - 'does this seem like an athletics or acrobatics check? Arcana or History'? With a greatly expanded list of skills, there's the potential to be more clear-cut about this sort of thing.
(One RPG of yore did something similar, aside from Traveller, now that I think on it - Call of Cthulhu had quite the impressive list of skills. And made frequent use of them, as I recall.)
One current issue with the way of writing skills. Traveller does this: AnimalHandling-3. That means, add 3 to your 2d6 roll for that skill. Which is fine as a standard, but... I use an attribute for damage mitigation, for resistant critters / magic armor / etc: dmg:fire-3, which'd be a minus 3 on the damage roll for fire damage. See the problem? '-3' doesn't mean the same thing across all things.
The obvious solution is to write skills as 'AnimalHandling+3', and that's what I think I'll do. Make the die modifier obvious.
My initial thought as I went to sleep last night, is that it would require a shift in the way I GM; I'd have to make skills matter a lot more than in my player's current system of choice, 5e.
But I'm not so sure; really, what else do players do right now, other than skill checks? The class features, and some of the feats, are really just skills; some of them so amped up that they're no-fail, in essence, but still demonstrations of skill. How is that any different than getting 'tracking-0' and raising it through various career and skill table choices during character creation to 'tracking-5' or similar?
One place I think this'll come in potentially handy is the edge cases - 'does this seem like an athletics or acrobatics check? Arcana or History'? With a greatly expanded list of skills, there's the potential to be more clear-cut about this sort of thing.
(One RPG of yore did something similar, aside from Traveller, now that I think on it - Call of Cthulhu had quite the impressive list of skills. And made frequent use of them, as I recall.)
One current issue with the way of writing skills. Traveller does this: AnimalHandling-3. That means, add 3 to your 2d6 roll for that skill. Which is fine as a standard, but... I use an attribute for damage mitigation, for resistant critters / magic armor / etc: dmg:fire-3, which'd be a minus 3 on the damage roll for fire damage. See the problem? '-3' doesn't mean the same thing across all things.
The obvious solution is to write skills as 'AnimalHandling+3', and that's what I think I'll do. Make the die modifier obvious.
Tuesday, April 21, 2020
Attack Roll Modifiers
The current setup for combat to-hit is: get 8+ on 2d6, modified by weapon skill, and whether the target is moving or not (actively trying not to be hit, but not via skillful dodging).
Which leads to two things: some critters are naturally difficult to hit; having a heavy damage soak armor on them isn't quite the same, at least feeling-wise; the end effect may be the same (takes 5-10 seconds to actually kill the critter), but it feels different to knock a point off each second until it's dead, vs missing repeatedly until you manage to get a hit in, which takes it down to zero.
So: skill (or animal trait) 'hard to hit'. From a skill standpoint, this'd be treated the same as anything else; -3 if you don't have it (and that would be considered to be built into the base to-hit), so at hard-to-hit-0, there'd be a -3 modifier on the to-hit roll... hth-1, and a -4.
(The skill makes sense lore-wise, as knowing how to swing a sword well is a very different thing than knowing how to -dodge- a sword well. You can know one and not the other, I think)
This is a problem with the numbers and quick readability / standards used; every other skill, -0 = 0 modifier, -1 = +1 to a roll, etc. This ignores that, and that's bad.
So maybe it's hard-to-hit-0 is the base for this skill, and hth-1 = +1 to the defense (ie, -1 to the to-hit), etc. Perhaps we take that as meaning that all PC's / humanoid NPC's have had a childhood of evading blows of their friends, etc, so all of them start w/ hth-0.
That's probably the way to go.
A worry is that this leads to modifier buildup - I definitely do not want the to-hit to become a mess of 5+ modifiers. I also don't want GMs or players to have to consult a long table, "I'm leaping through the air, so -1, he's turned to the side, that's +1, but he's distracted with another foe, that's a +2, and I had a cheese sandwich a minute ago, so that's -1," etc.
Which leads to two things: some critters are naturally difficult to hit; having a heavy damage soak armor on them isn't quite the same, at least feeling-wise; the end effect may be the same (takes 5-10 seconds to actually kill the critter), but it feels different to knock a point off each second until it's dead, vs missing repeatedly until you manage to get a hit in, which takes it down to zero.
So: skill (or animal trait) 'hard to hit'. From a skill standpoint, this'd be treated the same as anything else; -3 if you don't have it (and that would be considered to be built into the base to-hit), so at hard-to-hit-0, there'd be a -3 modifier on the to-hit roll... hth-1, and a -4.
(The skill makes sense lore-wise, as knowing how to swing a sword well is a very different thing than knowing how to -dodge- a sword well. You can know one and not the other, I think)
This is a problem with the numbers and quick readability / standards used; every other skill, -0 = 0 modifier, -1 = +1 to a roll, etc. This ignores that, and that's bad.
So maybe it's hard-to-hit-0 is the base for this skill, and hth-1 = +1 to the defense (ie, -1 to the to-hit), etc. Perhaps we take that as meaning that all PC's / humanoid NPC's have had a childhood of evading blows of their friends, etc, so all of them start w/ hth-0.
That's probably the way to go.
A worry is that this leads to modifier buildup - I definitely do not want the to-hit to become a mess of 5+ modifiers. I also don't want GMs or players to have to consult a long table, "I'm leaping through the air, so -1, he's turned to the side, that's +1, but he's distracted with another foe, that's a +2, and I had a cheese sandwich a minute ago, so that's -1," etc.
Subscribe to:
Comments (Atom)