Chad Perrin: SOB

29 August 2008

magic items without expiration dates

Filed under: RPG — Tags: , — apotheon @ 08:55

This is part of my RPG series of entries here at SOB. See the inaugural entry in the series for more details.

I tend to prefer a somewhat lower-than-average magic level for a fantasy RPG world. To my preferences, magic should be special — and as such, it needs to be rare, or at least shouldn’t be commonplace. The way most D&D games go (and, I would assume, the way most Pathfinder games will go), magic items are just ways to improve a character’s ability to level up faster. The typical treasure-churn of traditional D&D games, where characters pick up a better magical sword and throw away (or sell) the old sword because its bonus is one lower than the new one, just strikes me as sad and silly.

The Necessity of Magic:

On the other hand, the game is designed with magic items in mind. It’s expected that characters will have magic items to enhance their capabilities in encounters. There’s even a general estimate chart for determining how many GPs’ worth of wealth a character should have at a given level in the DMG — presumably, mostly split up between money and magic items (though some of that money might be converted into land holdings, et cetera). To simply cut most magic items out of the game — especially if you don’t want to “compensate” the PCs by dumping a deluge of gold coins on them — pretty much just screws them over if you don’t completely rework the rest of the way the game plays out.

I’ve tended to be pretty good at adjusting the power levels of things in my games to balance them out in the past, but I’m not entirely used to the sheer frightening nuclear weapon yield power of certain spellcasting classes in 3E. I’m having a little bit of difficulty balancing this stuff out — there’s a sorcerer in my game that has quickly developed a reputation for being able to lay down the law in standard combat encounters upon reaching a level where he can cast lightning bolt and fly spells. During a jailbreak, he turned a hallway full of lower-level guardsmen into crispy critters in pretty short order.

Now, of course I can (and do) skew things in a manner that ensures the other characters’ talents get a chance to come into play, but that doesn’t change the fact that there’s an obvious power imbalance if the other PCs lack magic of their own in the form of high-power gear. It’s a difficult balancing act, trying to keep the game from turning into a constant treasure-churn without throwing off the comparative power levels.

In Search of a Solution:

Something I’ve had percolating in the back of my head for months now is the desire for a way to give characters the power they need from magic items without necessitating a treasure churn process. A number of different approaches to this have occurred to me, including a heuristic sort of means of translating magic items they would have gotten into special abilities intrinsic to the characters, some straight per-level bonuses (such as a Base Defense Bonus to balance out the Base Attack Bonus increases), and modifiable magic items.

I also considered the Weapons of Legacy approach — but designed such that they don’t destroy the intrinsic capabilities of the characters themselves in the process (since that seems to be a significant problem with the rules in the Weapons of Legacy book). I ultimately discarded it because of the fact that it doesn’t really solve the whole problem, but only mitigates it a little. Not everything can be a Weapon of Legacy without both making the game a bit duller and significantly damaging suspension of disbelief in the “specialness” of the things.

What I really need is a way to give characters the benefits of magic items, perhaps with actual magic items, but let those benefits grow with the characters rather than having to be periodically replaced because you’ve outgrown that Sword of Magnificent Power you acquired eight levels ago. More than that, it has to do so without taking an idea that would work great as an extreme rarity and turning it into a commonplace commodity. It also has to be entirely believable within the context of the game, and has to be believable for every adventuring party in a campaign world I run.

As of tonight, I’ve come to think that characters should perhaps acquire some kind of resources, in an out of character metagame sense, that can be translated into the same sort of benefits you get out of the magic item treasure churn. I’m considering two different approaches to the idea.

Two Approaches

In both of these approaches, the idea isn’t so much that characters’ weapons just spontaneously power up at semi-regular intervals as that they become more invested in their favorite pieces of gear and thus forge some kind of connection with them that grants greater capabilities through their use. As an alternative interpretation, I might completely change the very concept of (permanent, non-consumed) magic items, such that they are not specific, static repositories of easily defined power; instead, each has a sort of character or essence unique to it, and as a character becomes increasingly attuned to it, he or she begins being able to manifest greater power through the use of the item.

Experience Equals Gold:

The first approach was inspired by the notion of that chart in the 3.5 DMG that gives guidelines for how much wealth a character should have at each level. At first, my idea was to just give the PCs some fraction — perhaps half — of the wealth the guidelines suggest, and let them spend the rest on bonuses and special abilities for their gear. Ultimately, however, I decided that introducing yet another number to the game, and having to figure out where to draw the line between money and magic, might be a touch problematic. I’d much rather use experience advancement as a guideline.

Looking at the “Fast” character advancement column in the Pathfinder RPG Beta, I see that the experience totals are almost exactly three times the wealth values in that DMG chart. Okay, so dividing that number by three — or multiplying the value of all magic item bonuses and special abilities by three — seems a little broken. It’s the start of an idea, but it’s going to have to get some wrinkles ironed out.

Feats For Magic Items:

The second approach that occurred to me tonight involves giving PCs more feats, and letting players spend some on special abilities for magic items. For instance, with Pathfinder RPG’s feat gains at every odd-numbered level, I would just fill in the even numbered levels with feat gains as well and let players spend feats on powers for magic items. Some would be prerequisites for others, most likely, and there might be some limit on how many feats you can spend on a single item. There might also be some powers that require more than one feat slot to acquire.

A variation on this might involve giving characters magic item power points at even levels that are distinct from feats, so that there’s no overlap between feats and magic item improvements. Whether this would ultimately make the job of defining the magic item advancement system easier or more difficult is open to debate, I think.

Wrapping Up:

I guess this will bear some further thought. I’m open to suggestions, and interested in discussion, if you have some to offer.

I’m sure I’ll settle on something eventually. Maybe I’ll playtest an idea somewhere along the way, mostly playing it by ear, and see how it works out. If and when I have a complete system worked out, I’m sure I’ll make it publicly availalbe — probably right here at SOB.

calculating XP (and other leveling data) for D&D 3.5

Filed under: Geek,Humor,RPG — apotheon @ 11:20

This is part of my RPG series of entries here at SOB. See the inaugural entry in the series for more details.

This SOB entry could easily have been called “Mathematically Generating the D&D 3.5 Experience Chart”, but I decided against that title.

The D&D 3.5 Player’s Handbook contains an experience chart, “Table 3-2: Experience and Level-Dependent Benefits”. The SRD — a collection of OGL materials released by WotC — does not, on the other hand. The d20 license, used to determine who may or may not display the d20 logo on an OGL product or claim d20 system compatibility, specifically restricts anyone from describing level advancement in a thusly licensed product.

I discussed a little of this very briefly in my D&D 3.5 Experience Level Charts entry here at SOB, along with a reference to how you can use my pfconv Web interface (or the pfconv command line utility, both of which are described in Pathfinder RPG a3 XP converter) to get around certain aspects of the WotC restrictions. It’s far from a perfect solution, however.

This bit of stupidity from WotC is why so many third-party developers for systems that are effectively compatible with D&D 3.5 (even if the closest they can legally come to saying it is “compatible with the world’s most popular roleplaying game”) must choose between describing character leveling or displaying a d20 compatibility logo. When leveling is described, publishers of third-party materials end up creating their own variations on how leveling is accomplished, usually involving a very different looking chart. One example is the Pathfinder playtest releases’ “Table 4-1: Character Advancement and Level-Dependent Bonuses” — against which, by the way, there doesn’t seem to be any copyright reprinting restriction, unlike the equivalent “Table 3-2” in D&D 3.5.

Of course, with a halfway decent lawyer, one could probably get away with reprinting D&D’s “Table 3-2”, as long as one was clever about it, by claiming coverage by the doctrine of fair use. This is not something I particularly care to test, however, as I don’t really care to have to get a halfway decent lawyer to defend something I’ve said in SOB about leveling in D&D. The problem is not that any copyright restriction prevents me from explaining how one increases in level in D&D, but that reprinting “Table 3-2” as printed in the book would involve verbatim copying of copyrighted material — and even slightly altering how it’s presented might be argued to be nothing more than an attempt to circumvent copyright law inappropriately.

On the other hand, I don’t actually have to reprint any useful information in that chart at all to provide a means for those of you with some basic tools at your disposal with a way to calculate the information in “Table 3-2” for yourself. It’s pretty simple, really: I’ll just describe the formulae for generating the information, and provide some Ruby code in case you want to actually generate the numbers yourself.

XP totals:

The formula to determine the XP total for a given level is:

F(L) where:
L = target level, and
F(L) = 0 if L = 1, else F(L-1) + (F(L-1)*1000) if n > 1.

The formula to determine the max ranks that can be put into a single class skill for a given level is:

L + 3 where:
L = target level.

The formula to determine the max ranks that can be put into a single cross-class skill for a given level is:

(L+3) / 2 where:
L = target level.

The formula to determine the number of feats you should have, discounting Fighter bonus feats or the extra feat for being human, is:

1 + (L/3), rounded down, where:
L = target level.

The formula to determine the number of bonus attribute points you get for leveling is:

L / 4, rounded down, where:
L = target level.

I’ve written some Ruby code that produces the output of the above formulae for levels one through twenty in a simple command line utility. To get the XP values, assuming you name your Ruby script phb3-2 (after the chart in the PHB), you would enter the command phb3-2 xp. For max ranks in class skills per level: phb3-2 cl; for cross-class skills: phb3-2 xcl; for total feats: phb3-2 feats; for total bonus attribute points: phb3-2 attributes.

This is the (ugly) code:

def up_xp(n)
  return 0 if n == 1
  return up_xp(n-1) + (n-1)*1000

def format(l,n,s)
  return sprintf("%1$*2$s : %3$*4$s", l, 3, n, s)

if ARGV[0] == 'xp'
  1.upto(20) do |l|
    puts format( l, up_xp(l), 6 )
elsif ARGV[0] == 'cl'
  1.upto(20) do |l|
    puts format( l, l + 3, 2 )
elsif ARGV[0] == 'xcl'
  1.upto(20) do |l|
    puts format( l, (l+3) / 2.0, 4 )
elsif ARGV[0] == 'feats'
  1.upto(20) do |l|
    puts format( l, 1 + (l/3), 1 )
elsif ARGV[0] == 'attributes'
  1.upto(20) do |l|
    puts format( l, (l / 4), 1 )

Unfortunately, I won’t be creating a Web interface for this script the way I did for pfconv, because then I’d be providing you with direct duplications of what’s on “Table 3-2”, and while I’m sure I could defend it in court if it came to that, I prefer to play things a bit more safely. I probably won’t be cleaning up the code to make it more like a really useful command line utility any time soon, either, because I just don’t care enough right now.

So . . . if you are reasonably good at arithmetic or can manage to get some Ruby code working on your system, you now have what you need to calculate all the values on “Table 3-2”, one column at a time, if you didn’t already.

. . . or you could just play Pathfinder RPG instead, and use the OGL (and thus freely reprintable) leveling chart data from the freely downloadable Pathfinder RPG Beta test rulebook PDF, which serves as the equivalent of (most of) both the PHB and DMG, all in one package. There’s also a “softcover” book version of the Pathfinder RPG Beta you can get for $25, if you like having a physical book in your hands.

That’s why I don’t really care to put more effort into this Ruby script than I already have: it doesn’t really matter that much to me, since I’m weaning myself off D&D 3.5 and replacing it with Pathfinder RPG instead.

28 August 2008

Code Koan: Falsehood, Nullity, and Zero

Filed under: Cognition,Geek — apotheon @ 02:22

One day, a student approached the Great Master and asked “Is falsehood not a value that expresses the opposite of truth?”

The Great Master answered “Yes, it is.”

The student thanked the Great Master, and departed to meditate on this. The following day, he returned to the Great Master, and asked “Is nullity not a lack of value, and thus distinct from falsehood and truth?”

The Great Master answered “Yes, it is.”

The student thanked the Great Master, and departed to meditate on this. The following day, he returned to the Great Master, and asked “Is zero not valueless value, and thus distinct from falsehood and truth?”

The Great Master answered “Yes, it is.”

The student thanked the Great Master, and departed to meditate on this. The following day, he returned to the Great Master, and asked “If I assert a value where there is only nullity, is that not falsehood?”

The Great Master answered “Yes, it is.”

The student thanked the Great Master, and departed to meditate on this. The following day, he returned to the Great Master, and asked “If I assert a value where there is only zero, is that not falsehood?”

The Great Master answered “Yes, it is.”

The student thanked the Great Master, and departed to meditate on this. The following day, he returned to the Great Master, and asked “How can I reconcile all that you have told me in the last five days, Master? If I assert value where there is nullity, it must be false. If I assert value where there is zero, it must be false. Despite this, falsehood is distinct from nullity, and both are distinct from an object with zero value.”

The Great Master asked “Do you ask for the truth or falsehood of truth, of value, or of an object of value?” and the student was enlightened.

This SOB entry was inspired by a discussion on the ruby-talk list, where people argued over whether it was appropriate for nil to evaluate as false or for a 0 object to evaluate as true in a boolean context. I started out writing a lengthy, in-depth explication, but by the time I was 75% finished with it, I realized it was such a complex bit of explanation that even I might not be able to parse it effectively once it was complete. It is at times like this one must stop trying to grasp the moon itself, but point at it. A koan is the finger, pointing at the moon.

All instruction is but a finger pointing to the moon; and those whose gaze is fixed upon the pointer will never see beyond. Even let him catch sight of the moon, and still he cannot see its beauty.

Buddha himself supposedly said that.

« Newer PostsOlder Posts »

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License