Jump to content

Article - Karma, Dharma and Somesuch


Recommended Posts

Article - Karma, Dharma and Somesuch

 

This article, apologies beforehand, will borrow heavily off of The Responsive World by Drakefyre and Player vs. Party by The Creator. Assume that you want a responsive world in "Quest for the Sword" that will have major or minor consequences based upon the actions of the party. This is a Good Thing- having people get irritated at the party for being rude or annoying is realistic and will add a new dimention to your scenario. The most-often used device in Blades to do this is Karma.

 

What is Karma? Apologies to Hindus, but the Karma you may be familiar with is not the karma used here, even if the principles are similar. Karma is usually a two-ended spectrum with one end being "Good" and one end being "Bad" (or some variants thereof). When the party says or does a "Good" thing, the karma is raised, and vice-versa. Telling the mayor that her dress doesn't make her looks fat, of course, will not have as much of an impact as killing a dangerous group of bandits. On the flip-side, kicking a beggar will not be as consequential as murdering children.

 

How does one use Karma? Imagine a flag- one you will know instantly. I use 99,9, you may use whatever pleases your fancy. In the beginning of the scenario, set that flag to the "middle" ground. Assuming that 0 is totally evil and 100 is good, set your flag to 50. Whenever the party does something minorly good, raise their flag by 1. Whenever the party does something bad, lower their flag by 1. This will usually entail dialogue responses.

 

Why does Karma matter? Suppose a party encounters a group of wandering guards outside. If the party's karma is high, the guards will welcome the party with open arms and invite them into the nearby city of Heidenburg. If the party's karma is around the center, the guards will point the party to the city, but will not be as friendly. If the party's karma is relatively low, the guards will tell the party not to visit Heidenburg. And of course, if the party's karma is insanely low, the guards will attack. Suppose a party speaks to an innkeeper. They can buy a room for 5 gold if they're neutral or 10 gold if they're disliked. They can get the room for free if they're adored, or not get it at all if they're hated. Karma can and should be used for everything under the sun.

 

Which calls should one use in dialogue for karma? That's tricky. Dialogue with karma can be made by following a few basic templates, however:

 

Action based on Karma

---------------------

 

begintalknode 18;

state = 4;

nextstate = 5;

condition = get_flag(99,9) >= 40;

//This is to check if the party has been good, or at least not overly evil

question = "What kind of town is this?";

text1 = "_Oh, it's nothing much. A nice, decent place for hard-working stiffs like myself._";

 

begintalknode 19;

state = 4;

nextstate = -1;

condition = get_flag(99,9) < 40;

//This is to check if the party has been overtly evil

question = "What kind of town is this?";

text1 = "He glares at you.";

text2 = "_We're a hard-working town, and we don't like your kind of rogues around here._";

text3 = "_So git, you mangey mongrel!_";

action = END_TALK;

 

In this example, the party has the same question, but can receive two different responses, depending on their reputation. Obviously, you don't need to do this all of the time. Simple text-hiding calls in the "code = " portion of your script can work just as well. Also, you can set your dialogue to call different codes depending on whaty the party is. You can up inn prices, you can end conversations before they begin, you can even have variable shop prices! A whole slew of things become possible.

 

And of course, the list goes on. You can have the road to a rich, trading town with quality goods be guarded by a guardpost that the party cannot cross if they have a reputation as a group of rogues. You can have the servants of evil ask you to join them, if you're evil enough. And perhaps, if you are an ambitious enough designer, you'll allow the party to do so! Use karma/reputation wisely in your scenario, and you will create a far more dynamic world for your players to prance around in.

Link to comment
Share on other sites

I can't find it now, but I remember reading somewhere that the valid range for SDFs is -255 to 256. Is that correct? Anyone know for sure?

 

I've been assuming it is, and so my 'karma kounter' starts with 0 as neutral and uses inc_flag() calls (plus or minus) when the party does good/bad stuff.

 

Your example dialog would be a bit cleaner (and save you a node, if you run as tight on them as I tend to wink ) if you used action = DEP_ON_SDF instead of the condition check. That would also make your article a tutorial, of sorts, on one of the more advanced dialog techniques. smile

Link to comment
Share on other sites

Small problem, spyderbytes: his text is too long to use DEP_ON_SDF. That displays text1 and text2 or text3 and text4, only two texts at a time. He's using three texts in the second response. (I don't know if you could just throw in that third text as text5 and it would print it, but the docs imply not.)

Link to comment
Share on other sites

If a SDF goes up 255 it is probably a unsigned character sized variable. That means that it can't hold negative values. It can only have the values from 0-255. 256 values, 256=2^8.

 

There isn't a common variable size that holds

-255 to 256.

Link to comment
Share on other sites

Quote:
Originally written by coreyh:
There isn't a common variable size that holds
-255 to 256.
Which is why I remember having read that's what SDF range was... I remember being surprised. smile However, since I can't seem to find where I read it, I can't say for sure, now, if it was an "official" source, or someone just guessing and presenting it as true.

Guess it's time to make a party of SOBs and see if/how badly my scenario breaks. smile

EDIT: If all else fails, RTFM. smile Docs for inc_flag():

Quote:
void inc_flag(short a,short b,short how_much) - Changes SDF(a,B) by how_much (which can benegative). Note the legal range of values for a flag is 0..255.
Guess that answers it... shocked
Link to comment
Share on other sites

TM, you have made the mistake of confusing karma and reputation.

Karma makes you evil, reputation just makes you ill-received; it's possible to have miserable karma and good reputation (your evil deeds are accepted wherever it is, or no one has heard about them yet) or miserable reputation and good karma (you do good, but are a jerk and the good isn't obvious).

 

Fallout would be a worse game for a nonseparate karma and rep system, I think. There's no logical reason that stabbing a beggar in the woods should drastically affect a guard's opinion of you; they'd have no way of knowing it was you, or even that it'd happened.

Karma would, ideally, be divine reputation; the idea of having priests and priest spells in an apparently amoral universe has always bothered me a bit.

Link to comment
Share on other sites

Actually, I could see the point in having both karma and reputation play a factor in a scenario. If Karma is high and rep low NPC's would treat the characters like a criminal (although priests/divine entites would pay more attention to the karma than the rep); if both were high, NPC's would go out of their way to be helpful; if both were low, the characters might be contacted by the local theives' or assassins' guild; if rep were high, but karma low, a few people would be very suspicious of you, but everyone else would try to be helpful.

 

Alternatively, the rep could be used to determine whether or not powerful people would take note of the characters, while karma determines the NPC's reactions to the characters. Kind of like name recognition and personal reputation (unknown/celebrity, and famous/infamous).

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...