Post by beavernator on May 19, 2013 17:57:39 GMT -5
I've been trying to work on a PvP mod for D&D that generates random stats and traits for every unit produced. Here's a framework I have for generating the random characters; most of it probably won't make sense, but it's just there to give an idea of how it works.
I use random.org to get all of these values.
UNIT's NAME
Roll 3d26 and use those numbers to generate 3 random numbers that correspond to the letter and their placement in the alphabet. So "4, 23, 6" would result in a name starting in "DWF"
I follow up those 3 letters with the total value of a character before square routing it, and that's my character name. Names like "DWF1540" aren't all that creative and hard to memorize; it still does the trick.
SPEED
Roll 1d100.
Result Speed
01-10 4
11-30 5
31-60 6
61-80 7
81-90 8
91-96 10
97-99 12
100 15
avg 6.51, med 6, mean 6.
DEFENSE
ARMOR CLASS 9+1d4+1d8 (avg 16, med 16, mean 14-18)
FORT/REF/WILL 6+1d6+1d12 (avg 16, med 16, mean 13-19)
HITPOINTS Roll 1d50 twice and take the lower roll. Add your Fortitude stat for total HP (not the modifier). Characters with more health points will have a higher chance of dealing more damage with their attacks. I tried this at 1d100, but the times to kill an enemy were excessively long. A range of 9 to 74 is wide enough as is. (I estimate an average of 32, I'll get a legit answer later on)
The reason the hitpoints are insanely low is because the pacing of the game really slows down to a crawl when everyone dies in 3 hits... whenever they hit. To make objective-based game types more fun and map control easier to establish the snowballing effect really starts to dissipate when two players of equal combat value can kill the other in one or two hits.
DEFENSIVE TRAITS
Roll 1d30 to get a random trait. The multiplayer mod I have set up only uses earth, forest, and water-based difficult terrain. To make things simpler smoke becomes forest terrain, swamp becomes water terrain, and ice becomes earth terrain.
Some of these perks will say something like (+1/30%). That means that the perk can increase in magnitude if a 1d100 is rolled, and matches/goes under the percentile value. For every successful roll the process repeats until the roll exceeds that number.
1 aquatic: move through water tiles without penalty in movement or attack
2 earth: traverse rocky obstacles like stairs and stones without penalty
3 forest: provides no visual impairment or movement penalty through forest tiles
4 hover: ignore water and earth difficult terrain; altitude cannot exceed a height of one square above solid ground
5 burrow: ignores earth and forest terrain; can go through solid obstacles.
6 swamp: ignores earth and water terrain, grants vision through forest terrain
7 teleport: can ignore opportunity attacks and travel to any direction in sight
8 climb: can climb up walls to get to higher ground without any movement penalty (besides the movement spent climbing up the wall). Players cannot attack while climbing.
9 phase: ignore all difficult terrain, and move through solid obstacles
10 Gain one extra defensive trait
11 Regenerate (HP/5) x 1d100%
12 Resist (HP/7) x 1d100%
13 Regenerate 1 HP for every square moved [(HP)% chance of it being 2]
14 Assisting an ally only requires a minor action
15 Reserve a secondary or tertiary attack as a healing effect.
16 +1 saves (+1/ 40%)
17 Resist 1d100% Melee attacks
18 Resist 1d100% Ranged attacks
19 Resist 1d100% Blast/Burst attacks
20 Gain one extra defensive trait
21 Can shift as a minor action (+1/50%)
22 Shift when missed (+1/50%)
23 Bonus damage with combat advantage
24 All-around vision
25 Tremorsense (Range=Will-4)
26 Damaging Aura (On hit, Range 1d20 {worst of 2}, Damage 5, +5/HP-10%, max 20)
27 Healing Aura (HP/10) x (1d50+50)% (cannot heal self unless nobody else is affected)
28 Defensive aura (Aura Ref-5, +2 defs)
29 Offensive aura (Aura Ref-5, +2 atts)
30 Gain two extra defensive traits
SECONDARY/TERTIARY ATTACKS
Every unit gets a basic melee attack that's randomly generated, but also get two more randomly generated attacks.
1d20s will be used this time around. I tried using a d30, making ranged attacks and area attacks each have a 1 in 3 chance of occuring, melee was useless in these matchups, so now.
ATTACK TYPE
Melee attacks target AC and have a modifier equal to their Fortitude-10. In other words A player that has 15 Fortitude with a melee attack that deals 2d8 damage would deal 2d8+5 on that attack
Martial ranged attacks target AC, and have a modifier of the Reflex-10
Arcane attacks will randomly target Fort, Ref, or Will when being generated
Divine attacks always use the Will modifier
1 (Melee)
2 (Melee) (Targets either Fortitude, Reflex, or Will)
3 (Melee) (Burst 1)
4 (Melee) (Range 2)
5 (Melee CH) (Charge attack)
6 (Melee Miss) (Retaliate with this attack on a miss)
7 (Melee) (Retaliate with this attack when hit)
8 (Melee) (Retaliate with this attack when an enemy enters an adjacent square)
9 (Melee) (Moveby attack)
10 (Melee) (Heal on hit, average health gained cannot exceed average damage dealt)
11-15 (Ranged) (Martial ranged attacks have a range of 1d20+4, and a long range double that, Arcane ranged attacks have a range of 1d20+4)
16 (Blast) (+2/70%) (Blast attacks do not provoke opportunity attacks when fired adjacent to an enemy, but this can only happen once every encounter)
17 (Burst) (+1/60%)
18 (Ranged Wall) (+W5/60%)
19 (Ranged Burst) (B1, +1/50%)
20 (Heal effect) (Minor action when used on an ally, 2 minor actions to use on one's self, it recharges after every kill, no attack modifier, and it can't be a martial ranged attack. Roll again to figure out what kind of healing power this is)
ATTACK MODIFIER
2d6-2 (Avg 5, Med 5, Mean 5)
DAMAGE ROLL
Roll 1d100
01-30 1d < 20 HP Worst of 2 rolls
31-50 2d
51-66 3d
67-78 4d 40-59 HP Best of 2 rolls
79-88 5d
89-95 6d
96-99 7d 60+ HP +2d damage on every result
100
Roll 1d20
1-3 d4
4-8 d6
9-12 d8
13-16 d10
17-19 d12
20 d20
OFFENSIVE TRAITS
One of your attacks will be randomly selected and fitted with a randomly chosen offensive trait. Roll 1d30.
1 Double attacks (+1/40%)
2 2 atts, 1/target (+1/50%)
3 Hits result in a follow-up attack (+1/50%)
4 +1 reach, Threatening Reach (+1 reach/40%)
5 Requires 2 minor actions to use (1 Min melee, 30% 1 Min all other attack types)
6 Attack when missed
7 Extra Standard Action on a kill
8 Extra Move Action on a kill
9 Extra Healing on a Kill
10 Gain an extra offensive trait
11 Push (+1/50%)
12 Pull (+1/50%)
13 Slide (+1/50%)
14 Slow
15 Prone
16 Immobile
17 Daze
18 Weaken
19 Stun
20 Gain an extra offensive trait
21 Bonus damage with combat advantage
22 Heal on hit
23 Crit 19+ (-1/40%)
24 Crit 3x (+1/40%)
25 Target attacks another enemy on a hit
26 Ongoing 5 (+5/{HP-10}% chance) Max 20
27 Ongoing 5 (+5/{2 x Avg Damage}% chance) Max 20
28 Excess damage on a fallen enemy converts into hitpoints
29 1d100% splash damage (B1, +1/30%)
30 Gain two extra offensive traits
CALCULATING A UNIT'S NET COMBAT EFFECTIVENESS:
Not all unit traits are created equal in this model; I refrained from factoring the multipliers a trait has because the numbers I have for this are mostly guesswork. I don't know how dealing extra damage with combat advantage will directly affect a unit's overall combat effectiveness. A lot of these traits are situational. It depends on the map, the player count, and certain traits synchronize better than others. For instance, dealing extra damage with combat advantage would be extremely powerful for a character that could teleport, had a moveby attack, or was fast and caught an enemy from behind in a 4v4. Area-of-effect attacks are the say-all-end-all in a 50v50 matchup on a map 34 by 44 squares large.
The reason I want to figure out a unit's combat effectiveness so badly is because I want to know how useful each unit is, and any game with any level of competitiveness behind it is only fun when it's as fair as possible.
I'll leave calculating a unit's net combat effectiveness for another post and the numbers I got when attempting to average these values. I might even cover algorithms on making randomized D&D maps; you can end up with all sorts of terrible maps with the wrong algorithm. There can be heavily choke-pointed maps, maps that turn into a field of clutter and have no strategy, maps with bad spawns, maps that turn into standoffs quickly. I can discuss things like map size and how many players can play on a given map without it turning into a 64-player Conquest Metro situation. Until then, I don't even.
I use random.org to get all of these values.
UNIT's NAME
Roll 3d26 and use those numbers to generate 3 random numbers that correspond to the letter and their placement in the alphabet. So "4, 23, 6" would result in a name starting in "DWF"
I follow up those 3 letters with the total value of a character before square routing it, and that's my character name. Names like "DWF1540" aren't all that creative and hard to memorize; it still does the trick.
SPEED
Roll 1d100.
Result Speed
01-10 4
11-30 5
31-60 6
61-80 7
81-90 8
91-96 10
97-99 12
100 15
avg 6.51, med 6, mean 6.
DEFENSE
ARMOR CLASS 9+1d4+1d8 (avg 16, med 16, mean 14-18)
FORT/REF/WILL 6+1d6+1d12 (avg 16, med 16, mean 13-19)
HITPOINTS Roll 1d50 twice and take the lower roll. Add your Fortitude stat for total HP (not the modifier). Characters with more health points will have a higher chance of dealing more damage with their attacks. I tried this at 1d100, but the times to kill an enemy were excessively long. A range of 9 to 74 is wide enough as is. (I estimate an average of 32, I'll get a legit answer later on)
The reason the hitpoints are insanely low is because the pacing of the game really slows down to a crawl when everyone dies in 3 hits... whenever they hit. To make objective-based game types more fun and map control easier to establish the snowballing effect really starts to dissipate when two players of equal combat value can kill the other in one or two hits.
DEFENSIVE TRAITS
Roll 1d30 to get a random trait. The multiplayer mod I have set up only uses earth, forest, and water-based difficult terrain. To make things simpler smoke becomes forest terrain, swamp becomes water terrain, and ice becomes earth terrain.
Some of these perks will say something like (+1/30%). That means that the perk can increase in magnitude if a 1d100 is rolled, and matches/goes under the percentile value. For every successful roll the process repeats until the roll exceeds that number.
1 aquatic: move through water tiles without penalty in movement or attack
2 earth: traverse rocky obstacles like stairs and stones without penalty
3 forest: provides no visual impairment or movement penalty through forest tiles
4 hover: ignore water and earth difficult terrain; altitude cannot exceed a height of one square above solid ground
5 burrow: ignores earth and forest terrain; can go through solid obstacles.
6 swamp: ignores earth and water terrain, grants vision through forest terrain
7 teleport: can ignore opportunity attacks and travel to any direction in sight
8 climb: can climb up walls to get to higher ground without any movement penalty (besides the movement spent climbing up the wall). Players cannot attack while climbing.
9 phase: ignore all difficult terrain, and move through solid obstacles
10 Gain one extra defensive trait
11 Regenerate (HP/5) x 1d100%
12 Resist (HP/7) x 1d100%
13 Regenerate 1 HP for every square moved [(HP)% chance of it being 2]
14 Assisting an ally only requires a minor action
15 Reserve a secondary or tertiary attack as a healing effect.
16 +1 saves (+1/ 40%)
17 Resist 1d100% Melee attacks
18 Resist 1d100% Ranged attacks
19 Resist 1d100% Blast/Burst attacks
20 Gain one extra defensive trait
21 Can shift as a minor action (+1/50%)
22 Shift when missed (+1/50%)
23 Bonus damage with combat advantage
24 All-around vision
25 Tremorsense (Range=Will-4)
26 Damaging Aura (On hit, Range 1d20 {worst of 2}, Damage 5, +5/HP-10%, max 20)
27 Healing Aura (HP/10) x (1d50+50)% (cannot heal self unless nobody else is affected)
28 Defensive aura (Aura Ref-5, +2 defs)
29 Offensive aura (Aura Ref-5, +2 atts)
30 Gain two extra defensive traits
SECONDARY/TERTIARY ATTACKS
Every unit gets a basic melee attack that's randomly generated, but also get two more randomly generated attacks.
1d20s will be used this time around. I tried using a d30, making ranged attacks and area attacks each have a 1 in 3 chance of occuring, melee was useless in these matchups, so now.
ATTACK TYPE
Melee attacks target AC and have a modifier equal to their Fortitude-10. In other words A player that has 15 Fortitude with a melee attack that deals 2d8 damage would deal 2d8+5 on that attack
Martial ranged attacks target AC, and have a modifier of the Reflex-10
Arcane attacks will randomly target Fort, Ref, or Will when being generated
Divine attacks always use the Will modifier
1 (Melee)
2 (Melee) (Targets either Fortitude, Reflex, or Will)
3 (Melee) (Burst 1)
4 (Melee) (Range 2)
5 (Melee CH) (Charge attack)
6 (Melee Miss) (Retaliate with this attack on a miss)
7 (Melee) (Retaliate with this attack when hit)
8 (Melee) (Retaliate with this attack when an enemy enters an adjacent square)
9 (Melee) (Moveby attack)
10 (Melee) (Heal on hit, average health gained cannot exceed average damage dealt)
11-15 (Ranged) (Martial ranged attacks have a range of 1d20+4, and a long range double that, Arcane ranged attacks have a range of 1d20+4)
16 (Blast) (+2/70%) (Blast attacks do not provoke opportunity attacks when fired adjacent to an enemy, but this can only happen once every encounter)
17 (Burst) (+1/60%)
18 (Ranged Wall) (+W5/60%)
19 (Ranged Burst) (B1, +1/50%)
20 (Heal effect) (Minor action when used on an ally, 2 minor actions to use on one's self, it recharges after every kill, no attack modifier, and it can't be a martial ranged attack. Roll again to figure out what kind of healing power this is)
ATTACK MODIFIER
2d6-2 (Avg 5, Med 5, Mean 5)
DAMAGE ROLL
Roll 1d100
01-30 1d < 20 HP Worst of 2 rolls
31-50 2d
51-66 3d
67-78 4d 40-59 HP Best of 2 rolls
79-88 5d
89-95 6d
96-99 7d 60+ HP +2d damage on every result
100
Roll 1d20
1-3 d4
4-8 d6
9-12 d8
13-16 d10
17-19 d12
20 d20
OFFENSIVE TRAITS
One of your attacks will be randomly selected and fitted with a randomly chosen offensive trait. Roll 1d30.
1 Double attacks (+1/40%)
2 2 atts, 1/target (+1/50%)
3 Hits result in a follow-up attack (+1/50%)
4 +1 reach, Threatening Reach (+1 reach/40%)
5 Requires 2 minor actions to use (1 Min melee, 30% 1 Min all other attack types)
6 Attack when missed
7 Extra Standard Action on a kill
8 Extra Move Action on a kill
9 Extra Healing on a Kill
10 Gain an extra offensive trait
11 Push (+1/50%)
12 Pull (+1/50%)
13 Slide (+1/50%)
14 Slow
15 Prone
16 Immobile
17 Daze
18 Weaken
19 Stun
20 Gain an extra offensive trait
21 Bonus damage with combat advantage
22 Heal on hit
23 Crit 19+ (-1/40%)
24 Crit 3x (+1/40%)
25 Target attacks another enemy on a hit
26 Ongoing 5 (+5/{HP-10}% chance) Max 20
27 Ongoing 5 (+5/{2 x Avg Damage}% chance) Max 20
28 Excess damage on a fallen enemy converts into hitpoints
29 1d100% splash damage (B1, +1/30%)
30 Gain two extra offensive traits
CALCULATING A UNIT'S NET COMBAT EFFECTIVENESS:
Not all unit traits are created equal in this model; I refrained from factoring the multipliers a trait has because the numbers I have for this are mostly guesswork. I don't know how dealing extra damage with combat advantage will directly affect a unit's overall combat effectiveness. A lot of these traits are situational. It depends on the map, the player count, and certain traits synchronize better than others. For instance, dealing extra damage with combat advantage would be extremely powerful for a character that could teleport, had a moveby attack, or was fast and caught an enemy from behind in a 4v4. Area-of-effect attacks are the say-all-end-all in a 50v50 matchup on a map 34 by 44 squares large.
The reason I want to figure out a unit's combat effectiveness so badly is because I want to know how useful each unit is, and any game with any level of competitiveness behind it is only fun when it's as fair as possible.
I'll leave calculating a unit's net combat effectiveness for another post and the numbers I got when attempting to average these values. I might even cover algorithms on making randomized D&D maps; you can end up with all sorts of terrible maps with the wrong algorithm. There can be heavily choke-pointed maps, maps that turn into a field of clutter and have no strategy, maps with bad spawns, maps that turn into standoffs quickly. I can discuss things like map size and how many players can play on a given map without it turning into a 64-player Conquest Metro situation. Until then, I don't even.