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.
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:
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.
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.localprefixsuffixfileprefixitestnamesep1sep2
prefix="$1"suffix="$2"sep1="_"sep2="_"fileprefix="${prefix}${sep1}$(date+%F)"leti=0# The zeroth filename doesn't have the number.testname="${fileprefix}${suffix}"whiletruedo[!-e"$testname"]&&break((i++))testname="${fileprefix}${sep2}${i}${suffix}"doneecho"$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.localdnbnfn
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.localcmd="$*"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>"localcmd="$*"name="$(cleanname"$@")"name="$(logf$name)"printf'Logging to %s\n'"$name"(echo"cmd was: $cmd";time"$@")2>&1|tee$name}
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.
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"
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.
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.
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!
(importncurses)(import(chickenlocative))(import(chickenstring))(define(get-stringmax)(let((buffer(make-stringmax#\null)))(getnstr(make-locativebuffer)max);; Delete the #\null characters.(string-translatebuffer#\null)))(let((stdscr(initscr))(str(get-string10)))(addstrstr)(getch)(writestr)(endwin))
Oh, and I added the example to the ncurses egg documentation: getnstr
Example.
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):
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.
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:
(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.)
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 ConTeXtsource. 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
About
Lacking Natural Simplicity is one, not particularly flattering,
definition of sophisticated.
This blog chronicles my journey through our at times too complicated
and sophisticated world.
This site uses no cookies directly, but I expect the Disqus comments use cookies at disqus.com.