30
Mar

Automated Testing Just For Fun

   Posted by: Mark   in Game Design, KORE rpg, rpg, rules

In the days before time, at the dawn of the RPG era, generating a system that was balanced and fair throughout the rule system must have been a challenge.   Certainly, many tests were available including statistical analysis and play testing.   Even so, it must have been a challenge and an extremely difficult task.  Obviously, no testing can be completely thorough.  Given the number of  new editions, modifications, and shifts that have occurred in the last 30 plus years of RPG rule sets I think that’s a given.

So I decided to run a few tests on the KORE system just for the fun of it.   Being, the computer geek I am, I decided automated testing would be more fun and revealing than simple pen on paper tests.   I selected an American West genre.   That genre is light and simplistic.   No fancy armor setup for defense and the weaponry is covered by the recent updated rule set I received.

On the test framework side, I went with the key rules for HP, Damage, etc. I did not use skills and I only coded the action portion of initiative.   From my perspective, I found the Discover derivative ability the most appropriate for firearm based attacks — Dexterity to prepare the weapon for the shot, Wisdom to encapsulate the effects of wind, sun and other elements, and Presence to accommodate for “buck fever”.  Defensively, I selected the default Dodge derivative attribute.  I waffled a bit but concluded that Dodge was a good choice if a person was firing from a place of choice including sun angle, etc.

The base calculation for attack for a successful hit was:

Discover + D10 > Dodge + D10

Obviously, this doesn’t include modifiers since no situational aspects are present.   For Damage, I took the stock approach mentioned in the rules. Base damage of 1 or 2 + Pdb of the attack.  I ran simulations with both 1 and 2 but in the end the base damage had no impact on the results overall. No defensive gear modifiers were used since nothing is available in the genre I am considering.

Balance Test

To start with, I wanted to see if balance was present and death was prevalent.    To accomplish this, I invented test case #1:   Randomly generate 1 character, copy him to the second character, and run them in combat until death.   Basically, fight yourself and expect the win vs. loss ratio to be about 50%.  I ran several million iterations of this ramping the random attribute allocation from 15 to 50.   As expected, no matter the point allocation, the combat was evenly distributed with both sides winning right at the 50% mark.  Average number of combat rounds ramped up from around 2 to just less than 5.   Not unexpected given the better abilities.   As these test progressed, I decided that I need to keep additional statistics so I enhanced the code to keep track of more information.

Attribute Distribution Testing

This test was designed to explore which attribute values lead to better success in combat.   The results were not surprising based on the earlier Statistical Statistic Analysis.   To accomplish this,  I randomly generated two characters utilizing base attribute points of 15 + D20 additional points.   I then ran this test for approximately 200 million combats in blocks of one hundred thousand between randomization of the attribute totals.   Additionally, the attributes of both the winner and the loser were recorded.  Finally, I calculated the average statistics for both sides overall.

Average Stats:

        Str    Dex    Con    Int    Wis    Pre
Winner: 5.064, 5.582, 5.189, 5.029, 5.023, 5.023
Loser : 5.002, 4.484, 4.877, 5.038, 5.043, 5.043

Dexterity was the obvious winner statistic as expected since it is utilized in the majority of derived attributes my test case uses.  Constitution also showed a slight favoring but less so than Dexterity.  Combat averaged 2.796 rounds with a maximum of 54 rounds at the extreme.

Enhanced Attribute Distribution Test

This test was a variation of the above but characters were randomly generated every combat instead of run in blocks.   The resultant average attribute distribution was close to the same over 100 million iterations.

        Str,   Dex,   Con,   Int,   Wis,   Pre
Winner: 5.033, 5.546, 5.157, 4.996, 4.991, 4.990
Loser : 4.966, 4.454, 4.843, 5.004, 5.009, 5.010

Once again, Dexterity proved the dominant attribute followed by Constitution.   Overall, the other attributes did not appear to have any major impact on the outcome of the combat cycles.  Combat duration averaged 2.785 rounds with a maximum of 49.

Combat Duration Testing

After running the attribution distribution tests, I was curious about the distribution of combat duration so I enhanced by recording capability and re-ran the enhanced tests.  The attribute distribution was nearly identical as was the average duration and maximum round count.

        Str,   Dex,   Con,   Int,   Wis,   Pre
Winner: 5.034, 5.546, 5.157, 4.996, 4.990, 4.991
Loser : 4.966, 4.453, 4.843, 5.004, 5.009, 5.009
Average Number of Rounds = 2.785.  Max Rounds = 49

The distribution of combat durations turned out as follows :

Rounds, Combat Count, Percentile
  1,      13779231,    13.779%
  2,      39192062,    39.192%
  3,      24024360,    24.024%
  4,      11947541,    11.948%
  5,       5661025,     5.661%
  6,       2693823,     2.694%
  7,       1306519,     1.307%
  8,        652217,     0.652%
  9,        334539,     0.335%
 10,        177469,     0.177%

Individual combats were quick and simple.   Exactly what I wanted to see from the Kore system to keep dice rolling to minimum even when it is necessary.  Just under 80% of combats will require four rounds are less.

Hero Testing

The last test I’ve run to date was to evaluate how the heroes of the game (PCs) would fare against the mortals over the world (general NPCs or Commoners).  To accomplish this, I started each combat cycle with a base attribute points of 20 + D15().   I then added an additional D10 worth of attribute points to the hero and deducted D10 points from the commoner giving a potential spread of 20 attribute points.  Finally, I pushed this through 100 million iterations.

The attribute distribtion was:

        Str,   Dex,   Con,   Int,   Wis,   Pre
Winner: 5.240, 5.451, 5.284, 5.198, 5.192, 5.191
Loser : 3.759, 3.548, 3.716, 3.802, 3.806, 3.808
Average Number of Rounds = 2.097.  Max Rounds = 52

Combat duration distribution was:
  1,   39416322,    39.416%
  2,   32914624,    32.915%
  3,   15747047,    15.747%
  4,    6760992,     6.761%
  5,    2862182,     2.862%
  6,    1244516,     1.245%
  7,     551037,     0.551%
  8,     253844,     0.254%
  9,     121660,     0.122%
 10,      60518,     0.061%

Again, the system provided the desired result – Hero’s winning and winning quickly over the general people.

My compliments to Kevin for getting the system to this state and establishing balance.   Also, my thanks for being interested in these results and asking me to guest publish on his blog.

Up to 1d6-1 Related posts:

  1. Hey munchkin! What’s the dump stat??
  2. Awesome… but optional: Pushing your Luck
  3. Sometimes ’tis better to be lucky than good
  4. Awesome… but optional: Blaze of Glory
  5. Delaying Actions – The first proposal shot down

Tags: , , , , , , , ,

This entry was posted on Monday, March 30th, 2009 at 10:19 am and is filed under Game Design, KORE rpg, rpg, rules. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 comments so far

Admin
 1 

Okay, when you asked for a copy of the rules to test them against a simple yet deadly setup, I had no idea you would go to these extreemes. Thanks for that, I think it shows the both the power of a simple ruleset as well as the ease of balancing it. At least if I read your outcomes correctly, the system returns the results it promises.

March 30th, 2009 at 10:27 am
Mark
 2 

I’d not call it an extreme. The code was relatively simple, only a few hundred lines, and it only addresses the combat nature of the system. Numerous other facets of the game will need to be examined via play testing. However, for what I desired, the system appears to work well.

I’ve begun drafting a genre adaptation of the system to an Old West style game. I foresee an few more rounds of automated testing as I progress but the bulk will need to be test cases for skills and playability. I’m no expert in terms of balance so I hope to learn a few things as I work my way forward.

In the end, its all for fun.

March 30th, 2009 at 5:04 pm
Kevin
 3 

I’m interested in seeing your genre adpatation. I’ve considered doing the same to the core ruleset with reagards to fantasy, horror, spys and supers. But then I also think my time is better spent just getting the base system stable and as bulletproof as I can and let others go down those paths.

April 1st, 2009 at 9:38 am

Leave a reply

Name (*)
Mail (will not be published) (*)
URI
Comment

Spam Protection by WP-SpamFree