Lacking Natural Simplicity

Random musings on books, code, and tabletop games.

Color versus Black and White Art in RPGs

I recently read of a review of an RPG that criticized it for having black and white art as well as color art. I think this is misguided, for several reasons.

First, I like black and white art. It takes skill to do properly, and can be very effective at setting a mood or providing inspiration. The RPG that the review mentioned above was about used color art for full pages or double page spreads, and I thought it was very effective and attractive. I also found the use of black and white art on the other pages, mostly taking up part of a page, very effective and attractive. I don't mind the mix, if it is done in a manner that harmonizes well.

Second, I don't mind RPG materials that contain only black and white art. Again, if the art is good, then it improves the work, and is welcome to the eyes. Some RPG publishers simply don't have the money for full color art throughout the work. I don't think it is fair to criticize their work simply on the basis that it isn't full color. In fact, if the work is well written and has no art I'm more likely to enjoy it and get what I want from it than if it is badly written and has good art.

Fourthly, if the work has pages that are completely covered from edge to edge, especially on the paper used for the best reproduction of color art, the ink is much more likely to smear and leave ugly tracks from normal handling.

Fifthly, fully covered pages often have background art that reduces the readability of the page. For instance, the brown background to the first page of chapters in D&D 3E and 3.5E, and the broken brown lines under the text of the other pages in the chapters detracts from the readability noticeably.

Sixthly, when working with maps for RPGs, while I find judicious use of color to make things stand out is useful, I find that maps that are fully colored, while impressive to look at, are much harder to adapt and to record changes on. When I run “B2 Keep on the Borderlands” or Jennell Jaquay's “Dark Tower” I can write notes directly on the map and draw in changes such as collapsed sections or new excavations. I can't do that with full color printed art — the changes don't show up well or in some cases at all, depending on the paper and the ink used. This is less important if working with digital images, because you can always use sharply contrasting colors for text and line drawings, but full color “painted” battle maps are harder to adapt for most people because the skill it takes to modify it and have it looks good is much greater than most people have.

All in all, I don't think color art, especially full color pages, is a requirement for good RPG books and materials. It is impressive when it is used well, but can actually be a drawback in some cases.

Advanced Fighting Fantasy 2E Combat Companion

I got my printed copy of the Combat Companion for Advanced Fighting Fantasy 2E a couple of weeks ago. Overall I liked it. There were some typos, but nothing that prevented me from from understanding the rules.

Here is the table of contents, with brief notes on what is in them:

  • Chapter 1 - Introduction

    • Optional Rules Checklist

  • Chapter 2 - Hero Creation

    How to create Heroes at different power levels.

  • Chapter 3 - New Skills and Talents

    Special Skills: Martial Arts, Monster Lores (Animal, Construct, Demon, Humanoid, Monster, Plant, Undead), Assess Enemy, Running.

    Talents: Barfighter, Battle Rider, Combat Caster, Defender, Duelist, Evasive, Hunter, Inspiring Leader, Lucky Punch, Resilient, Sniper, Specialist.

    I was most interested in the Martial Arts Skill, which makes unarmed strikes more and more dangerous at higher skill levels.

  • Chapter 4 - Alternative Rules

    Critical Tables: Melee Attack, Martial Arts Attack, Natural Attack, Missile Attack.

    Fumble Tables: Martial Arts Attack, Natural Attack, Missile Attack. (Use the default Fumble Table in the core rulebook is for Melee Attacks.)

    Alternative Combat Rules: Leaving Combat, Revised Armour special skill requirements, Powerful Blows, Ranged Attack Target Number, Ubiquitous Dodging, LUCK in Combat, Weapon Reach, Hero Death, Multiple Monster Attacks, Fluid Modifiers.

    Combat Options: Assist, Bypass Armour, Cautious Attack, Charging Attack, Disarm, Dodging Attack, Double Shot, Frenzied Attack, Stand Firm, Sniper Shot, Tumbling Attack, Whirlwind Attack.

  • Chapter 5 - Martial Arts

    Each of the schools get a bonus in one set of circumstances, but a penalty the rest of the time.

    Styles: Cangui School, Hac-Quel-Rat School, Kappa School, Ki-Rin School, Kreehul School, Mukade School, Pelagine School, Shikome School, Tatsu School.

  • Chapter 6 - Combat Magic

    The new special skill Magic-Warrior Mage and associated new spells: Bladerune, Combat Reactions, Enhancement, Fireblade, Iceblade, Lesser Magical Shield, Magical Armour, Protective Field, Accuracy, Catseyes, Dancing Blade, Duplicate, Greater Magical shield, Weapon Master, Concussive Blast, Elemental Shield, Avatar of War.

  • Chapter 7 - New Equipment

    Master Weapons and Armour, Silver Weapons, Acquired Traits.

    New Equipment. General: Ball Bearings, Caltrops, Firedust. Weapons: Armoured Fist, Bastard Sword, Cleaver, Greathammer, Repeating Crossbow, Scimitar. Armour: Armoured Fist, Great Helm, Leather Jack, Scale Armour, Tower Shield. War Mounts: Giant Ant, Black Elk, Giant Chameleon, Chaos Steed, Demon Steed, Gunderwal, Horse (Warhorse), Giant Lizard, Ophidiotaur, Rhinoceros, Wyvern.

  • Chapter 8 - Mounted Combat

    Discusses the Suitable Mounts, with separate costs for various levels of training.

    Expands on the Mounted Combat Rules from the core rulebook p. 60.

    Mounted Combat Options: Barge, Break Out, Charging Attack, Rear Up, Trample, Whirl.

    Rules for Training Mounts.

  • Chapter 9 - Monster Templates

    Templates to be applied to any monster to increase their abilities and make them a greater threat.

    Humanoid Templates: Berserker, Champion, Chief, Enforcer, Hero, Scout, Shaman, Veteran, Wizard. Monster Templates: Chaos-, Dire-, Enchanted-, Huge-, Large-. Construct Templates: Charged, Enhanced, Reinforced. Demon Templates: Greater, Lord, Major. Undead Templates: Ancient-, Burning-, Cursed-.

    • Appendices

      Consolidated Weapon Damage Tracks, Armour Protection Tracks, Special Skills, Talents, miscellaneous tables.

I think having this would have made AFF more interesting to at least one group I played it with.

Logging the output of long commands run multiple times

I often run commands that produce a lot of output that needs to saved for debugging, and often the commands have to be repeated multiple times to get things to work. For example, building software from source, often using the familiar ./configure; make; make install paradigm.

So, the first thing is to try is to use the venerable tee command.

./configure 2>&1 | tee Log.configure
make 2>&1 | tee Log.make
make install 2>&1 | tee Log.make-install

To make the log files easy to find I use a Log. prefix.

But I often need to run the commands multiple times, and want to save each run under a new filename, so if the filename already exists I want to add a number to the end and then increment the number until I find one that hasn't been used. And I'd like the filename to have the date in YYYY-MM-DD format, so the resulting names look like Log.make-install-2021-07-07_2.

So I wrote a bash function incf (increment filename) to put in .bashrc that generates such a name:

incf () {
    # Construct a filename from PREFIX, "_YYYY-MM-DD",  optionally _N (where N
    # is 1 or greater) if the filename already exists, and optionally SUFFIX.
    # Example: "incf file .tar.gz" results in "file_2021-07-07.tar.gz", or
    # "file_2021-07-07_N.tar.gz" if "file_2021-07-07.tar.gz" already exists,
    # where N is 1 or greater.
    local prefix suffix fileprefix i testname sep1 sep2
    prefix="$1"
    suffix="$2"
    sep1="_"
    sep2="_"
    fileprefix="${prefix}${sep1}$(date +%F)"
    let i=0
    # The zeroth filename doesn't have the number.
    testname="${fileprefix}${suffix}"
    while true
    do
      [ ! -e "$testname" ] && break
      ((i++))
      testname="${fileprefix}${sep2}${i}${suffix}"
    done
    echo "$testname"
}

And then I wrote a bash function that uses incf to generate the Log. filename, potentially in a different directory:

logf () {
    # Construct a filename, possibly in another directory, that starts with
    # "Log." and ends with "YYYY-MM-DD" and optionally "_N", where N is 1 or
    # greater, if the filename already exists.
    local dn bn fn
    dn="$(dirname "$1")"
    bn="Log.$(basename "$1")"
    fn="$(incf "$dn/$bn")"
    echo $fn
}

And then I wrote a log command that uses logf and tees its input into that file:

log () {
    # tee the input into a log file.
    tee $(logf "$1")
}

So running ./configure 2>&1 | log ~/tmp/configure generates a file Log.configure_2021-07-07 in the ~/tmp directory.

But what if I specify a lot of options to the command, and would like record if it in the log file, so if I get interrupted and then come back some time later I can use the same command?

First I wrote a base function, cleanname, that takes a string and converts it to something that should be safe to use as a filename.

cleanname () {
    # Clean up a string so it is (relatively) safe to use as a filename.
    local cmd="$*" name
    name=$(echo "$cmd" | sed 's/[ =";?*&^%$#@!~`|()<>]/-/g' | \
               sed "s#[/']#-#g" | sed -E 's/--+/-/g' | \
               sed -E 's/(^[-.]+|-+$)//g' | \
               sed -E 's/\.\.\.*/./g')
    echo "$name"
}

Then I wrote a bash function, exlog, to use the whole command with its options as part of the filename (constructed with cleanname, and also include the whole command in the log output:

exlog () {
    # Execute a shell command and log it to "Log.<cmd-as-safe-filename>"
    local cmd="$*" name="$(cleanname "$@")"
    name="$(logf $name)"
    printf 'Logging to %s\n' "$name"
    (echo "cmd was: $cmd"; time "$@") 2>&1 | tee $name
}

So running the command

exlog ../configure --prefix=/Users/tkb/sw/versions/groff/git

produces the file

Log.configure-prefix-Users-tkb-sw-versions-groff-git_2021-07-07

and it contains the line

cmd was: ../configure --prefix=/Users/tkb/sw/versions/groff/git

and running it again produces the file

Log.configure-prefix-Users-tkb-sw-versions-groff-git_2021-07-07_1

This code is available in a gist.

Last edited: 2021-07-09 15:30:53 EDT

Another Thing I Really Liked About Advanced Fighting Fantasy 1E

I liked that one of the example characters in Dungeoneer, Axel Wolfric (who in my game was played by L.B. as Alexa Wolfrica), has several abilities which mechanically are spells, but which the character doesn't regard as magic, something they regard as evil. Doing this sort of thing in a fantasy game makes a lot of sense, where characters might have weird one-off abilities.

And I really liked the trade paperback format, and found it convenient at the table.

Savage Worlds Wild Die Rolls at Anydice.com

Just for reference, here is the Anydice.com code for Savage Worlds Wild Die rolls:

output [highest of [explode d4] and [explode d6]] named "d4 or wild die"
output [highest of [explode d6] and [explode d6]] named "d6 or wild die"
output [highest of [explode d8] and [explode d6]] named "d8 or wild die"
output [highest of [explode d10] and [explode d6]] named "d10 or wild die"
output [highest of [explode d12] and [explode d6]] named "d12 or wild die"

Here's a link to the results.

Why I like Advanced Fighting Fantasy

I have a great fondness for the original Advanced Fighting Fantasy series, even though I didn’t get them until 2011 or so. I think the the Arion Games 2nd edition of Advanced Fighting Fantasy is probably a slightly better game, especially for campaigns (it made a few adjustments, so character creation is not as random, and a few other things), but I like it’s layout and typography less. Also, there is something about the presentation of the game in Dungeoneer as something for people new to RPGs that made it appealing.

What is it about the Advanced Fighting Fantasy series that makes it so cool?

Well, the original Fighting Fantasy gamebooks were neat. The series was started by Ian Livingstone and Steve Jackson. (That's the British Steve Jackson, not the American one.) They included a really simple RPG and a choose your own adventure style adventure. That’s where the book is made up at numbered paragraphs, and when you get to a decision point you can choose among two or more choices, and those point you at different paragraphs depending on the choice you make. For instance, you might have a choice to attack, retreat to an earlier location, or try something off the wall. The addition of the simple RPG added a lot, in my opinion, increasing replayability. Anyway, that addition made the Fighting Fantasy books some of the most popular gamebooks. Many of them are classics of the genre. Most of them are fantasy, and set in the world of Titan, which was popular enough that there was a world book devoted to it, Titan, and a book of monsters from that word, Out of the Pit. And the art used in illustrating the books was very evocative. (I particularly liked Russ Nicholson's art (R1, R2).

The mini RPG used in the Fighting Fantasy books was really simple: the reader’s character has three stats, SKILL, which measures their general level of skill, STAMINA, which measures the character’s energy and fitness and how much damage they can take, and LUCK, which measures how lucky the character is. SKILL is 1d6+6, STAMINA is 2d6+12, LUCK is 1d6+6. NPCs and creatures just have SKILL and STAMINA. Generally, if the character is trying to do something outside combat, they roll 2d6 <= their SKILL to succeed. Combat is simple, the player rolls 2d6 and adds their skill, their opponent rolls 2d6 and adds their skill, and the one with the higher total subtracts 2 from the other’s STAMINA total. If they tie neither win. LUCK is used to see how lucky the character is. For instance, if a cave is collapsing a character will “Test their LUCK” and roll 2d6 <= their LUCK to succeed at escaping the collapse. Every time a character Tests their LUCK, they reduce their current luck by 1. Luck can also be used in Combat to increase the wounds they deal or decrease the wounds they take. If a character has wounded an opponent, they can Test their LUCK, and if they are Unlucky the opponent takes only 1 damage instead of 2, but if they are Lucky the opponent takes 4 damage instead of 2. If the character has been wounded, they can Test their Luck and if Lucky they take only 1 damage, but if they are unlucky they take 3 damage. So it is a tradeoff.

Now, that system works well for a gamebook, but doesn’t have enough detail for most RPG players. (Although it was published as an intro RPG, in Fighting Fantasy: The Introductory Role-playing Game.)

Advanced Fighting Fantasy, written by Marc Gascoigne, takes that framework and adds to it in a way that increases the interesting detail of the system, without overcomplicating it too much. Primarily, they add Special Skills, which allow characters to specialize. For instance, if a character wanted to be good with a bow and able to follow people through the forest they’d pick up the Special Skills Bow and Awareness. Then, when shooting arrows at opponents they’d add the rating for their Bow Special Skill to their SKILL. When tracking someone through the forest, they’d add their Awareness Special Skill to their SKILL. And so on. A sneaky person might have the Special Skills Locks, Sleigh of Hand, Sneaking, and Trap Knowledge. And so on. Someone from a noble background might have Etiquette, Law, and Leadership. A merchant might have Bargan, City Lore, and Evaluate.

I like that characters are competent in general, due to SKILL, but can be more competent in their areas of interest, using Special Skills.

You can build important NPCs just like characters if you want the detail, but for run-of-the-mill opponents you can just use SKILL and STAMINA, so stating out NPCs and opponents is very easy.

And Advanced Fighting Fantasy added more detail to weapons and armor, still keeping to the use of six sided dice only. So, instead of each attack doing 2 STAMINA damage every time, you roll a die and depending on the weapon, that tells you how much damage you do, by looking up the weapon’s damage chart. For instance, a dagger might do 1 damage on a 1 or 2, 2 damage on a 3 through 6, and 3 damage on a 7+ (because there are a few things that add one to the damage roll, but not directly to the resulting damage), while a great sword does 2 damage on 1, 3 damage on a 2 or 3, 4 damage on a 4 or 5, 5 damage on a 6, and 6 damage on a 7+.

For instance, here's the damage for Dagger, Club, and Two-handed Sword:

Weapon

1

2

3

4

5

6

7+

Club

1

2

2

2

2

2

3

Dagger

1

1

2

2

2

2

2

Two-handed Sword

2

2

2

3

3

3

4

That's an interesting way to get variable damage when you are limited to using just six sided dice.

And of course there was a Magic Special Skill, and if you learned that you could learn and cast spells, each spell costing an amount of STAMINA to cast.

And Advanced Fighting Fantasy had a nice mass combat system, and lots of setting detail from Titan and opponents from Out of the Pit (both republished in trade paperback to go with the AFF trade paperbacks), and so forth.

Anyway, Advanced Fighting Fantasy (AFF1e) was published in three trade paperback sized books, Dungeoneer (1989), Blacksand (1990), and Allansia (1994). Titan and Out of the Pit, were republished in 1989 in trade paperback sized books to match. Dungeoneer had the basic rules, Blacksand added more options and described the city of Blacksand (a fantasy hive of scum and villainy), and Allansia added more options and described the continent of Allansia in more detail. The books were less available in the US than in Great Britain where they originated, and I never saw them in either bookstores (where they were sold alongside the Fighting Fantasy gamebooks, hence the trade paperback size) or in gaming stores. I got my copies in 2011, when AFF 2nd Edition came out, for comparison.

In 2011 Graham Bottley of Arion Games got the license to publish a 2nd edition of Advanced Fighting Fantasy (AFF2e). It was a more familiar A4 sized book (the international paper size closest to the US Letter paper size), and while I didn’t particularly care for its layout choices, I did like the way it made the game better for running campaigns (character creation was less random, and gave characters more room for growth), its addition of a MAGIC stat and Magic Points from which the costs for spells were deducted instead of STAMINA, and its additions of multiple types of magic (one, Sorcery, was based on a different gamebook series, the Sorcery! series, from Steve Jackson), and talents, which were special things a character could do. I wasn’t so thrilled that priests now used a completely separate magic system not based on casting spells costing Magic Points; in 1st Edition priests had different spell lists they could learn from, but otherwise used the same mechanics as Mages. AFF2e also added more detailed armour, which works similarly to damage — roll a die, look up how much damage is blocked on the armour chart.

Here's Leather Cuirass and Plate Armour:

Armour

1

2

3

4

5

6

7+

Leather Cuirass

0

0

0

0

1

1

2

Plate Armour

1

1

2

2

3

3

4

AFF1e, by contrast, said that the Damage Table had been carefully constructed to take into account armour (Dungeoneer, p. 163), and assumed Heroes (the player characters) and their adversaries all wore armor (Dungeoneer, p. 164), and if anyone took off their armour, then any Damage Rolls (which was an index into a table, remember, not the actual damage) had 2 added to them. I expect this explains why the damage values on the Weapon chart all changed in AFF2e.

Anyway, I played some AFF 1st Edition games with the kids, which was a lot of fun. I also played some AFF 2nd Edition games with some of them, which was also fun. I played AFF1E with some of the folks from work, and it was fun, but they wanted something with more detailed combat. I could see why, even AFF2e combat is fairly simple. They rest of the game they liked.

And Arion Games has gone on to publish slightly more than a book a year since 2011, covering the same ground as the original AFF’s three books did, plus a lot more, including two more monster books (Beyond the Pit and Return to the Pit), more options for heroes in the Heroes Companion, a new area of Titan (Travels in Arion), a herbal, and a smaller book on creatures from a particular area of Titan (Creatures of Mishna). And just recently they published the Combat Companion, which adds extra options for combat that the gamers from my work mentioned earlier would have liked.

And Titan, the world of Fighting Fantasy and Advanced Fighting Fantasy is a very nice little bit of everything fantasy setting, anchored by locations and characters from 59 Fighting Fantasy gamebooks.

In summary, Advanced Fighting Fantasy is a role-playing game with simple mechanics that still provide ample detail, set in an interesting fantasy world.

Arion Games also publishes Stellar Adventures, a science fiction game that uses the same rules, customized for science fiction adventures, which has several supplements as well. The Stellar Adventures and Advanced Fighting Fantasy, 2nd Edition lines are all available in PDF on DriveThruRPG.com, with most available in print-on-demand as well, very important in these days of online gaming.

Last edited: 2021-08-09 12:10:07 EDT

Using getnstr from Chicken Scheme ncurses egg

The Chicken Scheme documentation for the ncurses egg says that you should pass a string to the getnstr, function, but that doesn't actually work.

I finally found an example, and after looking at it and figuring out what imports are now required I have a working example of using getnstr from the chicken scheme ncurses egg!

(import ncurses)
(import (chicken locative))
(import (chicken string))

(define (get-string max)
  (let ((buffer (make-string max #\null)))
    (getnstr (make-locative buffer) max)
    ;; Delete the #\null characters.
    (string-translate buffer #\null)))

(let ((stdscr (initscr))
      (str (get-string 10)))
  (addstr str)
  (getch)
  (write str)
  (endwin))

Oh, and I added the example to the ncurses egg documentation: getnstr Example.

Ted Harding's "A Guide to Typesetting Mathematics using GNU eqn"

For reference: The only place I've been able to find the PDF of Ted Harding's “A Guide to Typesetting Mathematics using GNU eqn” (the link from troff.org is broken) is in the archives of the groff mailing list and archive.org (search for “eqnguide”, since the file is named eqnguide.pdf):

The last was the most recent I found, labeled “Last Revised 27 October 2013”. It is also available from archive.org.

Does anyone know of the source to this was ever released?

Star Wars D6 1st Edition Odds of Hitting a Target Number

After posting about the odds in Mini Six (MS1, MS2) of hitting a Target Number, I thought I should do the same for Star Wars: the Roleplaying Game, 1st Edition, the original Star Wars roleplaying game, from West End Games. It does NOT use the Wild Die; that was introduced in the 2nd Edition and is also used in OpenD6.

The Anydice.com code is very simple:

loop N over {1..12} {
  output Nd6 named "[N]D"
}

If you enter this manually instead of following the “code” link above, remember to click “At Least” to get the right results!

Star Wars D6 1st Edition does NOT use the Wild Die!

The multiple 100s from 6D onward are, after the first, not actually 100s, but 99.x where x is small enough it rounds up to 100.00 when shown with two digits of precision.

The 0.00s that appear from 6D onwards are not 0.00, but numbers so small that they appear as 0.00 when expressed with two digits of precision.

Star Wars D6 1st Edition Odds of Hitting a Target Number

1D

2D

3D

4D

5D

6D

7D

8D

9D

10D

11D

12D

1

100.00

2

83.33

100.00

3

66.67

97.22

100.00

4

50.00

91.67

99.54

100.00

5

33.33

83.33

98.15

99.92

100.00

6

16.67

72.22

95.37

99.61

99.99

100.00

7

58.33

90.74

98.84

99.92

100.00

100.00

8

41.67

83.80

97.30

99.73

99.98

100.00

100.00

9

27.78

74.07

94.60

99.28

99.94

100.00

100.00

100.00

10

16.67

62.50

90.28

98.38

99.82

99.99

100.00

100.00

100.00

11

8.33

50.00

84.10

96.76

99.55

99.96

100.00

100.00

100.00

100.00

12

2.78

37.50

76.08

94.12

99.01

99.88

99.99

100.00

100.00

100.00

100.00

13

25.93

66.44

90.20

98.03

99.72

99.97

100.00

100.00

100.00

100.00

14

16.20

55.63

84.80

96.41

99.39

99.92

99.99

100.00

100.00

100.00

15

9.26

44.37

77.85

93.92

98.79

99.82

99.98

100.00

100.00

100.00

16

4.63

33.56

69.48

90.35

97.79

99.62

99.95

100.00

100.00

100.00

17

1.85

23.92

60.03

85.54

96.21

99.26

99.89

99.99

100.00

100.00

18

0.46

15.90

50.00

79.42

93.88

98.63

99.76

99.97

100.00

100.00

19

9.72

39.97

72.06

90.61

97.63

99.54

99.93

99.99

100.00

20

5.40

30.52

63.69

86.28

96.11

99.15

99.85

99.98

100.00

21

2.70

22.15

54.64

80.83

93.93

98.51

99.71

99.95

99.99

22

1.16

15.20

45.36

74.28

90.93

97.53

99.47

99.91

99.99

23

0.39

9.80

36.31

66.78

87.02

96.08

99.06

99.82

99.97

24

0.08

5.88

27.94

58.58

82.11

94.04

98.43

99.66

99.94

25

3.24

20.58

50.00

76.23

91.29

97.48

99.41

99.89

26

1.62

14.46

41.42

69.46

87.72

96.10

99.00

99.79

27

0.72

9.65

33.22

61.98

83.28

94.20

98.37

99.63

28

0.27

6.08

25.72

54.05

77.96

91.66

97.46

99.36

29

0.08

3.59

19.17

45.95

71.81

88.40

96.15

98.95

30

0.01

1.97

13.72

38.02

64.96

84.35

94.38

98.34

31

0.99

9.39

30.54

57.61

79.50

92.03

97.46

32

0.45

6.12

23.77

50.00

73.89

89.03

96.23

33

0.18

3.79

17.89

42.39

67.60

85.33

94.57

34

0.06

2.21

12.98

35.04

60.79

80.90

92.40

35

0.02

1.21

9.07

28.19

53.63

75.76

89.64

36

0.00

0.61

6.07

22.04

46.37

69.96

86.24

37

0.28

3.89

16.72

39.21

63.63

82.17

38

0.12

2.37

12.28

32.40

56.92

77.44

39

0.04

1.37

8.71

26.11

50.00

72.08

40

0.01

0.74

5.96

20.50

43.08

66.19

41

0.00

0.38

3.92

15.65

36.37

59.89

42

0.00

0.18

2.47

11.60

30.04

53.33

43

0.08

1.49

8.34

24.24

46.67

44

0.03

0.85

5.80

19.10

40.11

45

0.01

0.46

3.90

14.67

33.81

46

0.00

0.24

2.52

10.97

27.92

47

0.00

0.11

1.57

7.97

22.56

48

0.00

0.05

0.94

5.62

17.83

49

0.02

0.53

3.85

13.76

50

0.01

0.29

2.54

10.36

51

0.00

0.15

1.63

7.60

52

0.00

0.07

1.00

5.43

53

0.00

0.03

0.59

3.77

54

0.00

0.01

0.34

2.54

55

0.00

0.18

1.66

56

0.00

0.09

1.05

57

0.00

0.05

0.64

58

0.00

0.02

0.37

59

0.00

0.01

0.21

60

0.00

0.00

0.11

61

0.00

0.06

62

0.00

0.03

63

0.00

0.01

64

0.00

0.01

65

0.00

0.00

66

0.00

0.00

67

0.00

68

0.00

69

0.00

70

0.00

71

0.00

72

0.00

Here's the Open Office spreadsheet, here's the PDF, and here's the raw data from Anydice in CSV format. (I saw the “Export” option, finally.) You can always look at the ReStructuredText source of this page if you want the table in ReStructuredText format — there should be link named "Source" at the beginning of this post if you are visiting the article page (not the index page for the whole blog) what will let you download it.

Perhaps more immediately understandable is this screenshot of the the results in graph mode:

/images/star-wars-d6-1e-odds-of-hitting-a-target-number.png

(Right-clicking the image might give you the option to open the image in a new tab, where you'll see it at full size.)

Last edited: 2021-08-09 12:07:06 EDT

OpenD6: The Mathematical Mean

Another concept that I've found useful for preparing for Star Wars: The Roleplaying Game, OpenD6 or Mini Six (MS1, MS2) games is “The Mathematical Mean”, which I first saw at The OpenD6 Project. I'll quote it here for reference.

The Mathematical Mean

In the standard rules, traits are rated by whole and partial increments of six-sided dice. A whole die increment is written as “1D”, where the integer denotes a number of dice to be rolled and totaled. Partial die increments are written as “1D+1”, where the primary identity denotes a number of dice to be rolled and totaled, and the secondary identity denotes an absolute value to be added to the sum total.

Conflict resolution in OpenD6 is based on a standardized difficulty scale that is adjusted for the mathematical mean of a given trait score.

On this difficulty scale, a “Moderate” difficulty is defined as a number approximating the mean roll of a trait score totaling between 3D and 4D, so that the sum total of a trait roll will equal or exceed the difficulty on approximately 50% of a given set of iterations. Difficulties are then derived mathematically in multiples of 3.5, where the corresponding descriptive value is derived in multiples of 5. Each die code corresponds to a difficulty computed using a fixed value equal to 3.5x the whole die increment, and adding the partial die increments (pips) to the sum total.

The purpose of defining a “Moderate” difficulty with this range of values is to approximate a 50% success ratio for the most common trait totals assigned to protagonists and antagonists within the system, as well as to provide an increasing success ratio to higher trait totals. The 50% success ratio can be adjusted along a sliding scale to correspond to higher trait totals.

The purpose of providing descriptive values for each numerical value allows difficulties to be evaluated quickly relative to a baseline trait score of 3D.

Standardized Difficulty Table

Description

Difficulty

Die Code

Mean Result

Very Easy

1

1

1

2

2

2

3

4

1D

3.5

5

1D+1

4.5

Easy

6

1D+2

5.5

7

2D

7

8

2D+1

8

9

2D+2

9

10

Moderate

11

3D

10.5

12

3D+1

11.5

13

3D+2

12.5

14

4D

14

15

4D+1

15

Difficult

16

4D+2

16

17

18

5D

17.5

19

5D+1

18.5

20

5D+2

19.5

Very Difficult

21

6D

21

22

6D+1

22

23

6D+2

23

24

25

7D

24

Heroic

26

7D+1

25.5

27

7D+2

26.5

28

8D

28

29

8D+1

29

30

8D+2

30

Here is a PDF with a nicely formatted version of these tables (5½×8½ inches, suitable for adding to a booklet, or printing two up on on 8½x11 inch Letter paper) , and the ConTeXt source. You can always look at the ReStructuredText source of this page if you want the table in ReStructuredText format - there should be link named "Source" at the beginning of this post if you are visiting the article page (not the index page for the whole blog) what will let you download it.

By the way, does anybody know where this originates?

Last edited: 2021-08-09 12:07:36 EDT