The Biblyon Broadsheet

Gods & Monsters Fantasy Role-Playing

Beyond here lie dragons
Biblyon, Highland
Sunday, May 13, 1990
Jerry Stratton, Ed.
Blackhawk: Blitzkrieg at North Texas RPG Con—Saturday, March 28th, 2020
Blackhawk (DC Heroes)

Update April 13: signup is now live.

If you’ve ever wanted to play DC Heroes, or play in DC Comics’s World War II setting, I’ll be running a Blackhawk game at North Texas on Thursday, June 4.

They are the subject of legend, the Blackhawk Squadron… a heroic group of fighter aces sworn to protect the Allied nations against the insidious Axis powers.

Now, the Squadron must penetrate Nazi-occupied territory for a crucial rescue and reconnaissance mission. The outcome of World War II hangs in the balance as the Blackhawks struggle against time to rescue American prisoners-of-war from a German factory… and discover what mad weapon the factory produces.

DC Heroes is an easy game to play. A little more difficult to run, but I’ll be handling that end of things. There is little in the way of powers among these characters, of course, as they’re all human pilots. Characters such as Stanislaus and Weng, and to a lesser extent Hendy, stray into superhero-level attributes or skills, but they’re still standard human skills, just amped up.

Of course the Blackhawks often face Nazi super-science—from the war wheel to flying tanks, to giant mechanical insects. But they defeat it with genuine human ingenuity, the killer instinct, as historian Victor Davis Hanson might say, of free men in the defense of liberty. What Epaminondas did to the Spartans, and Sherman to the Confederacy, Blackhawk and his pilots do to Nazi Germany: penetrate its tough outer shell to expose the weakness inherent in any slave society, any society that denies free speech and free expression.

Which is a lot deeper than this adventure gets, fortunately. There will be fist fights, gun fights, and, if you play your hand right, an aerial duel against an unbeatable and deadly foe.

becoming DM podcast for experienced and new dungeon masters—Friday, March 6th, 2020

“Whether you’re a classic or fresh DM, John and Felicia’s varied experience is sure to provide you that extra information you need to amp up your tabletop game.”

Becoming DM is a neat podcast about… becoming a DM, by an experienced game master and a new game master. The topics covered so far run from creating NPCs, to building a setting, to dealing with problem players.

They’ve been getting a little long-winded lately, but most of them run only about half an hour, for those of us with curious minds but short attention spans!

First Level Magic-Users are Useless—Thursday, January 16th, 2020

“That betrays a fundamental misunderstanding of how early editions of the game are played. Basic, 1E, and to some extent 2E emphasized the problem-solving skills of the player, over the in-game-power skills of the character.”

Believing that once a character’s special abilities on the character sheet are done, there’s nothing left to do, is a very modern attitude and ultimately alien to the original aesthetic of the game. — Greyhawk Grognard (First Level Magic-Users are Useless)

Great tips for game masters—Thursday, January 9th, 2020

“… if there are no stakes, then there’s no real victory… The best campaigns are based on the players interacting with the environment, and if they have no real choice, then there’s no real interaction.”

These are great tips for any game master, not just Dungeon Masters. Regarding the first tip, “don’t fudge”, I’ve long come to the point where I prefer not to use a shield to hide die rolls. It’s both a lot harder to fudge die rolls when the players know what they were, and it’s a lot more exciting to see how close the monster came to succeeding or failing.

An IP lawyer talks about role-playing and copyrights—Saturday, November 9th, 2019

“WotC has a history of taking advantage of gamers’ ignorance of contract and intellectual property law and lack of wealth when making similar demands, thus harming the gaming community and industry, so it’s time those issues are addressed.”

It’s been a long time since I wrote my series on gaming copyright and why, and what kind of, open source licenses are useful and what are merely backdoor attempts to bar people from doing what they’re legally entitled to do under copyright law. As I stated regularly, I am not a lawyer, just an interested amateur. Frylock, as his name might suggest to you if you’re up on your Shakespeare, is a lawyer. He’s just started a series on copyrightability in RPGs, specifically stat blocks, at Frylock’s Gaming & Geekery.

His inspiration is very similar to my initial inspiration for writing Gods & Monsters: a threat from Wizards of the Coast. His came directly, however; mine only came obliquely through Ryan Dancey on Usenet. Keep an eye on his series—the first installment is very informative—and keep an eye on whether there’s a legal battle at all, or WotC/Hasbro just ignores him.

House on Crane Hill at North Texas 2019—Wednesday, February 13th, 2019
Belle Grove through cypress

The sky is grey toward the sea. The water beats steadily against the high grass, and a low mist rolls across the waves toward you.

Tell me if you’ve heard this one before:

Recently, you have each been contacted by Dr. Jean deMontagne, some of you directly, some of you after a friend recommended you, to take a seaside vacation at Delarosa Manor, which the locals call Crane House, forty miles up the coast from Crosspoint between King’s Head and Jackson Village. You should set out on Monday, November 2, and thus arrive on November 3 or 4.

This is a working vacation. Dr. deMontagne asks that you search the house for a small, brass coffer once owned by Louis Merrikitt and marked with two strange symbols. He offers you ten shillings each to compensate you for that small task, and he offers another hundred for the coffer, should you find it. He tells you that the manor is yours for the month of November as you wish, although the actual task should take no more than a day or two.

House on Crane Hill is a haunted house adventure inspired not just by Shirley Jackson’s amazing story but also by her many imitators1, some good, some bad, and some horrorble. I have been fascinated by haunted house stories ever since I read the Hell House rip-off in Werewolf by Night back in the seventies—a comic I still read from time to time. These stories don’t just hint at a fundamental weakness in reality. They shove it down our throats. It took a long time for me to get around to reading the source for them all, but once I read The Haunting of Hill House I was hooked on Shirley Jackson, too.

Was table-top gaming inevitable?—Monday, October 22nd, 2018
Runequest cover

Today, Gods & Monsters in its public form turned 18. On October 22, 2000, I posted a link to “The Game” on rec.games.frp.misc asking for Blues Brothers-style constructive criticism. Eighteen, of course, is only significant in gaming terms or adulthood, and in the former case only for those games that use 3d6 for stats. Combined with a sad event from two weeks ago, it has me thinking again about role-playing history and how lucky we are to have had Dungeons & Dragons in particular and tabletop fantasy roleplaying in general.

The other event is that Greg Stafford died on October 12. He founded the Chaosium in 1975 to publish his fantasy board game. Through it he published, in 1978, the highly influential RuneQuest game, set in the highly influential Glorantha world, which used the same world that his earlier board game did.

It is hard for someone who wasn’t quite there—I started gaming in 1981—to describe just how influential Glorantha and RuneQuest was, the idea of basing the rules on the setting.

In his tribute to Stafford, Zenopus relates a fascinating and telling story about how Greg Stafford was introduced to D&D:

I used to work for Bergamot Brass Works, a belt buckle company out of Lake Geneva, WI after high school. Real hippy job. I'd take buckles, hitch hike around and sell them to shops, etc. After a while, though, I moved to California. My friend of the time remained there, selling buckles (we were called Buckle-itis).

Through various circumstances I'd decided to publish my first boardgame, White Bear & Red Moon, on my own. As I was finishing up work on it, I got a package in the mail from my old partner Jeff. His cover letter said, "I was picking up my catalogues from the printer the other day and there was this guy waiting for his stuff. I asked what it was, and he said it was a fantasy game. I said, 'Hey, my buddy in California is doing one too! Can I buy one from ya?'"

Of course the guy was happy to, and so Jeff sent me this strange little booklet called Dungeons & Dragons.

Command-line Die Square—Wednesday, June 27th, 2018
Skull d6

Is it any surprise that a die covered in skulls is biased?

Because Pythonista does not contain scipy, calculating chi-square values using it can have trouble on edge cases. This command-line script can run on data files created by the DieSquare mobile app, and uses scipy to make more reliable calculations.

Specify the DieSquare data file on the command line.

  • $ ~/bin/diesquare "Bronze d20.diesquare"
  • Degrees of freedom: 19.0 X-square: 20.6
  • p-value: 0.359317617197
  • d20 bias is unlikely.

You can also specify the die size and a file of tab-delimited or colon-delimited data. The file should contain two columns: the result, and how many of those results occurred.

The DieSquare file format is:

  • d6
  • 1: 3
  • 2: 16
  • 3: 9
  • 4: 8
  • 5: 6
  • 6: 18

That is, any line beginning with a lower-case “d” is assumed to be specifying the die size; any line with a number followed by a colon and space followed by a number is assumed to be a result. You can also put comments in by preceding the line with a pound symbol (#).

And as you might guess, this die is almost certainly biased.

  • $ ~/bin/diesquare "Skull d6.diesquare"
  • Degrees of freedom: 5.0 X-square: 17.0
  • p-value: 0.00449979697797
  • d6 bias is probable.

The code itself (Zip file, 1.6 KB) is very simple.

[toggle code]

  • #!/usr/bin/python
  • #http://godsmonsters.com/Features/my-dice-random/diesquare-ios/command-line-die-square/
  • import argparse
  • import scipy.stats
  • parser = argparse.ArgumentParser(description='Calculate Chi Square p-value using DieSquare data files.')
  • parser.add_argument('--die', type=int, help='die size')
  • parser.add_argument('data', type=argparse.FileType('r'), nargs=1)
  • parser.add_argument('--verbose', action='store_true')
  • args = parser.parse_args()
  • class ChiSquare():
    • def __init__(self, die, rolls):
      • self.die = die
      • self.parseRolls(rolls)
    • def parseRolls(self, rolls):
      • self.rollCount = 0
      • self.rolls = {}
      • for roll in rolls:
        • if not roll:
          • continue
        • if roll.startswith('d'):
          • self.die = int(roll[1:])
          • continue
        • if roll.startswith('#'):
          • continue
        • if "\t" in roll:
          • separator = "\t"
      • if args.verbose:
        • print(self.rollCount)
        • print(self.rolls)
    • def calculate(self):
      • if args.verbose:
        • print '\n# ', self.die
      • expected = float(self.rollCount)/float(self.die)
      • freedom = float(self.die - 1)
      • observed = self.rolls.values()
      • expected = [expected]*self.die
      • chisquare, pvalue = scipy.stats.chisquare(observed, expected)
      • print "Degrees of freedom:", freedom, "X-square:", chisquare
      • print "p-value:", pvalue
  • calculator = ChiSquare(args.die, args.data[0])
  • calculator.calculate()

Half of the code is just parsing the datafile; the actual calculation is a couple of lines using scipy:

  • observed = self.rolls.values()
  • expected = [expected]*self.die
  • chisquare, pvalue = scipy.stats.chisquare(observed, expected)

The variable “observed” is the list of observed result counts. The variable “expected” is the list of expected result counts. For example, rolling a d6 60 times, the expected result count is 10 for each result, so expected will equal “[10, 10, 10, 10, 10, 10]”. And observed will be the actual results; for example, in the above data the die face 1 was rolled three times, 2 sixteen times, 3 nine times, 4 eight times, 5 six times, and 6 eighteen times. This is the list “[3, 16, 9, 8, 6, 18]”. The script, of course, uses the lists it constructed by reading the datafile.

Older posts