Sunday, July 20, 2014

Project Rockfish

Much of the history of this blog has been about my getting re-acquainted with old-school role-playing games like Dungeons & Dragons.  I still haven't gotten back into the groove with an in-person group, but I haven't ruled it out.  If I do decide to take the reigns and perform as the world-building "Dungeon Master," there's one aspect of it in which I've decided to go decidedly new-school...

I'll need a computer at the table.

This may be sacrilegious to some, for whom anything beyond "paper, pencils, dice, and the imagination" is no-go territory.  I'm happy to stick with low-tech for a lot of it, but in order to weave a world worthy of capturing the attention of players, I'll need to have a spare brain on call.

So with apologies to the non-D&D-types out there, I'd like to use this post to archive my current ideas for what I'd consider the ideal set of software tools to have at the gaming table.

The name for this project, up in the title to this post, came to me upon hearing of the sad passing of actor James Garner, who played a character that inhabited the kind of world -- i.e., never boring, always on the cusp of adventure, yet grounded in flavorful verisimilitude -- that I'm trying to help build with these tools.  (If you don't know the appellation "Rockfish," go find some episodes guest-starring Isaac Hayes as Jim's old pal Gandy...)

Jim was using a new-school answering machine in 1974!
RPG insiders will quickly see that the following outline contains tools for building a "sandbox" type world.  This probably all could be done with dice and lookup tables, but the sheer number of random numbers needed makes it ideal for a computer.

- - - - - - -

(1) Weather

For each new day in the campaign world, I'll click a button and it will tell me the following day's
  • high & low temperature
  • times of sunrise & sunset (for me only); approximate durations of light & dark times (for the characters, who don't have wristwatches) 
  • moon phase, & times of moonrise & moonset
There will be a pulldown menu for me to choose the current terrain type (forest, mountain, desert, etc.), which will influence the
  • precipitation amount & type
  • clouds (probably only 4 discrete types: clear / partly / overcast / fog)
  • wind (4 types, too?  calm / light breeze / brisk wind / gale-force)
The program should be smart enough to rule out crazy combinations (snow in the desert) but still contain small chances for weird & interesting phenomena (thundersnow, will o' the wisps).  From all of the above, the program will also display customized charts for
  • character movement rates,
  • visibility distances, and
  • chances of getting lost while exploring outdoors.
- - - - - - - 

(2) Random generation of micro-locale details

This is only for when the players are entering a "new" (previously unexplored) region that I hadn't yet mapped out in detail.  If they've been here before, it will still be the same.

For a new wilderness hex, I'll have a handful of input options that specify its overall terrain type, and whether there are any major features (like coastlines or big rivers) in it.  Then it will generate a set of random landmarks, small waterways, paths, hills, animal dens, and so on.  (Definitely will be inspired by Alexis' work, here.)  These are keyed to the terrain type (e.g., a desert hex may have an oasis; a mountain hex may have a bubbling geothermal vent).  Some weird things -- graveyards? kooky hermits in huts? -- may crop up nearly anywhere.

For a new village, town, or city, it will generate some rough guidelines about the
  • population
  • overall spatial layout
  • main products produced by them
  • quirks about their traditions (governmental? religious? other?)
  • notable NPC resident(s)
  • yes/no answers to common player questions about specific types of shops or industry that are there or not (e.g., blacksmiths)
- - - - - - -

(3) NPC generation mini-module

If a new NPC (non-player character) is called for, there will be a screen that I can refresh to get a description of a random person's
  • basics: gender, age, name
  • place of origin
  • profession, station in society, and/or experience level
  • 1 or 2 distinguishing physical features (height, hair color, weight, clothing)
  • notable personality traits
  • major items they're carrying (money, food)
  • rumors they may convey to PCs
- - - - - - - 

(4) Random Events

This is the heart & soul of the program... but I've blogged before about what I'd want this to look like.  In short, it kind of unifies several other existing ideas in role-playing games, including
  • wandering monsters
  • random NPC encounters
  • location-based "shenanigans" (thinkin' of you, Jeff)
  • town/city rumors
  • adventure hooks/quests
  • things that seem like adventure hooks/quests, but aren't  :-)
- - - - - - -

  • I know I'm reinventing the wheel, but I've got to do it my own weird way.  I've already been scouring the internet for random tables that can be used to feed this behemoth.  As I build it, I'll keep a good honest log about where the ideas came from, in case I ever decide to make the code public.
  • In practice, I plan to override these random results from time to time, because there are some specific events and NPCs that I want to make sure the players encounter, at specific times.  I'll try my best not to turn these into opportunities for excessive railroading, or quantum-ogre-ism, or Mary-Sue-ism.  :-)


  1. Man, you get me jonesin'! Of course, the dice and the tables were more than half the fun but there's really no reason DMing shouldn't join the 21st century. We do want the next generation to fall in love with the game, too, after all...

    1. Our daughter played an ad hoc game with her daddy with stuff he printed out from some site and she enjoyed it enough to commandeer my D&D tee. It is literally in her closet, now.

    2. Amen to the next generation! :-)

      Seriously, though, it's great how the game can work on so many levels. Our minds are so eager to inject meaning & story into these little abstractions -- be they plastic tokens on a board or lists of strat-o-matic statistics -- that a wonderful time can be had even with almost no prep work. Still, if I do get back into this, I want to apply all I've learned from the great old-school bloggers about making it an immersive and epic experience for the players.

    3. I don't think it will happen for my daughter. Her interests tend in different directions. I have hope for Mock's son, though. He's already into Magic - D&D's the logical next step.

  2. Hey, you got a shout out over on my blog today. Please stop by to read the nice things I said about you:

    1. Thanks, Squid! Sorry for being out of the loop for so long... I'm working on a post that summarizes what we've been up to.