Wednesday, January 27, 2021

The Random Encounter Deck

Had a discussion about using cards for random encounters the other day and it reminded me of my old trouble queue proposal.

Thinking about it further, using a deck instead of a random encounter table seems like a really good idea.  Roll up a bunch of random encounters beforehand, say one per two empty rooms in the level (so probably 10-15 encounters, which should be more than players will meet in any single expedition).  Put each one on a notecard.  Whenever you roll a random encounter during exploration, draw the top notecard off of the deck.  If the PCs kill it, don't return it to the deck, and if they flee from it, update it (remove anything killed from it, say) and return it to the deck.

So then the deck represents a set of facts about the world: it's the set of small groups of monsters without rooms in the dungeon level.

Between sessions, restocking the dungeon means refilling the deck.  The simple, obvious way to do this is to roll up more random encounters from a level-appropriate table, put them on cards, and add them to the deck.  But you could do a lot of interesting procedural stuff with this too.  Maybe you draw a couple of times from the deck and the random encounters that you drew take an action on the deck.  Humanoids might invite their cousins, adding another random encounter of their type to the deck.  Maybe predators like giant spiders remove a card of a prey species type from the deck (or are removed themselves if no prey cards remain).  Undead might take another draw and turn that into an encounter of their type (or you could animate encounters cleared by the PCs and add them)/  If you drew a scavenger, replace a slain encounter with more scavengers of that type, like the gelatinous cube turned the corpses into more biomass and then underwent binary fission.  If you draw a rival adventuring party, draw again and they fight whatever you drew.  Maybe if you ever have four random encounters of a single kind in the deck at restock-time, they form a lair, removing them from the deck and adding them to the map.  Likewise, if the PCs knock over a lair but there are survivors, maybe they get added to the deck as encounters.  It all seems like a relatively low-overhead way to add some liveness to the dungeon's inhabitants.

And if you have your random encounters on notecards, this seems like a good place to store the state of your named beastman champions, including two or three words of personality description and any permanent injuries or magic items they might have gotten from previous PCs.  You could even leave lairs in the deck; if a lair has six encounters, then you have six cards, and each card says "part of lair x".  So then your players can wage a war of attrition, trying to destroy the lair piecemeal rather than fighting it all at once (but likewise, those encounters have somewhere to retreat to and if they get away may bring reinforcements).

And then bringing it all back around, if your players have caused trouble and there are impending consequences that might reasonably find them, you make a card for it and shuffle it in to the random encounter deck of wherever that trouble is looking for them.  Maybe mark cards as "global trouble" vs "level inhabitants" so that they're easy to separate for shuffling into another area's deck.

...  now the only problem is that I don't actually own any notecards.

Monday, January 25, 2021

Maybe the Thief is Intentionally Bad

I was thinking about how thieves are bad, and then I remembered that they originated in Supplement 1, which was remarkable to me for its adversarial tone and the fact that it cared a lot about alignment.  Thieves were required to be Chaotic or Neutral, and Supplement 1 was all about giving nice things to Lawful paladins and making life hard for Chaotic characters.

Maybe the thief being bad is Working As Intended, WONTFIX.  Maybe it's just a big codified middle finger to people who play Chaotic, and we've all collectively forgotten.

Thursday, January 21, 2021

An Alternate Basic Elf

Last post about redoing the Basic dwarf got me thinking about elves too.  I've been discontent with Basic's elf for a while.  Fighting as a fighter and casting as an MU is cool, and I don't oppose having a class like that, but it has never really felt particularly elven to me.  Casting and fighting is necessarily but insufficient, maybe.

So an alternate proposal:

  • Drop their max armor to chainmail, but leave their weapon selection alone (in Chainmail, elves got to use all manner of magic swords, and I think it fits).  Why do elves make fancy mithril chainmail?  Because they don't wear plate.
  • Drop melee damage bonus, as a mirror of dropping dwarf's ranged damage bonus.  This puts the elf and the dwarf on similar footing in melee, since the dwarf gets damage bonus but less access to magic weapons, while the elf has better access to magic weapons but no damage bonus, and then the human fighter is slightly better than either.
  • Add Hiding in Shadows and Moving Silently as a thief of their level (may I remind you that in Chainmail, elves were invisible?), maybe only usable in leather or lighter armor.  Maybe throw in Hear Noises too, but keep Backstab as just a thief thing.
  • Drop Darkvision; having Moving Silently plus Darkvision is asking for trouble.  Darkvision makes more sense as just a dwarf thing anyway.
  • Swap casting as an MU to something more like divine casting, with an appropriately elven spell list.  Healing, illusions, enchantment, magical music, plant manipulation, etc.  A bit of cleric, a bit of druid, a bit of illusionist, cover all of the elf flavors (high, wood, and dark).

So then we end up with something more like a bard or a ranger than a wizard in plate.  The really thorny bits here are assembling a spell list (I'm not totally happy with this one from ancient days but it might be a starting point) and figuring out the XP value.  Some combination of Wis, Str, Dex, and Cha prime reqs and minimum stats.

Tuesday, January 19, 2021

An Alternate Basic Dwarf

I've been playing Deep Rock Galactic lately and it has me thinking, predictably, about dwarves.  One complaint I have heard about dwarves in Basic is that they're basically just Fighters but strictly better.  They get darkvision and better saves and the extra XP to level is not that big.  I have a proposal for if I were to roll my own Basic.

Dwarves are good fighters but they don't generally do it full-time like human fighters do; they just fight in defense of the vault, or in reclamation efforts of fallen fortresses.  They have a civilian job, or at least training in it.  We could restrict their weapon selection to something like picks, axes, hammers, maces, daggers, and crossbows.  This is more meaningful than it might initially appear; at low levels it means that they can't use spears from the back row, and at high levels it means their to-hit and damage are likely to be slightly worse than a human fighter's, since there are many fewer misc magic weapons than magic swords.  They lose out on intelligent weapon special powers too (but it's sort of weird for a suspicious, cantankerous dwarf to trust the sorcery of intelligent weapons, so I'm OK with this).

(I certainly have never played a dwarf fighter with an evil sentient sword who got into a tremendous amount of trouble.  No sir.)

If playing with ACKS' fighter damage bonus, one could also remove ranged damage bonus.  Between limited ranged weapon selection, loss of ranged damage bonus, and lack of access to lances, dwarves may be strong in the dungeon (which makes sense) but will suffer in the wilderness levels.

But I'm not out to just take things away from the dwarf; I would also like to make it dwarfier.  In exchange for these losses in fighting, we might consider giving the dwarf the ability to open locks and remove traps as a thief of their level.  They have the mechanical aptitude, and they have all the avarice of thieves.  If elf is our fighter/MU class, maybe dwarf should be our fighter/thief class.  It might also be fine to just give them a flat ability that doesn't improve with level, like their Hear Noises bonus.

A fun final touch might be to give dwarves a bonus to forcing stuck doors, breaking locked chests open, and other "smashing inanimate objects" activities.  They have the weapons for it, the mining background, and the knowledge of how things are constructed and hence of their weak points.

Friday, January 8, 2021

Crunching the Numbers on Base-Building in ACKS: Workshops

I've talked before about doing more "base-building" style gameplay in the mid-levels.  I think that ACKS already has pretty much all the numbers that you'd need to do this; there might be a little extrapolation but I think most of the work is just putting it all together.  Much as the domain rules are very general and bore concretization into simple domains.

Players will probably want workshops or blacksmiths or something like that in their hall/compound, and the numbers are easy so let's start there.  A master craftsman plus two journeymen and four apprentices produce a total of 130gp/mo, with total wages of 100gp/mo.  If you paid them up front at the 30-to-one typical ratio, that's 3kgp in wages to hire them indefinitely.  They also need a stone building, call it equivalent to a townhouse at 1200gp, and a Craftsman's Workshop worth of tools per Domains at War: Campaigns, for 350gp (although we're only using 7/8 of it, so maybe call it 300gp in the interest of round numbers).  So that gives us a grand total of 4500gp up-front cost for 130gp/mo of production.  Neither of these numbers are especially convenient.  If we wanted nice round numbers, we could probably go up to 5000gp up front for 150gp/mo of production in a 30x30 footprint.

And we can use that for pretty much any skilled craftsman producing small-scale goods (ie, not ships or siege weapons or other big construction projects that use a lot of unskilled labor, and not things that need lots of land like healing herb gardens or breeding horses).  Blacksmith?  Obviously.  Armorer?  Sure.  Brewery?  No problem.  Military oil refinery?  Why not (150gp/mo of military oil is kind of a lot; 75 flasks a month is more than I've ever seen a party go through.  But maybe they would if they had it!).  Gunpowder grinder?  What could go wrong?

I like that 5kgp is totally within the reach of early-wilderness-level adventurers.  This is a solution for the problem of "we have money but we can't buy the things we want in this market because it's too small".  5kgp for 150/mo is also comparable to the return on agricultural investments (but since it's in concrete goods, it's much less flexible); it will be more profitable in areas with low land value or high garrison costs, but worse in areas with good land value and low garrison costs.  So that's sort of interesting.  If you wanted to get real detailed with it, you could also have each workshop add ~3 urban families to the domain it's built in (a master craftsman is eminently marriageable and likely to start a family when he arrives, while the journeymen and apprentices aren't but there are a bunch of them).

And then the limiting factor on building workshops is mostly finding master craftsmen and inducing them into your service.  I think making them available as Alchemists or Chirurgeons is correct, since those both also have 3 levels of a General proficiency.

We may also want some chance of disaster, like from the Investment rules in Axioms.  I expect players might accumulate a lot of workshops and other comparable facilities, so I don't really want a per-facility roll.  I would probably need to think more about what the right way to do this is, or if we want it at all.

Monday, January 4, 2021

Deep Rock Galactic and the Random Lair

I've been playing Deep Rock Galactic recently.  It is a game about exploring dangerous environments as a team to recover valuables.  Since D&D is also a game about exploring dangerous environments as a team in order to recover valuables, Deep Rock Galactic is therefore D&D.  Q.E.D.

While Deep Rock Galactic is not actually D&D (although you do play dwarves, and the biggest baddest bug in the asteroid does breathe fire and have a certain draconic facial structure), some things have stuck out to me as relevant to the D&D experience.

1) Their cave generation is very strong, and dear god trying to communicate directions in a cave with your teammates, or trying to hold a cave layout in your head, are way, way harder than dealing with rooms, even when you aren't trying to construct a map of it.  This ties to observations about legibility in the wilderness; just like we (me and my players) don't have a shared language of wilderness navigation in D&D, we (me and my DRG teammates) don't have a shared language of cave navigation.  This is especially noticeable in the mission types that do offer easy hooks for shared language - escorting a drilling machine, it's easy to refer to things by their direction relative to the machine, and when doing oil refining, you can reference the pipeline numbers.  Realizing these hooks for shared language was sort of an "aha!" moment.  I think the real conclusion here isn't that wilderness navigation is some sort of blind spot in our shared language; it's more that our shared language is only any good for navigating/describing human-organized spaces.  Wilderness isn't the exception; it's the rule, and there's a whole gamut of types of wildernesses that each need their own ways of speaking about them.

2) Lairs and random encounters are sort of swapped, I think.  When you're exploring area in DRG, you tend to run into small groups of not-very-dangerous enemies who do chip damage.  For several mission types (including the most fundamental / basic one), large waves of enemies (the sort that have a decent chance of taking out a player) are triggered by time.  So "random encounters" in DRG happen due to player actions in space, while "lairs" happen due to player actions in / management of time, whereas in old-school D&D, lairs are mostly by space and random encounters are mostly by time.  This flip seems like it could be fertile ground for a challenge dungeon level; if you really want to encourage players to be fast, to do scouting, to make good plans, then make the static opposition weak, the treasure mostly unguarded or lightly-guarded, and the dynamic opposition dangerously strong.  This also encourages players to make notes on good places to take a big fight, and then hustle back to them (whereas when a lair is in a fixed location, you fight at the time of your choice but not in the place of your choice).

(Yes, I am keeping a document of challenge dungeon level ideas.  Maybe someday I will make something of it.)

Friday, January 1, 2021

Undercity Dungeons and the Union-Find Algorithm

And since we've got no place to go
Write some code, write some code, write some code

The line-map of Herculaneum reminded me of a project I had back in college doing random maze generation using the union-find algorithm.  Since I have some free time over the holidays and nowhere to go, I figured I'd play with it some more and see if I couldn't get decent dungeon results out of it.

I may have also bombed a "generate a maze" question on a coding interview a few years back, and could maybe use the refresher.  I had 45 minutes to do it during the interview; doing it this time took me about two hours to get the result below (but I also had to do drawing).


This is an example of a maze generated using union-find.  It would not make a very good dungeon.  Union-find guarantees that there is exactly one path from each cell to each other cell, which is the very opposite of jayquaying, and this also means that there won't be anything resembling a room, since an open 2x2 square has two paths from each corner to each other corner (first moving vertically, then horizontally, or first moving horizontally, then moving vertically).

What we can do though, is carve out structure beforehand, and then let the mazing fill in the rest and make sure it's all connected.

Here's what that looks like with rooms:

This still doesn't give us loops though.  When I first started working on this post I was thinking about trying to do something like two independent passes of union-find to generate multiple paths most of the time between each pair of cells.  That sounds tricky though.  Having gotten most of the way there, I think I could just do the same thing with loops that I did with rooms - just punch loops into the grid before we do the mazing.  Likewise, if we wanted long "road" corridors and a forum in the middle where they cross, we could put those in before mazing.  This is similar to what I did manually in Rathell, adding intentional loops and then creating tree structures inside them.

Adding loops (highlighted in red) and regenerating, we can get something like this:

So this is getting better.  Sometimes the loops all end up in one part of the map, which is unfortunate, and I should probably do something to make sure they're a little more evenly-distributed.  I might need the variance on the dimensions of the loops to be higher, so that full rooms end up contained inside them more often, for that "city block full of buildings which contain rooms" feel.  The other thing obviously missing for this to be a dungeon map is doors.  Having a loop always contain a secret door makes it less obviously a rectangular loop.  But those are more annoying to draw.  Adding secret doors to random edge removal could be both really interesting and really dangerous, because you could cut off a whole section of the dungeon, but you could also just get a small secret section, which is desirable.

Other potential extensions: 

  • Add options for roads and forum.  
  • Number the rooms on the map.  
  • It's sort of annoying how frilly, nooksome, etc these maps are; I could see them being super-annoying to describe in play to a mapper.  Might be good for a melee+mapping gauntlet level though - just add minotaurs!  
  • Add ability to serialize dungeon levels to some sort of format which can be processed by subsequent programs (for eg stocking rooms)
  • Add the ability to take partially-specified (manually-generated) dungeon files as input and then maze / fill in the unspecified parts.
  • Generate multiple levels (slightly varying map generation parameters for each one) and link them together with stairwells
  • Unreasonably huge recursive dungeon, where each cell of the outer map represents a whole dungeon level, and the links or walls between its neighbors indicate passages between dungeon levels.

Anyway, it's on github.  It was a fun afternoon project.