Friday, December 30, 2016

The Computerized Game


Recently I had the opportunity to play for a few weeks in an online D&D campaign. Playing D&D over the internet really got me thinking about how we can use computers to do more of the heavy lifting for player and DM alike.


Programs, apps, webpages: whatever the ultimate shape of the infrastructure, it should be able to facilitate the following broad functions:

  1. view and manipulate digital character sheets, including changing one's equipment, making notes, and writing descriptions.

  2. review information about the game world, such as geography, roads, weather, the current market prices if they're at a city, and so on.

  3. easily consult game rules (XP tables, skill rating, Hit Die sizes, weapon damage, action point costs) and figure out how they apply to one's character.

  4. discuss the game in a central location in order to make plans and ask questions of each other and of the DM where everyone can see and benefit from the exchange.

Current Practice for All-Online Gaming

Let's go over how the above functions are handled by current online services, in the case of online-only campaigns. Then we can tie them back in to use for traditional game sessions.

Blog and Wiki

In the case I am familiar with, Alexis's Juvenis campaign, the functions above are handled primarily by a one-two punch of the linked Blogspot blog and a Wikispaces wiki.

The blog is the centerpoint of the campaign, and it is not used for anything other than campaign activities. Scenarios are presented as individual posts, and activity proceeding from the setup of the scenario is handled by comments on the post. Since comments and posts are kept around in the blogroll, on-the-spot rulings, which come up for all kinds of edge cases, can be reviewed in future situations, or consulted for the purpose of updating the codified roles as maintained on the wiki. This is the wiki's main purpose: a central repository for the game rules, growing ever larger as more and more questions are asked of the DM and more and more types of activity and edge cases to existing rules are considered. In Alexis's case, the wiki also contains information pertaining to the game world, including all the maps he has created. In the case of large editable files, such as generated character background Excel sheets, the wiki's storage functionality is supplemented by a Google Drive folder; this is easier to upload to and download from, and furthermore allows easy collaborative editing without as much overhead as the wiki, and with a more pleasant interface.

The chronological order of the blog posts, with newer posts toward the top, makes it easy to navigate and to check whether there is new information. The sidebar, containing a simple directory of all posts, makes it easy to jump back to long-ago posts. And, when necessary, blog posts which are not about a game scenario can be made, for such topics as rolling new characters.

Posts can only be created by the blog administrator (I don't know if there is an option to allow other users, such as the players, to create or edit blog posts.) If the players want a space to discuss some element of the campaign which is not relevant to the current scenario, they must make a somewhat off-topic comment on a scenario post, or on a post which has previously been set aside for just this kind of question. Game-related but off-topic comments can slow down the pace of e.g. combat scenarios, but in practice, as long as they are not too numerous, it is not a big problem. D&D primarily proceeds by first asking/answering questions and then making statements, so having questions pop up all over the place is expected. It does, however, result in a scattered trail of question-and-answer precedents which, until they are added to the wiki, can only be sourced by hunting through the blog. Given the large question-answer element of a D&D game, however, to some degree this will always be the case, no matter the medium.

Thus, discussion of the game in a central location is handled by the blog. Consultation of rules is handled ultimately by the wiki, but in practice often by reference to rulings made on the spot in blog posts/comments. Review of world information is again primarily handled by the wiki, and as necessary farmed out to Google Drive (character background sheets and small-scale area maps.) But what about player management of their own records?

For Alexis's campaign, since players are required to make new Google accounts with their characters' names, the solution is to also create a Blogspot blog on that account, and store the canonical versions of character records there. "Canonical" as long as one keeps it reasonably up-to-date, of course. In practice, it will sometimes lag the actual state of the game, especially when the state is evolving quickly, such as in combat.

If the character record is plain text which can be copied into a blog input box, then using a blog is reasonably convenient. But if one uses a spreadsheet to make certain calculations automatic, as is the case with myself and other players in the campaign, then the upload is a little more inconvenient. I believe it is possible to upload a spreadsheet as an attachment to a Blogspot post, but if this is done, then the spreadsheet contents are not visible at a glance when visiting the blog. To achieve at-a-glance visibility, a screenshot must be used instead.

Both of these approaches share a problem: any update to the game state or any decision by the player to modify his record, no matter how small, can immediately make the record non-canonical. Each approach also has unique disadvantages: if a spreadsheet is not used to track information, all calculations must be done by hand, which leads to errors which are not discovered until hopefully) the DM or another player notices. If a spreadsheet is used, then it is harder to make it visible on a Blogspot blog.

The flaws of using a blog to store character information are overcome by using Google Drive. Spreadsheets can be uploaded, downloaded, viewed, and edited all in one place. What's more, there is now one central location for all player record information. This defeats the visibility problem inherent to "uploading a spreadsheet to a blog post," while defeating the "immutable-and-requires-manual-calculation" problem of using plain text instead of a spreadsheet.

In sum, the blog acts as the main meeting point for the campaign and the "testing ground" in which new rules are discussed, applied, and evaluated. Working drafts of the rules are added to the wiki and called out to the players by the DM. Refinement of the initial drafts is an ongoing process, as the rules are shaken out in the actual gameplay or discussed between active play sessions by the DM and players. The basic architecture of "establish precedent while playing the game (blog) and codify precedent and procedure in distinct but associated areas (wiki + G Drive)" is sound.


I haven't investigated this medium, but DMs who run campaigns with drop-in players by the FLAILSNAILS campaign-interoperability rules exclusively use Google+.

Google+ essentially functions like a blog, in that posts are made and can be commented on. I don't know whether a Google+ page can be shared so that anyone can make posts on it (which would be an advantage over the Blogspot situation above.)

Two Directions

There are two areas for which I want to explore the use of computer and internet tools for furthering the possibilities of D&D as a medium.

The first area is: encouraging players to come together and organize/plan between game sessions, and making game rules and information available. In short, the campaign must have an online presence.

Convincing players to keep the game in mind, plan for in-person sessions, and strategize may not be necessary for every group. It can happen spontaneously. But it could doubtless be encouraged by providing a blog, chat room (with message history), or similar low-weight group discussion area to the players, perhaps attached to the rules website itself.

Making game rules and organization available is accomplished by organizing and maintaining a wiki (or, in my case, this website) as an always-on, always-available documentation of game procedures.

The second area is: advancing the state of the art in computer tooling for both the DM and the players to manage, look up, and apply game information, including rules, character records, and the state of the game scenario. For players this includes digital character sheets which are more than just editable text fields on a webpage or in a spreadsheet, but which are integrated programmatically with other areas of the game, such as the equipment tables. For the DM this includes retrieving existing NPC data or quickly storing (or generating and storing) a name or stats for a novel NPC; receiving callouts from the program which manages game world state when it detects that a given player character is at a dis/advantage in the current scenario; or declaring that the effects of weather, area spells, and other complex mechanics have taken place, and having the computer update the state of affected entities accordingly.

(Aside: I assume that we can take laptops at the table for granted. It became the norm in my games for most players as soon as I started emphasizing this website's role as the knowledge store, and since I've designed the site to be minimalistic, even smartphones can view it easily. That said, I have noticed that some players get distracted on their computers during the game. This is partially my own fault for not being sufficiently engaging and I'm working to correct that. But I believe this may also be because it is not currently possible to use computing devices to their full potential at the table. If the character sheet was on the computer, it wouldn't matter if the player was looking at it all the time. Paper character sheet and the player is constantly staring at the computer? Unless they're studying the rules website or have digitized their character's inventory, it's a problem.)


  • What further improvements can be made to the concept of a "digital character sheet" beyond a spreadsheet in a Google Drive?

  • Can calculations for certain derived values (such as whether the character is carrying enough equipment to be encumbered) be done for the player without needing the player to program a spreadsheet, which may contain errors, or to do the calculation by hand, which is slower and even more likely to contain errors? If an error is found in the calculations, can the DM reprogram it easily, and propagate the reprogrammed version without destroying existing data? These are crucial characteristics for the design of a character page that adds value beyond being a mere digitization of traditional paper records.

  • Can the state of the game world be, to some degree, managed by a computer program or programs? At minimum we can consider a clickable version of the world map, for which the party can call up information about anywhere they've been, and which has a moveable "party" marker indicating the party's current location, thus supplying to the master "game world program" the area for which weather and other characteristics should be displayed. More complex versions would have more logic behind the scenes. A DM-accessible database containing NPC information, some with only names, some also with some or all stats determined, some also with equipment, and space for notes or reminders. Perhaps this program could be fed specifications of the consequences of weather, so that when "rain" is generated, so too is a popup reminding the DM to impose such and such penalty to attacks or such and such multiplier to travel damage.

  • Can digital character sheets be linked to said game world program for real-time updates? That is, is it possible to automatically, and in real time, apply game rules to character data with respect to the current game scenario? For example, if a druid character has the ability to sense ley lines within a certain distance, and the party's positions has approached sufficiently near a ley line, how can we make the druid's character sheet go ping and alert them to a ley line's presence?

  • Other than offloading knowledge onto the wiki for players to absorb, how else can we remove the DM from the process of rules consultation?

A Vision

The computer's ease of use for formatting, storing, and sharing digital documents brings us to the state of Alexis's game. I don't think it is an exaggeration to say that his work represents the cutting edge of DM technologies. Complicated artifacts, like the trade tables and the character background generator, are built up by combining myriad simple calculations into nuanced operations. But we can go further than artifacts which present a single facet of the game. We can build artifacts which communicate with each other.

The trade table should be a webpage and the character sheet should be a webpage, and I should be able to drag and drop items from the former to the latter, decrementing my character's available cash, until I run out of money or the market runs out of a given item.

A monitor process could govern the flow of time in the world. The party decides to stay in town for a month to do some crafting. The DM types the length of time -- thirty days -- into the input, and the game simulates at least some of the effects of the passage of thirty days. I emphasize "some" because I know there will always be effects which the DM has not preprogrammed, but the more heavy lifting the computer can do, the better. Perhaps money for basic foodstuff is subtracted automatically from the character's sheets -- with a DM option to suppress this feature and let players figure it out themselves, if they decide they want to use their gold coins more efficiently than the unoptimized default provided by the computer. Perhaps the season turns to winter, and the character with a susceptibility to cold damage is advised, by an alert on her personal webpage, that on days colder than 40 degrees the character will take double damage from traveling.

The monitor process may be more general than a time checker. It might also automatically consider rules, as programmed by the DM, to display the case that fits their situation. Consider: your character approaches a cliff and wants to climb it. The DM states its height (and difficulty, and whatever other factors one accounts for.) The player plugs this into a "climbing" form on their character page, which prompts the monitor process to chug through the character's class, level, race, and background details, spitting out the number the character needs on d100, and the number of d100 rolls needed, to climb the cliff. (If you aren't sentimental about dice, the rolls can be done automatically too; this works fine for the DM who could use a load off, but players like to live or die by their own hands.) In an important further refinement, the process could, instead of presenting the result directly to the player, present the rule-defined result to the DM for tweaking, thus acknowledging and routing around the fact that not all scenarios can be programmed ahead of time -- as long as the magnitude of the tweak is made known to the player, so that DMs must justify scenario-specific tweaks, lest they be shamed as a fudger.

I want to be able to mark the recipes in my trade system as "armor," "weapon," and other categories, and have the character page slurp up those categories and build dropdown lists for characters to select their weapons with handy blurbs immediately accessible -- limited, of course, by their current inventory. Obviously there's some concern about things like improvised weapons: do I have to include weapon stats for every item that might conceivably be used as a weapon? No, a generic list is possible. And when there's an exceptional case, it should be possible for me, the DM, to edit the contents of the player's inventory, or drop in arbitrary items not present on the equipment table. The die says your weapon broke, and with a few seconds' work I as DM can edit your sword into a damaged one, or perhaps the computer will pick the way in which it breaks. You pick up a funny rock, and at my computer I'll write in "funny pink rock found 11/23/1701" and send it to your character's page, along with its weight.

We are going to have to take lessons from videogame design, from programming, from website design, and from human-computer interaction if we want to discover the shape of 21st century D&D.

Saturday, December 10, 2016

Continual Refinement

My game is on hiatus until the new year, give or take, as the holidays descend upon us and we all scatter to visit our families. I'm still in school, although classes themselves are over: finals are next week and the deadline for the first chunk of my thesis is in a week's time.

The other day, in between work on my thesis and my classwork, I made time for some D&D work. Apart from futzing with rules for light and illumination (still rough), I reworked my drunkenness table (based on Alexis's post here) so that it is much easier to use.

Here is the original version before my rework. The player has to find the right row for their Constitution score, then remember whether or not they have to account for their current drunkenness, then try and figure out how many of each kind of drink they've had and how to add those together, and only then can they figure out their intoxication level. In short, it was slow and clunky, and since I couldn't account for someone drinking both kinds of alcohol, it felt pretty artificial.

The new calculator is a breeze. Put in all your values and don't adjust Con for your current soggy state, put in the number of drinks so far, and boom, your intoxication level is presented.

I chose not to add the effects of each intoxication level because I am still tweaking those. They are on the website, here.

Anyway: the point of all this is that this is just plain how working on D&D goes. You make a thing and either it's just plain bad or it's OK but it slows the game down. You figure out where the sticking points are and you make it better. When it's roughly how you like it you put it aside and turn to some other thing, confident that maybe next year you'll have an epiphany and rush back to the thing you set aside for some more fiddling.

A year ago I had nearly nothing made and was basically just getting back into D&D after a couple years feeling discouraged and not up to being a DM.

And now?

Now I have maps like the one here. Even if they are low on detail and the world they depict is made up, they exist.

Now I have a trade system based on the data in those maps, which is up to 148 items: double the amount I had programmed when I showed it for the first post on this blog! (That comes as a real shock, believe me. Who knew I'd added so many odds and ends to the equipment list?)

Now I have a website with no small number of my rules on it (even if it's a bit clunky to maintain).

All of these are progress. I wonder where I'll be next year? Better keep working to find out.

Wednesday, November 30, 2016

This Man is an Impersonator

Here is the more-polished half of my current notes for the assassin skill, Impersonation. I have had a good burst of assassin-related ideas recently.


Impersonation is pretending to be someone you are not, whether subtly (through your speech and your motions) or overtly (through your appearance and your skills).

Core Ideas

The further removed you are from the target, the harder it is to impersonate them.

The further removed an observer is from the target, the more likely they are to take your disguised self as genuine.

If you spend time in proximity to an observer who is suspicious of you, they will periodically make checks to see if they become more suspicious of you. If they fail these checks, their suspicion will lessen, and the periods between checks will grow greater, until eventually they are no longer suspicious.

On the other hand, if someone doesn’t see through you right away, they’re not going to get another chance if you don’t stick around. Move fast, assassin.

Physically disguising the body is only one portion of impersonation. Depending on the scenario, one must also take care to disguise one’s voice, odor, or, most importantly, mannerisms. Here, “mannerisms” is considered to encompass all factors of a person’s personality, even those which are not explicitly described during the course of the game.

The next section discusses those factors which influence the accurate acquisition of a person’s mannerisms.

The amount of time the character spends acquiring target mannerisms, as well as the character’s level of skill in impersonation and the exact talents of impersonation which they have acquired, will determine whether they are able to imitate specific persons or not (the difference between imitating “Jergen the alcoholic, down-on-his-luck timber merchant” and “a timber merchant.”)

Disguising as a specific person will require the assassin to spend more time observing said person.

Factors Related to Acquisition of Mannerisms

Time Spent Observing

One dimension is how long you have observed a person, or a type of person, in order to imitate their characteristics. [What counts as “observing” a person is yet to be detailed.]
  • have never observed them
  • have observed them for less than a month
  • have observed them for 1-6 months
  • have observed them for 7-12 months
  • have observed them 1-3 years
  • have observed them 5 or more years ## How Close You Are to the Person
  • have never been in contact with this person
  • are from the same area, but at best have met them briefly or just seen them around
  • as above, but you are in the same profession or have spent time casually with them
  • have spent time with them to conduct professional or official business
  • have studied, worked, or fought alongside them
  • have done them a non-trivial favor
  • are friends with this person
  • as above, and have been friends for at least 1/4 of your life
  • are in or have been in a romantic relationship with this person
  • grew up as part of this person’s family
Additional factors are social class and cultural background.
  • are/are not in the same social class as this person
  • are/are not from the same or similar cultures

How Close the Observer Is to Who You Are Impersonating

We could use exactly the same factors as detailed above in the section “How Close You Are…”, or we could use the following condensed list. (Heck, we could replace the list above with the below one. Whatever floats your game-boat.)

When compared to the target, the observer:
  • is from the same area but a radically different social class, or is from an area distant enough so as to not know them (the exact distance varies based on geography: two mountain villages might only be five miles apart, but their residents mostly wouldn’t know each other.)
  • is from the same area
  • is from the same area, and might be an acquaintance (moves in the same specific social circles or has the same profession)
  • is a coworker, compatriot, or neighbor
  • is a family member or lover

Players Paying Attention

Player observational skills are not obviated by the presence of the character’s impersonation talents which deal in counter-recognition of disguised or concealed enemies.

Disguising yourself as bandits coming back from a hunt in order to get into their main encampment will work only if it fits with the facts, i.e. if:

1) some of the bandits went out for a hunt already and haven’t come back, and

2) you are not trying to do anything other than get in

Thus the player will not be successful if they speak thoughtlessly. In general, the principle is that character skill cannot undo pure player error, except in special circumstances which are almost always known ahead of time. (For example, a character with high Wisdom may gain from the background generator a once-a-week ability which allows them to retroactively have bought one item the last time they were at market.)

Tuesday, November 22, 2016

Metal Smelting Problems

I need some help with aspects of my economic system related to metals and the manufacture of metal goods.

For example, I want to figure out more accurate values for the amount of coal needed to produce enough heat to melt metals for smelting.

I can find values online for the BTU produced by a given unit of a given type of fuel. And I can find the melting points of various metals and metal alloys.

But how many BTU are needed to reach a given temperature in a forge's hearth, and how long does that temp need to be maintained? People who burn coal to heat their homes have created online calculators to estimate how much coal would be needed to keep a room of a given size heated to a given temperature, but their answers don't agree with each other in the slightest.

Here are the questions I'm struggling with, as many as I can think of:

- how big is the hearth in a forge?
- how many BTU are needed to heat an area of a given volume to a given temperature?
- what is the relationship between the melting point of an ore, pure metal, or alloy, and the temperature needed to smelt it, or forge it? Do you need to reach the melting point, or do you just need to get the metal to a certain level of workability? (Presumably this differs for smelting from ores vs. smithing from already-made ingots.)
- how long does the smelting temperature or temperatures need to be maintained in the hearth? Does this vary between metals?
- how much limestone or other flux is needed when smelting and forging, and with what other variables does that amount vary?

If you can offer help or resources to read, I'd be grateful. I'll be having a poke around the library and in my friend's blacksmithing books when I can, too.

EDIT: I found digital editions of contemporary (17th century) sources through the library's subscriptions. The work I'll be looking at first is A Discovery of Subterraneal Treasure, by one Gabriel Plattes, published in London in 1653. There are others; we'll see what I can dig up. Luckily, 17th-century English is still pretty readable!

Wednesday, November 16, 2016

Insult Party

A brief session recap.

In our most recent session this past Sunday, the party met and drank with a local merchant who they'd met on the road, and agreed to sign a contract with him the next day (a contract to do something dangerous to benefit his business -- I'll skip it for now.) The same evening, though, they got to scheming: suppose they were to go and find this guy at home tomorrow morning, while hungover, and just take him out? That way they could earn the money he was going to pay them without having to do anything more dangerous than killing one small-time merchant.

The next day they set out, but the unofficial couriers don't keep addresses (you have to tell them where to go). A bust. By way of a quick lie could they get the merchant's home address out of the town records office ... only to find, when they arrived at the Street of Coopers, that he was not at home. Another bust, they thought.

Turning to go, they noticed a certain man exiting a metalworker's shop across the way. They knew him to had a thief and they'd had a short scuffle with him a day or two before. I'd already made it clear that there were people going up and down the lane, and students hearing a lecture in a small park nearby ... and being in town, the party had their weapons stowed out of sight.

"The guy notices you as he's hefting his sack. He glares, and approaches the steps where you're standing. What do you do?"

What followed was a exchange in which, among other things, the thief claimed he had lots of friends and was going to seek revenge on the party, and the party generally derided his skills and spat at his claims of having the ear of more powerful persons. It went on for at least 10 real-time minutes, almost non-stop, punctuated only short lulls and one "what do we do" huddle as the thief started to walk away. (They followed him and kept at it.)

This exchange was heated and incredibly tense. There were insults on both sides. There were threats and escalated counter-threats. The two sides almost, almost drew weapons ... but not quite. And the players were never 100% sure how to proceed.

I am proud that I roused the players with my little scenario, and I am proud of my players for absolutely blowing away my expectations for how much emotion I was going to elicit. I have to count this as a win for me, because I don't think I could have gotten this kind of emotional response out of players when I was younger and less experienced at DMing. I have had the first indication that three years of rustiness has been shaken off.

Monday, October 24, 2016

Desert Shots

In this New York Times article about the desertification of Northern China, there are some great drone-camera videos of the landscape. The article is light reading and the imagery is top notch. Have a look.

Got it?

As the players have decided to undergo a journey of perhaps a hundred miles to return an old man to his hometown, I've taken a stab recently at the roughest, crudest possible first version of my own wilderness/travel damage system (as originally conceived by commenter Zzarchov, and implemented by Alexis here and elsewhere, and discussed here too.) Thus I find this kind of material inspiring. Traveling from place to place should not be a cakewalk for the characters. It should sap their energy and wear them down so that that every roadside inn, oasis, fellow traveler sharing food, or friendly forest creature is a boon.

So far my version is very simple. I'm just about ready to program basic clothing items into my economics system, so there will be a few different options for shirts, pants, types of shoes, and other things. The better protected you are, the more the base damage (which grows faster the more days you spend away from civilization) will be mitigated ... but spend too long in the wild, roughing it, traveling on backroads or in shitty weather, and the daily tick-tick-tick of a few damage here, a few damage there will catch up with even the hardiest character.

Luckily for my players there are a couple major towns along the way ... but they're only first level, and they're headed for areas with tropical and monsoon climates. I've lived in a monsoon area before and it was miserable enough without having to go trudging along dirt roads which are quickly turning to mud, knowing that you've probably no chance of finding a dry-ish place to camp tonight. In that scenario, any kind of shelter would be welcome. But, with some of your HP missing, you'd be in no shape to oust some bears or goblins to claim a cave ... unless you were really desperate.

Better to pay some cash at the inn, and go treasure hunting when the weather changes.

Friday, October 21, 2016

Cultures and Skills

As I go along I am starting to think that the knowledge skill system has more potential than the (admittedly massive) task of defining exactly what information the player character knows about the world, and exactly what capabilities the character has as choices for maneuvering and manipulating in the game world.

I think the knowledge skills could also serve to define the knowledgeability of a society. And this could, for starters, be based on the Intelligence (or other scores) of the society's inhabitants.

Human intelligence, assuming you use 3d6, is an average of 10.5, which we could treat as meaning the maximum number of knowledge points a human can accumulate in any one discipline is 105. In addition, I also note that we could round 10.5 down to ten so that human character scores can go up to 100, a nice round number. I've been treating 100 as the maximum number for my knowledge skills, so maybe I'm biased, but it's nice to have a maximum number is easily understandable by everyone while still having lots of room for fiddliness.

Of course there may be techniques beyond the human racial limit. And furthermore I suggest the limit be based on the average of human intelligence, and not be subject to decrease or increase based on individual character intelligence.

In this case, then I believe that technological and industrial knowledge, in the "Civilization" videogame sense, should definitely be included as types of knowledge ... or, from a different perspective, I believe that the character knowledge skills should fit into and draw from a wider cultural framework. Not just adventuring-type stuff, although some things can be just about that. I'm talking things like pottery, weaving, combined arms attacks, civics, bureaucracy: material, political, and cultural "technologies," i.e. types of knowledge.

This implies that the knowledge skills are accessible to NPCs, which I have already been doing. That's where the "sage skill" concept comes from, after all: the idea that some NPCs have expert knowledge. Knowledge skills as they work now are just granting that knowledge to the player characters, too.

Now let's look at a non-human society.

Suppose the book lists goblin intelligence as 6. Taking that 6 as an average (a die roll of 2d5), then we determine that goblin cultural practices (and the knowledge skills of individual goblins) can't go past 60 points (again, per-discipline.)

If we have skills for theology which actually reveals true facts about the fantasy game world, for the burial of the dead to prevent their rising or to have them go to heaven, for the rituals of marriage which actually bring a real mathematical effect into how characters are played --

-- then those skills in that category which goblins can't access are things which goblin culture has very little of. Only the most advanced goblins (who had actually achieved a 10 on 2d5 for their Intelligence) would even be capable of conceiving of, or exploiting, the social and ritual practices laid out in higher tiers of the religion skill. Thus goblins do not bury the dead "properly" except in one or two goblin towns which have hit on the practice, and thus zombies plague goblin settlements more often than they do human ones. Thus goblins have not grown to be as large a society as humans.

Likewise, goblin society may have not arrived at magical or scientific processes to reliably cure disease, make stirrups, have a political system more advanced than that of individual clans or chieftains, practice advanced alchemy or undeadcraft, and so on. Whatever stuff is located beyond 60 points in the knowledge trees.

The most elite of goblin intellectuals would be arriving at conclusions which are commonplace in human society, but the bulk of ordinary goblin society -- religion, politics, defense, military tradition, sexuality, etc. -- would be based on a max of 60 points in those subjects for the average goblin.

And yeah -- that does suggest there should be a knowledge skill for the social conception of sexuality. The low ends could be "low tolerance for abnormal or unusual sexualities and preferences", with appropriate mechanical constraints on character behavior. Pass a certain threshold and your character is considered tolerant of said features of other people.

Human characters could start with whatever level you wanted in this skill, whatever is appropriate, maybe based on their Intelligence score or Wisdom or Charisma or whatever you want. Setting a base level of points in this kind of social skill would be an interesting way to replace the background result Alexis (and I) use in our character background generators, in which characters of low to middling Int have a chance to be racially or religiously intolerant for the first few levels of their life.

Wednesday, October 19, 2016

The Thief and the Cobbler

I watched plenty of animated movies as a kid, but only one has stuck with me for years and years: The Thief and the Cobbler. It wasn't a Disney movie, it wasn't any big-picture studio -- I always had the vague idea it was some small British outfit -- and it was totally surreal and artistic and unlike the other movies I was exposed to as a child.

Today, while talking with my friend Caroline who is heavily into animation, I learned that the version of the film released on video, as I saw it, was a cobbled-together, big-studio-driven money-recouping edit of a piece of handmade animation art that one guy worked on for years.

And as he has grown old, other animators have come together to realize, at least in part, the vision that he grew one frame at a time for more than 30 years, all by himself. This version, called the "recobbled" cut, can be viewed below, but note the following:

  • YouTube blocks some of the middle segments of the movie and you'll have to go to Vimeo to see them, or use a country-spoofing browser extension of some kind
  • for us the audio was about 15 seconds behind the video, so we opened two tabs and delayed the video in one, then muted it and ran audio from another copy of the video. Worked fine.

Go have a look, it's gorgeous. Completely gone are the songs they put in to make it a kiddie movie, and gone (as far as I saw) are the speaking portions for the main character. Try and remember as you watch that everything you see was hand-animated. Hand-drawn, one fraction of a second at a time.

And if you can't find twenty D&D-able ideas within this movie, you're not looking hard enough.

Final note: you can watch the documentary Persistence of Vision here. It is about Richard Williams and his quest to realize this film, his magnum opus. I have not watched it yet but I shall. And what a good title, too.

Wednesday, October 12, 2016

Chew on Some Undead

First off: this isn't an apology post. Here's something a bit substantial which I tackled lately: the rules for handling the creation of undead. They're not complete but the concepts are there.

Most of the work I've done on D&D in September is just adding miscellaneous rules the website -- and I've barely even been doing that for the last couple weeks. Things aren't hectic at school, and my free time hasn't decreased too badly, but what's happened is that my spare mental energy has gone down. And I've been running a game again for five or six weeks now, after not actively DMing for three years.

You can read the intro below.


Undeadcraft is the study of techniques used to create the undead. As deadly and utterly loyal servants, undead may seem to be simply the mage’s answer to the druid's golems. But the comparison goes deeper than just the creation of servants. Many aspects of undeadcraft are tied to phases of the moon and other lunar phenomena, making this study a kind of twisted counterpart to druidic magic.

Tuesday, September 6, 2016

Sweat to Keep Up

At the last session, I asked for help remembering all the rules topics which had shown, in the course of the night, to need expansion. I know my players are great, because they immediately helped me out. Therefore I know they're concerned with precedent and with building the rules, which means they are going to care about the game, which means they are going to make me sweat to keep up with them.


Monday, September 5, 2016

Two More Knowledge Skills

Things are a bit busy for me as school picks up, but I have begun running D&D again and I dare say it's going well. Two sessions so far. I have a few players, friends all, who I think will show up to all or most sessions, and they have friends who they want to bring in on the fun, so clearly I'm doing something right.

Most of my D&D work as of late has been plugging away at the website. In particular I've begun adding my own conception of knowledge skills to the appropriate character classes. The Poisoning and Subterfuge skills have not been posted on this blog, so go take a look!

Friday, August 26, 2016

The Full Website is Here

You may have noticed, all two of you, that this website is hosted at

Have any of you tried to go to the plain old address?

Well, as of now, my website is live. It's going to be a place where I put allllllll my rules documents, nicely formatted and hyperlinked so that both the players and I can easily access them during the game. There's no easy way to keep the rules all in my computer and still actually use them.

I'll be transferring them from the plain format text I've been using to the format which my programs turn into a webpage, one by one.

I'll still post on this blog, especially when I add a big chunk of new stuff to the website, and when I have ideas that need hashing out or bouncing off of others. But the rules-as-I-use-them will live at the main website.

I'm quite excited to be doing this. The site is completely under my control, unlike the blog, so I can tweak it until it's just right. I might even end up moving the blog over to there at some point. We'll see -- that's not high priority by any means.

Thursday, August 25, 2016

Closing Thoughts on Training

I tackled the subject of training non-leveled individuals a few times recently, and having gotten some feedback from Alexis, I believe I've arrived at a useable version which can serve as a good foundation for future improvement. At any rate I'm going to set them aside at the moment, and focus on another little project which I'll be posting here very soon. Stay tuned for that, and in the meantime, here are the Training and Instruction rules as I'm going to use them for now:

Training is the process by which a leveled trainer teaches an unleveled person, called a trainee. By this process, the trainee literally gains experience, and thus XP, over time. Through this XP gain, the trainee can eventually count as combat-trained, or even reach 1st level in the trainer's character class.

I will first describe the mechanics, and then discuss implications and possible expansions for these rules. Examples will be presented as we go along.

The base age for a player character in my game is 15; a random figure is added to this based on the character's class, to represent time spent in training. For fighters this additional number is 1d4 years, for mages this is 2d6 years, and other classes have other figures. We'll call this roll the "training dice."

Unleveled persons start at -1500 XP. They become combat trained at -1000 XP, and gain 1st level at 0 XP. Thus, between totally untrained, and freshly 1st level, one must earn 1500 XP. We can conceive that this XP is earned slowly, over time, through grueling effort and practice. The idea is that we are going to apply the training dice at a monthly interval in order to determine how much XP the trainee has gained from training that month. But how much XP will the roll represent? Depends on the class they are training in, since each class has a different average length of time to do training. Therefore the period over which the 1500 XP is earned may be shorter, meaning more XP/month, or longer, meaning less XP/month.

Let's do the math.

Take the maximum result on the training dice for the trainer's character class and divide 1500 by this number. For fighters, this would be 1500/4 years = 375 XP gained per year. For mages, this would be 1500/12 years = 125 XP gained per year. However, we want monthly figures, so we'll divide these results by 12, rounding as normal for counting numbers. For fighters this would be 375/12 = 31 (rounded down from 31.25). For mages this would be 125/12 = 10 (rounding down from 10.42). This final number is called the "base monthly gain."

Now we come to the training roll, the core of the process: after each month of training, the trainee rolls the training dice, MINUS the number of dice there are. (This is in order to sometimes produce a 0 result.) So trainee fighters would roll 1d4-1, and trainee mages would roll 2d6-2. The result is then multiplied by the base monthly gain, and the resulting product is the actual amount of XP the trainee earns that month.

Example 1: Frederick the trainee fighter rolls 1d4-1 after a month of training, and gets 3-1 = 2. He earns 31*2 or 62 XP for this month. Not bad!

Example 2: Molly the trainee mage rolls 2d6-2 after a month of training, and gets 2-2 = 0. She gains 0*10 = 0 XP this month. What a pity!

There must also be rules for total failure to learn, or "washing out." If any of the first 6 training rolls the trainee makes comes up with the minimum on the dice, then they must make a morale check. Failure means they have washed out: they are simply not cut out for this kind of training. A trainee who washes out keeps all the XP they've gained so far, except for the month they wash out; however, they cannot continue training in this particular character class.

A word about costs for materials and equipment: it's a placeholder, but at this time I'll simply say that training one trainee for one month requires a number of gold pieces equal to the average result of the training dice times the base monthly gain. For example, the cost to train a fighter trainee for one month is the average of 1d4-1, or 1.5, times the base monthly gain of 31 XP, for a monthly cost of 46.5 GP. One could expect the trainer to pass this cost on to the trainee as they see fit. I'm open to suggestions on this calculation, and it's absolutely not game-tested yet, nor does it fit in with my other economic calculations.

Let's step back and plot our course a little. There ought to be ways to earn bonuses for the training roll, thereby increasing the average XP the trainee earns, and negating the possibility of getting a 0 for the month's XP gain. There are also provisions to be made for determining how many trainees a single trainer can train at once. It would certainly make sense to be able to train another in a weapon proficiency. And obviously we'll need rules and training benefits for establishing a school, whether they take the form of a monk's dojo, a fighter's barracks, or a thief's underground den (at last, a concrete reason for a thieves' or assassins' guild to actually exist!)

All of these and more are the domain of the Instruction skill. I'll let any player character train someone into their class, but those with points in Instruction will be able to do it more efficiently, more quickly, or for more people. Here are a couple of the things I'm considering for the skill of Instruction (all subject to change, of course.)

No Knowledge
The character is ignorant of methods of efficient instruction. They can only use the training rules as given above.

Multiple Trainees (20)
The instructor can train more than one person at once. They can train 1 trainee per 10 points of Instruction knowledge.

Establish School (50) (basic rules; more detailed ones will come later)
If the resources are available, the instructor can establish a school. The school must have at minimum its own living quarters and some kind of special area for instruction; depending on the type of school, this might be a sparring room, a lecture hall, or even a garden or wilderness area on a separate piece of land. Certain types of school may require additional facilities; for example, a school for training mages will require a laboratory and a library.

All trainees at a school will receive a +2 bonus on their training rolls each month. Furthermore, any instructor working at a school will enjoy a +3 bonus to the number of trainees they can personally train at one time, which of course stacks with the benefit of the Multiple Trainees knowledge.

Some types of schools can train more than one type of character class, as long as an appropriate instructor is available. For example, it's reasonable to allow an appropriately-staffed magical college to train both mages and illusionists.

Sunday, August 14, 2016

Another Go at Training

Here I'll continue to talk about training non-leveled persons to 1st level, as I have been discussing these past few days. Let me remind you that when I say "training," I'm not talking about gaining levels, I'm talking about gaining actual experience (as well as the quantified version, experience points) for the purpose of becoming a 1st level character.

Alexis brings up the point that just rolling a die for the number of years necessary for training isn't enough. Training has to be less cut and dry than that, and it has to include the possibility of failure.

Today I'll try to define some potential outcomes of the training process talk about the potential outcomes of the training process. Consider the following continuum of results, arranged from worst to best:

  • Trainee fails utterly. They gain little or no XP.
  • Trainee struggles miserably for a protracted period, but ultimately fails. Some small amount of XP is gained.
  • Trainee tries hard but is simply not good enough to gain 1st level. However, they have gained enough XP to be considered combat trained, and thus could serve as a man-at-arms.
  • Trainee succeeds, but with complications. This might mean that they took longer than usual, or that the training was incomplete. Incomplete training could indicate starting with some negative XP, or with one less weapon proficiency than normal, or with -1 to the HP they gain for 1st level in their class.
  • Trainee succeeds and is a normal 1st level character.
  • Trainee is exceptionally skilled, and completes training in a relatively short time.

So we have a nice spread of outcomes, three types of failure to achieve 1st level, and three types of success, one of which has a negative side effect. For starters, let's have two little rules:

1) roll dice, specific to each class, to determine the length of time spent in training. For fighters this is 1d4 years.
2) roll 2d6 for the outcome of training, below:

2: utter failure. (d4-1)*50 XP gained.
3-4: struggle and failure. d4*100 XP gained.
5-6: not good enough for 1st level, but gains combat training; thus XP gained is a minimum of 500.
7-8: trained, with complications (roll d6: 1-2 missing a weapon proficiency, 3-4 starts with d6*50 negative XP; 5-6 starts with 1 less HP than normal)
9-11: trained normally
12: trained, and quickly: halve the result of the length-of-time die, above.

There we are. This won't win any awards, but it's a sight better than just rolling the number of years and being done with it, no?

Let's address a couple things which would influence the 2d6 roll for training outcomes.

We might have the skill of the trainer factor in. I don't have concrete numbers for the skill of training others in character class abilities, but on the basis of the other skills I'm working on, it might be roughly in the range of 10 to 100. In this case we might give a +1 bonus on the training roll for a Trainer skill above 30, and +2 for a skill above 60. Please understand I'm just tossing out figures here.

Furthermore, there is the question of the trainee's ability scores. For starters, we might award +1 on the training roll if the trainee's scores are high enough to meet the requirements for 10% bonus XP, which vary from class to class (for example, in my game Fighters get 10% bonus XP if they have a Strength of 15 or higher.)

OK. These are my thoughts on the matter. I think this is an improvement over the ruminations in the last couple posts. Please enjoy.

Thursday, August 11, 2016

Training an Individual

Alexis left a comment on my post about training soldiers, asking how I'd handle the party training one lone individual instead of a group of them. Here's what he had to say:

"I can see the logic here - particularly in establishing a minimum time. I find I want some sort of random roll, however, based on a person's temperament, ability, intelligence, failure to get his or her self injured, etc. The above seems a bit, well, pat for me. It works for mass armies - but supposing the players pick up a lone, non-combat trained person in their travels, who wants to become an adventurer - say, a 15 year old boy. How would the system deal with that?"

If he wants to accompany the party right now: he takes an easy swing in each fight the party is handling and therefore gets a small slice of bonus XP for himself. Do it enough to get from -1500 to 0 and he's a level 1 fighter.

If the party wants to train him all the way up to a level 1 fighter by "zooming out" for part of the session and skipping over a period of game time, then one could just roll a d4 to find the years necessary to train him.

Or... if you want to make the transition to "this many years later..." less abrupt, just roll d4 for a target of 4. If you get a 4 he's been trained after one year. If you fail you roll d4+1; success means he's trained after 2 years. If you fail again you roll d4+2; success means he's trained after three years, and if d4+2 again failed to get a 4, then it took all four years. Similar to rolling d4 for number of years, but nobody (including the DM) will know in advance how many years, which is better.

Of course, both of the above could use a d8 if you want to find the number of 6-month periods instead of the number of years, or a d16 if you want 3-month periods, and so on. In each case the target number is the maximum on the die, just like aiming for 4 on d4.

One would also be free to mix and match between training with a trainer and training by taking him along right away, although in that case I'd encourage doing whatever training you want do first and then taking him along. Otherwise he'd have some XP already when he went back to training through a trainer, and thus we'd have to figure out how much XP each time unit means. A fun rabbit hole, but it's beside the point at the moment.

Finally, all this would imply that one can hire a trainer to bring a favored NPC to first level. I'm certainly on board with that as a service players can access, because it also suggests the possibility of training skilled but not-necessarily-leveled workers. Perhaps I could generalize "combat training" at -1000 XP into a notion of "professional training," to handle these cases, since not all professions correspond as neatly to a character class as a soldier/man-at-arms corresponds to gaining fighter levels.

I wouldn't allow such outsourced training to take the NPC above first level though. Gotta earn those levels the old-fashioned way.

Sunday, August 7, 2016

Alchemy for You

Lately I've been playing with rules for Alchemy, a knowledge specialty accessible to mages, and maybe druids too. I haven't decided on that. I'm still on the fence over whether classes will share any trees. Thief/assassin, druid/ranger, paladin/cleric, fighter/other fighter-types, mage/cleric: all of these pairings might conceivably share one or more skill trees.

OK, no more preamble. Here's what I have so far. None of this is written in stone of course -- tear it apart, please. I wish I had a tree-like visualization for you, but not yet.

Alchemy is the study of, extraction, and manipulation of energy from both ordinary and magical materials. It is considered a branch of magic, although it is not concerned with manipulating energy in the same way spells do. In real life, the term "alchemy" is also used to refer to hermetic, mystical, and occult practics which were considered related to what we would now recognize as proto-chemistry; however I will be treating such practices in a separate skill specialty. Here I focus only on the chemistry and pseudo-chemistry type of alchemy.

Unless otherwise stated, a period of "lab work" means that for the given duration, the character must spend a certain amount of time in the lab or there will be a chance of the progress so far being lost. The default assumption is five 4-hour workdays required per week of the duration, and that each missed day means a cumulative 2% chance of all progress and materials being ruined. Finally, the vessels and glassware used in alchemy must regularly be coated with a substance called "fat lute," a mixture of clay and oil which forms airtight seals and protects against fire damage. Each day in the lab is assumed to use up 1d3 oz of fat lute, because once applied, fat lute loses its moisture and becomes useless over time. Surplus fat lute can be stored in an airtight container until it is needed.

No Knowledge
The character is ignorant of all alchemical processes, theories, techniques, and products.

Construct Lab (10)
The character possesses the knowledge to safely set up, use, and maintain/repair alchemical equipment. Most alchemy skills require a lab; without this knowledge, the character will only be able to perform those skills if they have gained access to another alchemist's lab.

Animalcules (10)
A character with this knowledge can extract a foam of animalcules by dissecting a creature's genitals. The genitals must be not less than a day old. 1 oz of foam can be harvested from a creature of 250 lbs or less, plus an additional ounce for every further 250 lbs. These animalcules contain potential energy within them which can serve as the base ingredient for certain alchemical items, such as potions. If consumed as-is, 4 oz of foam will restore 1 hit point.

The process of dissection and preparation will take 1 hour per oz of foam, and for each oz of foam an Intelligence check is required for successful preparation. Foam will retain its potency as long as it is kept in an airtight container; it will become useless after an hour of exposure.

Aqua Fortis (10)
The character can produce aqua fortis (nitric acid). This requires 2 days of lab work. Producing 1 vial requires 2 pounds of copper ore (only some of which is assumed to be copper nitrate, the mineral required.)

Aqua fortis can dissolve base metals. It does not react with gold, platinum, or other noble metals; thus it can be used to test the purity of a gold alloy, by seeing how much the alloy's color changes in the presence of aqua fortis.

If used as a splash weapon, a direct hit with aqua fortis deals 3d6 damage.

Green Vitriol (10)
The character can produce green vitriol, also called copperas (iron II sulfate). This requires 1 day of lab work. Producing 1 vial requires 2 pounds of iron ore.

Apart from its alchemical uses in producing certain powerful acids, green vitriol is used in several industries to produce green or blue coloration. It can also be used to precipitate gold which has been dissolved in aqua regia.

Oil of Brick (10)
The character can produce oil of brick with 1 day of lab work. The ingredients are simple: 1 vial is produced from 1 brick and 1 pint of any cooking oil, such as olive oil.

Oil of brick is a medicine. Consuming half a vial will prevent a character from suffering the ill effects of motion sickness, migraines, or seizures for the rest of the day.

Homunculus (20) (requires Animalcules)
By carefully nurturing 12 ounces of animalcule foam, the character is able to cause it to coalesce and grow into a homunculus. The process of transforming animalcule foam to homunculus requires 3 months of lab work.

A homunculus is a lumpy, humanish figure, 18 inches tall. Its body is somewhat pliable and it will both mold itself to complete tasks, and allow itself to be molded. It has 1 Hit Die, which is worth 2 HP per level of its creator; it cannot feel pain, but will collapse into foam if these HP are depleted. A homunculus does not really have any intelligence of its own, but it is able to feed off its creator's mental energy, and respond to its master's commands. It has 3 AP and a Strength of 3 but is totally incapable of making meaningful attacks.

Spirits of Salt (20)
The character can produce spirits of salt (hydrochloric acid). Producing 1 vial takes 2 lab days, and requires 1 pound of salt and 1 vial of green vitriol.

If a vial is thrown, spirits of salt will mist out to a 5-foot radius. All creatures caught in the mist will take 3d8 damage (Poison save for half).

Oil of Vitriol (20)
The character can spend 2 days in the lab to produce 1 vial oil of vitriol (sulfuric acid). The ingredients are two vials of green vitriol.

Oil of vitriol is extremely corrosive. If thrown as a splash weapon, a direct hit deals 3d6 damage; if the splash-weapon save vs Blast fails, oil of vitriol will deal a further 2d6 damage the following round.

Aqua Regia (20)
The character can produce aqua regia, a mixture of aqua fortis and spirits of salt. Producing 1 vial requires 2 lab days. The ingredients for each vial are 1 vial aqua fortis and 3 vials spirits of salt.

Aqua regia is so called because it can dissolve the "noble" metals, including gold and and platinum.

If used as a splash weapon, aqua regia acts as aqua fortis.

Diana's Tree (30)
The character can produce Diana's Tree, a crystallized silver form which embodies alchemical properties of life. The required ingredients are 1 oz of silver, 2 oz of mercury, one vial of aqua fortis, and 20 oz of distilled water. The ingredients are mixed and then left alone for 40 days, at which point the process is complete.

Diana's Tree functions as a strong restorative. The recipient crushes the Tree and rubs the mush on their skin; healing begins the following round, restoring 6 HP per round for one minute, for a total of 30 HP.

Alternatively, as a manifestation of the life force of minerals, Diana's Tree can also be used for the construction of golems.

Brew Potion (30)
The character can create potions. For base ingredients, all potions require 4 oz of animalcule foam and 1 oz of thaumic powder. If the potion has the same effect as a particular spell, the alchemist will need to be able to cast that spell in order to create the potion, but no other ingredients are required. On the other hand, more unusual potions will require special ingredients, but will not require any particular spellcasting ability.

todo: expand Brew Potion

Miasma (40)
The character can manufacture the deadly black gas called miasma. Creating one 8-oz vial requires as base ingredients 24 oz of animalcule foam (plus what else? one of the acids? TODO), plus 4 months of lab work.

Upon release from its container, miasma will spread to a radius of 20 feet, and will thereafter drift with the wind. Any creature in the miasma will

todo: what does it do? want to make it distinct from Cloudkill and also capture the historical pseudoscientific notion of causing disease. I suppose it just gives you a short-term variation of a disease if you fail a save: maybe a random choice of influenza, cholera, or chlamydia.

Quintessence (40)
The character can manufacture a paste of quintessence, also called aether, the silvery-yellow fifth classical element. 8 oz each of mercury and sulfur, 2 oz of thaumic powder, and 4 months of lab work, are required to manufacture 1 oz of quintessence.

Quintessence embodies the alchemical principle of non-reaction, and has various effects. 1 oz will nullify any poison or potion it is placed into, transforming it into water. If half an ounce is spread on an object, the next time that object has to make a saving throw or check for breakage, it automatically succeeds. 1 oz applied to the skin will give one-time immunity to any spell which causes aging or energy drain; the immunity can be triggered up to 3 days after the quintessence is applied.

Clone (60) (requires Homunculus)
todo: write this

Orichalcum (60)
The character can manufacture the blood-red metal, orichalcum. The alchemist must employ both a coppersmith and a silversmith, and all three must work in the lab for a total of 6 months. Each pound of orichalcum requires a pound each of copper and silver, plus 4 oz of cinnabar.

TODO: what should it do?

Azoth (80)
The azoth is one manifestation of the magnum opus, the great work of alchemy. It bestows youth, returning its subject to the youthful appearance and vitality of an 18-year-old, removing any accumulated penalties for aging. It also adds 5d8 years to their lifespan, and these years will act as a buffer between the newfound youth and the penalties of aging; thus the aging penalties will not appear until after those extra 5d8 years have passed.

todo: azoth recipe

Alkahest (80)
The alkaheset, the universal solvent, is one manifestation of the magnum opus. Three drops will cause any nonliving object or creature of up to 50 lbs per level of the creator to dissolve and be utterly ruined. Objects receive no save; creatures receive a save vs. Magic at -5. A successful save by the target means the

todo: alkahest recipe
todo: tighten up the effects

True Philosopher's Stone (100)
The creation of a true philosopher's stone is divided into four parts. These are nigredo, albedo, citrinitas, and rubedo; or, blackness, whiteness, yellowing, and reddening. Correspondingly, large amounts of miasma, quintessence, and orichalcum are combined, along with much animalcule foam, in a process which takes 1 year of extremely careful work to complete, and requires the alchemist to work 8 hours per day in the lab, 6 days per week. The 7th day must be spent in prayer and contemplation. Missing or skimping on a day of work requires a d20 roll, with a -1 modifier for each day which has already been skipped or cut short. A 15-20 indicate the alchemist has successfully cut corners; 12-14 indicates a week's progress has been lost; 9-11, two weeks' progress; 7-8, three weeks' progress; 4-6 indicates a month's progress has been lost; anything lower indicates all progress has been lost.

Once created, the philosopher's stone can perform the function of either the alkahest or the azoth, at double strength (giving double the extra lifespan, or liquifying double the amount of material.) Alternatively, the true philosopher's stone may be used for its most famous function: it can transmute any base metal into any noble metal. In either case, the philosopher's stone will be used up in the process.

todo: tighten up description/effects


The point values after each talent's name is the minimum number of Alchemy knowledge points required before a character can select it at level-up. Points themselves are also gained at level-up, with the exact amount depending on which skill trees a character has selected. I'm still working on the details here. (Credit where it's due: the concept of the sage knowledge system, and the gaining of points and new abilities at level up in this particular interlinked way, are owed to Alexis Smolensk. However, all the work above is my own, as are the particular divisions of knowledge which I use.)

Note: the Clone talent represents a more general goal I'm working toward as I consider sage skills for my world. That goal is to pull certain spells out of the spell lists and turn them into ritual-like effects accessed through the skill trees. Other things this might apply to some day include Cacodemon, Spiritwrack, Gate, Astral Spell and its ilk, maybe some of the higher-level divinations; plus Protection 15' Radius will get modified into something called Magic Circle, which I'd put in the skill trees for demonology and thaumaturgy, as things currently stand.

Saturday, July 30, 2016

Training Soldiers

How long does it take to train an unleveled person up to the point where he can qualify as a soldier, i.e. a combatant ready to be hired by the main character? Let's go find an answer.

Any kind of soldier is considered to be training toward the fighter class, so we can consider the training they do to be the basis of training any 1st level fighter would have received. 500 XP is required to make an unleveled character combat-trained, i.e. capable as a soldier, and then a further 1000 XP is needed to become a 1st-level in any class. (The combat training and XP-before-1st-level concepts are taken from Alexis.)

This means an unleveled character being trained into a first-level fighter requires 1500 XP total; the 500 needed to acquire combat training is thus 1/3 of that total.

The base age before factoring in character class in my game is 15 years old. The starting age of a fighter in my game is 15+1d4, so the average starting age of a figher is (16+19/2) or 17.5 years old. Thus, that the average fighter took 2.5 years to gain 1500 XP. (I've assumed negligible XP is gained while reaching age 15, but that would be an interesting rabbit hole to go down some other day.)

If combat training requires 1/3 of the XP below 1st level, and likewise 1/3 of that 2.5 year average training period, then we are left with a training period of of 10 months (assuming that the first 500 and the later 1000 XP are gained at the same rate, which you may contest.) So that's a good preliminary solution.

But we can go one better. With the fighter starting age distribution actually being 16-19, we could say that the training period is 1/3 of the actual training time, whether that's 1, 2, 3, or 4 years. The corresponding training periods are 4, 8, 12, and 16 months. What's the benefit of chunking things up? Well, given a gaggle of men freshly recruited, we can say that 25% are ready to serve as soldiers after 4 months, with another 25% being available each 4 months after that. Now we have some time-based figures we can use, should the party ever decide to wage war for themselves or take sides in someone else's conflict.

Ah, but we can go one better again! Who says we have to stop at 25% divisions? Let's divide the 16-19 distribution into 8 six-month periods, then we multiply by the 1/3 time figure for training, getting a two-month period. Divide your number of recruits by 8, and that's how many new soldiers you can turn out every two months. With 100 recruits, it'd be 12 (rounded from 12.5), at first the fastest learners, then the guys who took more time to become competent. Of course, this figure is assuming that we can train all 100 soldiers at once, but there ought to also be a limit on how many recruits a single trainer (leveled fighter with skills in training others) can handle at one time. Maybe you've got a 5th level trainer and he can only handle 50 recruits -- now that 12.5 soldiers-per-month rate is cut in half.

So there's a limitation on how long it takes to turn out ready soldiers, and a limitation on how many of your conscripts can be trained simultaneously, and these two limits combine with the starting number of recruits to determine, basically, how many guys you can add to your army every two months (or each 4 months, depending on the scheme we use.) You could even go further and figure out a monthly value, if that's the time scale you want to track things in. And, of course, if you don't want to use pure percentages, you could always roll 1d4 (multiply by 4) or 1d8 (multiply by 2) for each recruit to see how long it'll take to train him.

All of this training stuff can apply even if the person being trained is not as young as 15. I'm just ballparking here, but maybe normal training rules apply to men between ages 15 and 35, and it takes more time to train anyone younger or older than that age. I'm just speculating here.

Finally, just for fun, let's compare our derived figures to modern army training. It's no fair comparison, just something to think about.

In the US Army they spend 10 weeks on basic training, and then each soldier receives a variable length of additional training depending on their assigned specialty. Infantrymen do 14 weeks. That makes a total of 24 weeks, or 6 months, of training. Furthermore, this is a total of 6 months to train to what I would consider a 1st level fighter. Compare these figures to the average 10 months of training needed to get a combat-trained unleveled soldier, or the average 2.5 years needed to get a 1st level fighter. It's quite a difference, as it should be, since modern training methods are backed by centuries of improvement that a medieval or Renaissance trainer would obviously not have been able to use. I think the proportions between the army figures and my training periods are near enough to call it OK: 10 weeks for basic combat training is 1/4 of 10 months; 6 months for full skills is 1/5 of the 2.5-year average.

All I need now is a figure to determine how many people willing to be soldiers are present in each settlement, as a percentage of the overall population. Assuming they're getting their training from somewhere, since they're starting employment ready to go, I'd then be able to multiply that "number of willing soldiers" times the 2-month rate and get the maximum number of soldiers available for hire each 2 months. Looking to hire an army? Better go somewhere big.

OK, I've been typing this all day. Time to let it out onto the web.

Wednesday, July 27, 2016

Thinking with Infrastructure

Hahahahahahaaaaaa! I'm feeling good!

Just think, a few hours ago I thought I wouldn't work on D&D at all today ... but given my historical percentage of days on which I do work on D&D is, as of today, 95.5 percent (tracked over the last 267 days), I should have realized something would come out of the brainpipe.

I worked, and worked, and got more and more energetic as I added more chunks of code, and the end result is: I've added infrastructure calculations to the world data, including the spread of infrastructure out from each hex.

First, let's take a look at a view I've whipped up. Remember that the map I'm showing here is only a portion of the whole world. The darker the red color, the higher the infrastructure, and because of certain technical limitations and because I've only just written all this, everything 200 infrastructure and above gets the same color -- but most hexes aren't in that range. The highest value under the current calculations is a hex with an infrastructure of 235 -- not sure which hex it is or whether it's in this map, but I could find out.

(If you're wondering why some of the towns are in low-infra hexes: it's because I have to move the towns around. I didn't have infrastructure or civilized-wild measurements when I originally placed them.)

Now I'll explain how I arrive at these values.

Step one is to set a base infrastructure value for each hex. For now, I'm assigning it such that 1 civilized subtriangle = 1 infrastructure point awarded to the parent hex. Later on, I'll add bonuses for towns and cities.

Step two is to go through to each hex and spread out, from that hex, a fraction of its infrastructure value, in all directions. Finding the fraction for spreading infrastructure from hex A to hex B is calculated like this:

(base infrastructure value at the hex) / (sum of all wilderness levels in hex A + the difference in elevation bands between hex A and hex B)

Then that value-to-be-spread is added to the EVENTUAL value at B. What do I mean by eventual value? I mean that when the whole procedure has completed, for each hex, in each of the six hexagonal directions, then the accumulated eventual value (which might have been added to several times, by several different iterations of the procedure) is all added at once to the original base value at B. I do things in this way so that the value spread from A to B is always calculated from the original infra value at A, and has not had any of the intermediate values added to it. Otherwise the value which is spread from hex A would depend on whether any other hexes have given it a shot of infrastructure yet! And that would mean that how much infrastructure a hex ends up with would be predicated on the order in which each hex is processed through the system. That's something to avoid at all costs.

I hope that's all clear, but if not, ask away. I'm just typing this all out as it comes to me.

Sunday, July 24, 2016

Jeweled Skeletons

This short Smithsonian article is about how the skeletons of early Christians were adorned with fabric and gems and venerated as local saints by small churches and monasteries across Europe. Here are some pictures taken from the article:


I find this fascinating. and I could imagine this inspiring many different great bits of D&D play. I'd hesitate to go the traditional "animated skeleton" route with such a jeweled skeleton, but if I did, the implications of a saintly skeleton being brought to life would be quite fun to play out. Or another route: how many players, do you think, would expect skeleton-venerating villagers to be anything other than generic cultists? Here's a chance to throw away the boring pulp-fiction "evil death cultist" thing in favor of something more layered.

Saturday, July 23, 2016

Divided Wilderness

I've been adding to the codebase the expansions I'll need in order to do road and town locations based on triangles. The first chunk of edits I needed to do for that was also just what I needed in order to add something new to the civilized-wild distinction. Have a look at the latest map image; as usual, I recommend opening it in a new tab to see it full size.

Wilderness triangles are now divided into categories 1 through 4; on the map, these are indicated as bright green, olive green, deep forest green, and red-brown. The higher the rating, the more wild and savage that part of the wilderness is. What determines the rating is how many other wild triangles border the given triangle.

Hey, I've just had an idea: I could keep using the 1-4 ratings to find the base wildness, and I could add on something additive where the rating of neighboring wilderness triangles gets added on to the given hex's rating. Thus, there'd be no theoretical limit on how high the wilderness rating could go, if the geography turned out to have big chunks of wilderness.

I don't actually plan to do that, at least not any time soon -- I'll stick with what I have for now. But hey, it's an idea, might as well put it out there. One use for such an "expanded" wilderness rating might be that this rating could then act as a direct counterpart to the "infrastructure" rating I plan to use to on hexes. Perhaps a hex could have a measure of both, the one determined by number and configuration of civilized hexes plus a bonus based on town populations, and the other being based on number and rating of wilderness triangles in the hex. Hmm!

While working on this I also decided to make all water hexes all-wild (type 1); this is OK because now, with degrees of wilderness, sea triangles next to shore will be rated at the lowest wilderness rating, meaning they are the closest type of wilderness to being civilized.

If I used the "additive wilderness rating" proposed above, then, given the way I'm doing sea hexes, the deep and distant parts of the ocean would be extremely dangerous.

Wednesday, July 20, 2016

Wild and Civilized Areas

Just a quick follow-up to the previous post:

I've successfully added the render layer which displays civilized and wilderness triangles.

I can already see I'm going to have to move some towns around, in order to put them into hexes with all civilized hexes. A sizable town (whether it is a castle town, or a trade town, or a religious site, or whatever) is only considered to be "possible" in a hex which I've determined to be fully civilized -- although in reality it would be the town's presence which made the area "civilized." The reason I have to work backward is because I am choosing to place cities manually; if I wanted, I could go back to random town placement, which I used to do, and have their locations be limited to only (a subset of) type 7 hexes. But I'm not going to do that.

Note that at this time water hexes are technically still being assigned civilized and wilderness triangles, but in this image I'm hiding the civ-wild visualization for them. The civ-wild distinction as currently formulated for land hexes isn't the right approach for water, I think. On the other hand, it'd be reasonable to want something resembling "civilized" triangles wherever there are shipping lanes (and patrol ships), as well as inhabited islands. I'm not sure right now just what I'm going to do about the water hexes, but I'll think of something eventually.

Tuesday, July 19, 2016

My World, Part 4: Map Renderer

I was going to follow up the last post with an updated map image showing the civilized vs. wild distinction, freshly added to the rendered map. Unfortunately I've gotten stuck on the last 10% of the code, the crucial part which tells the renderer how to color the triangles. It sounds trivial, but owing to the way I've structured the file, it's not as easy as it sounds to simply give them the appropriate color.

No worries, though. This is the kind of hangup where I'll come back over the weekend and instantly see what needs doing. All I need do is let the idea sit untouched for a few days, and I'll think of something. As I said previously, this is not the first attempt at the triangle maker, it's just the first successful one after a few months: so what's another day or two?

In the meantime I'm going to explain how the map renderer itself works.

First, the World Generator program creates, as its primary output, three files which contain data about my game world. One file contains info on towns, another is for roads, and the third and largest contains data about the hexes themselves -- including their sub-triangles.

Each generator output file corresponds to a parser I've written in Haskell. Now what is a parser? Well, it's a type of program which consumes ordinary text and attempts to arrange it into a structured format for further manipulation. Initially, World Generator output contains chunks like "Elevation 0.133533" and "Climate Mediterranean" and "[Coord (49, -65, 16),Coord (48, -65, 17),Coord (48, -66, 18)]". However, plain old text like this isn't useful to a computer; we have to pre-specify that, for example, "Elevation 0.133533" refers to a type of data, with "Elevation" being the data constructor and "0.133533" being the value. If the string were malformed due to an error -- say that "Elevation" was spelled "Evelation" -- the parser would fail to parse, i.e. be unable to assign the structure I've specified to the text string.

Here's the structure I'm using to store information about a sub-triangle (referred to as simply a "Sub" here):

The first definition states that SubInfo is a 3-tuple. I parse that 3-tuple, and then immediately convert it into a correspondence between a Direction (definition not shown) and a Sub, specified on the next line, since I need to be able to look up that data by naming a given Direction.

Next, here's the parser which verifies input data and converts it into the above SubInfo structure.

Note that parseSubInfo is a parser which it itself composed of smaller parsers, as I've indicated with arrows. For example, parseQuality is defined as validating (and then throwing away) the string "Quality", and then doing the same with some spaces. Then it tries to validate either the word "Civilized" or the word "Wild." If successful, it converts that word into the appropriate data type (a Civilized or a Wild -- no longer a string, but a value.)

Higher up in the program I use parseSubInfo itself as a component in an even larger parser, which slurps up all the data for a single hex. This technique of combining small parsers into larger ones is extremely intuitive and straightforward; the functions here are usually referred to as parser combinators, because of their combining nature. (Moving forward, unless I say otherwise, when I say "parser" I mean the final, primary parser in each program, which may be made of smaller components.)

So: one parser for roads, one for towns, one for hexes. We use the parsers to structure the generator output into useful shapes in memory, and then pass that now-useful data into the main body of World Renderer. This program does the actual work of drawing each layer of map data into the final image. Such work includes:

  • calculating the pixel coordinates at which a given hex should be drawn, based on its hex coordinates
  • coloring each hex based on climate, or moisture, or elevation, or whatever else I specify from the data (thus enabling me to recreate the entire map with a new color scheme, whenever necessary)
  • drawing in the roads between the locations of each town
  • drawing the little town-name indicators themselves

The important part to take away is that most of what I'm doing is defining different ways to draw different data. If I added a new kind of info to each hex, all I'd have to do is specify how it should be represented as a shape or color, and I'd be ready to render a freshly improved map. I can also specify exactly which hexagons I want to render, which lets me zoom in on chunks of the world, as has been the case with the maps I've posted recently.

Here's one function from the renderer program. It calculates the output pixel coordinates for a given hexagon, based on its cubic coordinates.

And here's the primary function (one below the top-level function, which calls the parsers and then feeds their results into this function.) I think my naming conventions make it clear what is going on: we draw the hexes, then we draw the roads on top of them, then we write the town names on top of that. Note that we don't need to draw the town names before the roads, since although they haven't been rendered yet, we still have their locations in memory as part of the road info. Also note that the definition for "filtered" is how I restrict the render to a certain section of the whole ("wanted" is defined elsewhere.)

I give the renderer executable program a filename and it draws the map into that file. And that's all there is to it!

For the record, the last step is the one I'm stuck in for the civilized/wild triangle data. I'm having difficulty specifying exactly the right commands to extract triangle data for each hex and color them appropriately. Everything's parsed and ready; the renderer just needs its new drawing commands. Now you have an idea of how close I am to nailing this!

Please speak up if I've piqued your interest or if something's unclear.

Sunday, July 17, 2016

Time for some Triangles

Today I bring you a discussion about this map, which shows the same section of my world as this post, but with the newest addition I've been working on this week:

If you can't see it right now, here's what I've done: I've subdivided each of my game world hexes into triangles. Six equal triangles. This is a stepping stone toward greater detail and variation in the design of my world. I could go on from here to have intra-hex elevation or climate variation, rework the distance algorithm for resource pricing to get more exact numbers, or do something else entirely.

Let's go for that third option. One other example usage is that, with the underpinnings of geographic separation firmly in place, I am now working to implement a system somewhat like the interrelated systems of hex groups and wilderness features that Alexis describes in these and other posts:

The idea (for my system) is that we can divide the six triangles into civilized and wilderness (broadly speaking), and then generate a combination of triangles for each map hex. This can then be used as one avenue for determination of such hex details as infrastructure, the presence of monstrous (non-human) civilization, quality of roads, and all kinds of other things. The exact configuration for each hex would be determined randomly, perhaps on a pair of dice.

Do remember that each hex measures 20 miles (from one face to another), and thus there are about 346 square miles per hexagon. Since each triangle is 1/6th of the hexagon's area, each triangle thus represents a little less than 58 square miles, with each triangle being ten miles "high" (base to tip). A single triangle, full of wilderness, is quite an area to explore even for a large group. For a typical single- or double-digits party of characters and their retainers? It would take a long time. Not to mention how difficult it would be to have any idea whatsoever that other groups were present in some other part of the hex. An army could easily pass through the triangle the party was in, at a distance of 40 miles, and the party would be none the wiser.

Let's go over the possible configurations of triangles without yet assigning any meanings to the particular arrangements. (I have to think about that some more, and consider what kinds of details I want to be produced for my world without my having to pull them from my butt.)

First we see type 1 and type 2 hexes.

A type 1 hex has only wilderness areas; any civilization here is non-human. Type 2 has one civilized hex. That hex could be any of the six hexes, which is why I say there are 6 rotated versions of this type. Thus, adding type 1 and 2 together, so far there are 7 types of hex.

Type 3 has two civilized hexes. They might be right next to each other, separated by one hex, or separated by two hexes. Note that the rotation figures given above (a total of 15) would be increased (6 more of the second kind and 3 more of the third kind) if we decided that it mattered which triangle was where. This would be the case if, for example, there was some feature which was placed only on the civilized triangle clockwise from the lone wilderness triangle. I'll disregard this kind of permutation for the rest of the post, since it depends on use and placement of hex features, which are not the focus of discussion for today.

After type 3, total arrangements are at 22.

Type 4 has three civilized sections. There are 20 possible arrangements, bringing our total to 42.

Finally, types 5, 6, and 7 are the same as types 3, 2, and 1, but with the wilderness and civilized triangles reversed. This adds another 22 triangle arrangements, bringing the final total to 64 different arrangements of triangles, each spelling out a different set of possibilities and probabilities. Does this hex contain a monastery? Is there abundant game in this area? Is the nearby wood home to a druid? Perhaps an area that's wild enough is guaranteed to contain a small dungeon, and a type-1 has a chance of containing a larger, more sinister location.

I'm planning to use a 2d6 roll to choose between each kind of hex, with further random rolls to determine the exact realization of each hex type. For example, if the 2d6 roll gives a type 2, then there's a further 1d6 roll to figure out which of the triangles is civilized. (It's all going to be automated, of course.)

OK. You've seen the triangles above, but where is the final product, with all triangles filled in as civilized or as wilderness on my hex map? Well, I haven't finished implementing it yet. I've only just gotten the triangles working, and this final, successful attempt to do that is my third such attempt in total over the last few months. (My earliest notes on this way of tackling sub-hex units are from around April.) Finally nailed it this week. Anyway: once I've got the triangle arrangements working, I'll make a continuation post.

Let me finish up here by saying that there's no reason we couldn't layer these triangular sections, either! Perhaps we go over each hex, rolling one set of triangles to determine the layout of its natural resources, and another set to determine its high-level inhabitants and their holdings, and another to determine if this hex has any particularly awe-inspiring natural areas -- perhaps there's an XP bonus for visiting them, and spending a day appreciating the environment. And then of course there's the whole business of using civilization/wilderness patterns to determine salient features: inns, quarries, monasteries, royal hunting grounds, ponds, cliffs, crossroads, bridges, fairgrounds, signposts, ravines ...