Wednesday, May 1, 2013

Thief Skills vs. Combat Skills

If you look at the combat system of most D&D-variants, you'll quickly realize that it is designed to give two average, untrained, unarmored, human combatants about a 50% chance to hit each other. Given the amount of damage most weapons do, this also results in about a 50% chance to kill each other. Overall this seems mighty reasonable as a starting point and trained, armored, higher-level characters differentiate themselves nicely.

Thief skills, however, don't fare as well. First note that there is (usually) no such thing as an "average, untrained" thief: You have to be 1st level to be a thief whereas those untrained combatants above are 0-level humans. But if we look at the average chance for a thief skill to succeed, this is what we find:


Again, these are the chances for a trained character to succeed, and they are much lower than the chances for an untrained character to kill another. How can this possibly be right? (Also note that these averages are only "saved" by the fact that "climb wall" is amazingly high.)

Of course we can make up all kinds of explanations. A first one might be that it's simply harder to pick a lock than it is to kill someone. I lack the personal experience regarding both, so I can't really argue with this line of reasoning, but it seems iffy anyway. For one thing locks don't fight back. Also, how come that climbing a wall is so much easier than killing someone if picking a lock is so much harder?

Another popular explanation says that thief skills are "extraordinary" in the same way spells are. So all characters can try to be stealthy, but only thieves can move completely quietly without making any noise whatsoever (silence spell?). Similarly all characters can climb, but only thieves can climb smooth walls (spider climb spell?). Things break down a bit for "open locks" I guess since I don't think too many referees would give an average fighter a chance to open a lock short of bashing it to pieces, but hey, nothing's perfect.

But wait, why is this even a problem? A magic-user starts out with a single spell and has to make it through a few levels before becoming useful, so why shouldn't the same be true for a thief? I cannot argue with that take either, except to say that this attitude makes pretty much all classes nothing more than "bad fighters" for the first few levels. If that works for you, great. Personally I find it lacking.

Clerics are actually pretty decent fighter-substitutes, but thieves and magic-users are not. Having shoddy skills or only a single spell can be frustrating for the player who feels like they are not contributing enough in the early game. And while the power curve of the magic-user seems to justify their initial lack of skill, the power curve for the thief is a lot flatter: they don't become "cool" at level 5, they just finally become usable for their original purpose at around level 7. Not the most satisfying progression.

I feel somewhat vindicated in my "thief skills should be 50% right away because that's how the combat system works too" attitude by the way Delving Deeper handles thief skills: All of them are fixed at 50%. The only "problem" is that there is no improvement as the thief gains levels. So the character is useful right away, but aside from hitting better and lasting longer in combat, there is no class-specific advancement (except for backstab damage which does increase, but that's not really a "thief skill" in my mind).

So what am I doing in my own D&D-variant to address this?

First I want to give thieves useful skills right away, so they must start at around 50%. But unlike Delving Deeper I also want to give them advancement. I would guess that Delving Deeper doesn't allow advancement because it's unclear how far skills should be improved. If they went for the same kind of advancement they use for backstabbing, then a 12th-level thief would have 100% in all thief skills. And since they use "3-6 on d6 for success" as their mechanic, they can neither advance more gradually, something a d20 or d100 mechanic would allow, nor can they account for a persistent chance of failure to keep thieves from being "infallible" at what they do.

But there is a way around all this I believe, and that is simply not giving thieves access to all thief skills from the start. So in my game, a new thief character picks from a list of possible thief skills the four they want to start out with. They also pick them in order, from the most important skill to the least important one. The system assigns chances of success in such a way that their favorite skill will by 50% likely to succeed at 1st level, with the other skills lagging behind in 10% steps. This represents where they chose to focus during their "apprenticeship" as it were. When they gain a level, they can decide to improve skills that are not yet 50% likely to succeed by 5%, or they can pick up a new skill at 10%.

Since I am using Delta's excellent Target 20 mechanic, this works fine for games where characters retire at around level 10 or so (but it has a bit of stretch beyond that as well). But let's look at the details.

The four initial skills are 50%, 40%, 30%, 20% for an average of 35%. This is not too different from the traditional averages, but note that this thief is good at what they want to be good at, not just good at climbing walls like all the other thieves in the world. Advancing 9 levels allows for a total of 9*5% = 45% of improvement. So if the character never picks up another skill, the final skill profile would be 50%, 50%, 50%, 35%. Since level is added to all checks, this character would have three skills that fail only on a roll of 1. Fair enough, such single-minded dedication is (a) unlikely and (b) should indeed lead to formidable skill.

The more probable case in which the character picks up three more skills on the way would lead to a skill profile of 50%, 40%, 30%, 20%, 10%, 10%, 10% before advancement, or 50%, 50%, 40%, 25%, 20%, 20%, 15% after advancement, so we'd get two "perfect" skills and the lowest skill would have an overall 65% chance of success at level 10. Seems reasonable. And a welcome side-effect is that not all thieves are the same, one of the very few things AD&D 2nd edition actually got somewhat right.

I think I'll call this the "Thieves Evolved" mechanic.

Yes, it's a little more fiddly for the referee than plain Target 20, but it's a lot more enjoyable for the player. And if there's really a need to keep the stat block for NPC thieves down, a table of "typical progressions" should solve that well enough.

Tuesday, April 30, 2013

Character Levels and Campaign Styles

So thinking about both my own take on a D&D-clone and the campaign that would go with it got me thinking about player character levels and what the overall aims of a campaign at a given level-range could be. I grew up on BECMI, so the first breakdown I think of is what that version of D&D did:

  • Levels 1-3: Local dungeon crawls, plots of "disappearing cattle" style
  • Levels 4-14: Kingdom-level wilderness crawls, dungeon-esque side-treks, plots of "evil cult" style
  • Levels 15+: Domain creation, continent-spanning conflicts, plots of "evil arch-lich commanding an army" style

I am intentionally leaving everything else out since I don't see why I would play at level 26+ at all. But anyway, looking at just that list, I realize that I cannot recall a campaign I ran or played in that actually had player characters achieve anything beyond 7th level. Not ever. The only truly "high-level" campaign I can recall had us create high-level characters to run through the old "Bloodstone" modules with Orcus waiting at the bottom.

Also other D&D-variants seem to imply "domain creation" slightly earlier. In fact even BECMI actually says that characters get their strongholds at name level, but the way the rules are split across boxed sets that didn't mean the same thing as what I imply with "domain creation" above.

In my recollection AD&D 1e didn't really talk much about domain-level play at all, but I might be wrong about that. It certainly never came up even as a remote possibility when we were playing AD&D. The level progression in AD&D 1e seemed to top out at around 20 I think, and from what I've seen of OD&D it originally stopped at 10 or 16 for the magic-user while the Greyhawk supplement pushed things a little further close to AD&D 1e range.

So what is a viable range of levels, something that can actually be achieved realistically in a campaign that runs for a few, say three, years? As far as I can tell a group of four players will need to grab about  one million XP to get them all to about 9th level, give or take a few hundred thousand. If you play once a week (a fairly ambitious schedule!) you have about 120 sessions when you compensate for holidays, so you need to hand out about 8500 xp per session. Doesn't seem too bad actually, except that you'd spread it out appropriately of course.

But now you've played in the same setting with the same (set of) referees for three years. Do you really want to keep going for another three or would you rather try a different setting, a different character, a different group of players? I think it's a fair bet that most people will opt for retiring the high-level character or for playing that character only every now and then.

From all of this it seems to me that levels 1-10 or thereabouts are really the only thing that matters, at least for most groups. The rules and the setting should probably allow for slightly more advanced characters, but realistically those options will only be tested on occasion, certainly not nearly as much as the lower levels. With that in mind, I think the level-breakdown I'll shoot for will be more like this:

  • Levels 1-3: Local dungeon crawls with intermittent wilderness components, local plots interacting with few mid-level NPCs
  • Levels 4-6: Increased wilderness-focus with intermittent dungeon components, regional plots interacting with several mid-level and a few high-level NPCs
  • Levels 7-9: Wilderness exploration/clearing as the primary focus, plots spanning several nations/territories and interacting with several high-level NPCs
  • Levels 10-12: Domain creation (if desired anyway) and "retiring" to a less active role in the campaign, serve as high-level NPCs for a new generation of PCs

With this in mind, most of the rules and most of the campaign really only need to work flawlessly up to about 12th level. This means, for example, that adding a character's level to a d20 roll is alright as a mechanic. It also means that spells really only need to be detailed up to spell level 6 or so (although they could also be rescaled to give access to traditionally 9th-level spells earlier I guess, not something I am too fond of trying). Finally it means that one can stick to an exponential level progression and hand out hit-dice instead of having to switch to a linear progression with additional hit-points instead. All simply wonderful consequences in my book.

And at this point, dear reader, you are probably no more enlightened than you were before. But I needed to record this brief rant so I can stop worrying about making things work well for higher levels where I'll presumably never even play.

Saturday, April 6, 2013

Holmes-ian Surprises

Yay, I finally got my copy of John Eric Holmes' Dungeons & Dragons Basic Set from 1979. Actually the book says "Second Edition, November 1978" but who cares. The box is pretty beat up, but the booklet itself and the copy of B1: In Search of the Unknown are very good.

I spent two days reading the thing and overall I am quite happy to finally understand why some people prefer Holmes over later revisions of the "basic" D&D game. However, I also was a little disappointed: I guess I expected the editing to be of higher quality given Holmes' academic background. Short sentences in which the same word repeats with just three words in between seem? A little clunky. But again, who cares. :-)

Here are the notes I jotted down while reading through the rules, mostly about stuff that surprised me. I edited this only a wee bit before hitting "publish" so please forgive me if I still have the odd typo or misunderstanding left. Feel free to correct me in the comments!
  • Ability Modifiers: Unlike in Moldvay/Cook, the modifiers for high/low ability scores are super-unorganized, similar to what they are in AD&D and (presumably) OD&D.
  • Adjusting Abilities: The rules for improving prime requisite abilities are similarly random-ish, Moldvay/Cook just says "lower by 2 to improve prime requisite by 1" I think.
  • Encumbrance: Holmes actually emphasizes where things are, not just how much they weigh or how bulky they are; what's not to like?
  • Organization: There really is none, we go from making characters to wandering monsters, to experience points tables; luckily there is a table of contents.
  • Spells and Scrolls: Magic-Users get spells at random by checking "chance to know" based on Intelligence; scribing scrolls (relatively cheap and apparently doable at any level) is explicitly mentioned as a way to offset having only a few spells per day memorized.
  • Thieves: They have d4 hit dice which indicates being worse at fighting than clerics, but then they have access to all fighter weapons (no restrictions whatsoever) and the Strength spells works better on thieves than on clerics.
  • Weird Combat: "When the party of adventurers is attacked by several monsters, all may be involved in melee, but the hand-to-hand battles must be fought one at a time and then the result imagined as if all were going on simultaneously." (page 18) What the hell? So four adventurers (A, B, C, D) meet four orcs (1, 2, 3, 4). We first resolve A-1 by going back and forth between them for however long it takes to finish the battle. Then we resolve B-2, C-3, D-4. And regardless of how long each took, we imagine them to occur simultaneously? That's the weirdest thing I've ever heard, and it certainly doesn't work at all with movement in the mix. Like the fighter who is done after 2 rounds will just light a pipe now watching the other three guys take much longer to tear down their orcs? (And I don't think I am misreading this, there's an example right above the text I quote where combat goes back and forth between two individual opponents and not between groups.) Actually page 20 then goes on to say that after melee those not engaged may move to assist.
  • Missile Fire: Mentions the need for high ceilings (good) but rules out slings indoors (what the...)? Firing into melee is not allowed (page 20, left column) but then allowed (page 20, right column) with a mention of friendly fire but then disallowed again (page 21, end of second example)?
  • That second example also then contradicts the earlier "resolve each combat seperately" routine by having multiple PCs engage a single monster.
  • Funny Monsters: "The minotaur is a bull-headed man (and all of us who have debated game rules are well acquainted with such)."
  • Inconsistent Monsters: Zombies are described as "slow" and get to attack only every other round, but their movement is 120, same as an elf or a blink dog.
  • Light Coins: "All coins are roughly equal in size and weight, being approximately the circumference and thickness of a quarter and weighing about twice as much as a quarter." It's roughly 6 grams for a quarter, so roughly 12 grams for a coin, so roughly 38 coins per lbs. Moldvay/Cook/AD&D 1e use 10 coins per lbs. Later AD&D editions use 50 coins per lbs. Seems Holmes was on to something there.

Sunday, February 24, 2013

Cool talks to play in class

Last semester I decided (for the first time) to give up an entire lecture to playing a talk I thought was just too good to ignore. Since then I've realized that there are several "cool talks" out there that fit a variety of courses I teach, and so I plan to collect them. Maybe others will find them just as cool?

So for this first post in the series, the talk that started it all. I played this one in "Computer Systems Fundamentals" which is an introductory systems course at JHU that covers (among many other things) microprocessor design and assembly level programming. The talk covers the MOS 6502 in a variety of ways, but the real "cool-factor" comes from the reverse engineering efforts described and demonstrated toward the end. Kudos to Michael Steil!

Wednesday, February 6, 2013

Annoying Heisenbug: Wavemon breaks NetworkManager

I installed a new wireless router today, one of my Christmas presents finally put to use after sitting in the proverbial box for way too long. Being ever the diligent geek, of course I needed to measure how good the reception is around the house. I looked for a tool that would show me the signal strength of my wireless network on my netbook and found wavemon. The tool seemed to work rather well and allowed me to verify that even in the basement I still get 60% signal strength. Not to shabby for a router sitting on the second floor, is it now?

So I went back upstairs to configure more of the many confusing options dd-wrt provides only to notice that my netbook would intermittently drop its wireless connection. I'd open Chromium to look something up and things would just time out, then suddenly NetworkManager would pop up and request that I enter the admin password followed by the wireless key again, sometimes four times in a row. Then the connection would work for a few minutes before falling to pieces again, yada yada.

I was starting to get rather annoyed by this. Another laptop in the house was having similar problems with the previous wireless router, the very reason I got a new one. Of course that laptop now connected fine with no more problems, but for some reason my netbook which had always worked perfectly on the old router had "caught the bug" and would now not stay connected for more than a few minutes at a time. I kept double-checking what the router said about the connection to my netbook and what wavemon said (running in my netbook) about the connection to the router. Things were just messed up, and all kinds of theories started developing in my head about what could be wrong with Lubuntu 12.10 and NetworkManager and wpa_supplicant and the driver for my strange wireless card, etc. etc. etc.

What never occurred to me was that by desperately looking at the connections using wavemon, a tool used to measure stuff, I was actually causing all this trouble! When I shut down wavemon the network become wonderfully stable. When I started wavemon again, after a minute or two, it started misbehaving. The very definition of a Heisenbug (well, in this case an inverse Heisenbug I guess): It's there when you look for it and gone when you don't. Apparently wavemon was overloading wpa_supplicant with requests for SSID scans (the logs seem to indicate something to that effect) but I didn't verify that in detail.

Now of course there could still be something else wrong, but I've repeated the experiment several times and over and over again wavemon will mess up the connection after a few minutes. My advice: Use that tool only to measure signal strength for a few minutes, then get rid of it and never try to debug your wireless network with it. Never!

Bottom line: About 2 hours wasted. Sigh.

Edit: Some helpful hints for debugging NetworkManager stuff:  https://wiki.ubuntu.com/DebuggingNetworkManager

Friday, January 11, 2013

Quick Note on Multiple Linux Installs

Never mind the details, but I had reason to look into how to put a bunch of different Linux distributions on a single machine without virtualization. In my case I wanted Lubuntu, Arch, and Gentoo on my netbook, with room for more if needed. The things I learned:

  1. Do not share /boot across distributions, each distro you install should have it's own /boot for improved sanity.
  2. Do not share /home across distributions, each distro you install should have it's own /home for improved sanity.
  3. Pick one distro as the "safe and sound" one and install it first; you'll let this distro install GRUB2 and you'll use it to manage GRUB2 as you add more distros. So whatever you pick, make sure you know how to update GRUB2 correctly using that distro's configuration files and commands.
  4. Have a partition for shared data. Think of this as what you were trying to accomplish when you thought sharing /home was a good idea. When each distro boots, have the shared disk mounted at a fixed place like /share or maybe /home/user/share or something (this assumes that you're the only user, very true on my netbook).
  5. If you can avoid RAID, do so. If you can avoid LVM, do so. In fact, if you can avoid anything, avoid it. Try to keep things as simple as possible, but not simpler.
  6. Make sure that in each distro you know how to create a user account with the very same user and group id (this once again assumes that you're the only user).

If you were expecting detailed instructions on how to proceed: sorry! But it's really not too hard to figure out. I just wish someone had this list of high-level hints posted somewhere before I started trying to make this work. Now you don't have that excuse anymore. :-) The one thing I will share though is my decidedly non-GPT partitioning scheme. It's not perfect, but it's what works for me so far:

  • /dev/sda1 is the / for the "safe and sound" distro, Lubuntu in my case
  • /dev/sda2 is the swap partition that all installed distros will share
  • /dev/sda3 is the shared data partition that gets mounted under /home/user/share
  • /dev/sda5 is the / for Arch
  • /dev/sda6 is the / for Gentoo
  • ...

LVM would allow you to grow/shrink things later, but I didn't want to bother with the trouble. I have a 160GB disk in my netbook and it was easy to decide that 32GB for each distro would be okay, which leaves 64GB. Take away another 2GB of swap and 16GB of shared data and I have 40+GB left to grow. Not much, but not likely that I'll really need it either.

EDIT: In retrospect I think it would be a good idea to use a rolling release distro for the "safe and sound" one, so I'll probably switch to Arch for that eventually.

Thursday, December 20, 2012

Why Geeks Don't Like You: A Hint for United Way of Central Maryland

Like many others around here, I am fairly used to getting spammed about this that or the other United Way campaign at my JHU work email. I've made my peace with it, after all configuring a spam filter isn't all that complicated. Of course a more appropriate solution would be for the spam to stop, but I decided a while ago that it's not worth picking a fight over.

In any case, every now and then something from United Way gets through. Tonight I received an email from

Nicole Lipinski <nicole.lipinski@uwcm.org>
 
asking me to please donate money like I had in previous years. Now I have actually never donated to United Way, ever. It's not like I don't believe in charities, I just prefer to donate to other charities, maybe even some that don't spam me. 
 
But what the heck, I thought I'd take the time to point out to someone at United Way how I feel about the spam I get: I hit reply and explained briefly and politely that I am not donating and that it would probably help them with the geekier population around JHU if they stopped spamming us. I was a little surprised when I got back the following:

550 No Such User Here

Huh? You can probably guess what happened next. In a slightly less friendly tone I contacted

postmaster@uwcm.org
abuse@uwcm.org

to complain about them sending me email from a completely fictional email address, one of the hallmarks of any self-respecting spammer. Then what happened?

550 No Such User Here
550 No Such User Here

You better believe it. Never mind that RFC 2142 clearly states that both of these addresses have to exist if you run SMTP on your host. So the next thing I do is check their whois record where I find two more email addresses:

webmaster@uwcm.org
dataprise@uwcm.org

Of course I had little hope by now that they would follow RFC 1834 any better than they had followed RFC 2142, and predictably I got back two more of these:

550 No Such User Here
550 No Such User Here

I don't know what the IT people over there are thinking. Maybe something like "Those rules only apply to old-fashioned business organizations, but we're a lean-and-mean donation-gathering-machine so we don't have to follow those weird RFCs!" Whatever it is, I can pretty much guarantee that this kind of ignorance in setting up their email infrastructure does not reflect very kindly on them. At least not from where I sit: deep geekland. Now excuse me while I tighten up that spam filter a bit more.