Article - Karma, Dharma and Somesuch
Author | Topic: Article - Karma, Dharma and Somesuch |
---|---|
BANNED
Member # 4
|
written Friday, May 7 2004 10:32
Profile
Homepage
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. -------------------- * Posts: 6936 | Registered: Tuesday, September 18 2001 07:00 |
Shock Trooper
Member # 4180
|
written Friday, May 7 2004 11:08
Profile
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 ;) ) 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. :) -------------------- -spyderbytes Posts: 200 | Registered: Wednesday, March 31 2004 08:00 |
Off With Their Heads
Member # 4045
|
written Friday, May 7 2004 11:29
Profile
Homepage
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.) -------------------- Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens. Smoo: Get ready to face the walls! Ephesos: In conclusion, yarr. Kelandon's Pink and Pretty Page!!: the authorized location for all things by me The Archive of all released BoE scenarios ever Posts: 7968 | Registered: Saturday, February 28 2004 08:00 |
Shock Trooper
Member # 4180
|
written Friday, May 7 2004 11:41
Profile
My bad... I just skimmed the sample code and didn't notice that--OR the fact that one calls END_TALK and the other doesn't. :o If not for that last, clear_strings() and add_string() would still have covered the situation... -------------------- -spyderbytes Posts: 200 | Registered: Wednesday, March 31 2004 08:00 |
Post Navel Trauma ^_^
Member # 67
|
written Friday, May 7 2004 12:16
Profile
Homepage
I think SDFs go from 0 to 255, but I'm not totally certain. I've never used negative ones, but ones in the 300-ish range get 256 taken off. -------------------- Barcoorah: I even did it to a big dorset ram. New Mac BoE Posts: 1798 | Registered: Thursday, October 4 2001 07:00 |
Apprentice
Member # 4118
|
written Friday, May 7 2004 13:39
Profile
Homepage
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. Posts: 27 | Registered: Thursday, March 18 2004 08:00 |
Shock Trooper
Member # 4180
|
written Friday, May 7 2004 13:53
Profile
quote:Which is why I remember having read that's what SDF range was... I remember being surprised. :) 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. :) EDIT: If all else fails, RTFM. :) Docs for inc_flag(): quote:Guess that answers it... :o [ Friday, May 07, 2004 13:59: Message edited by: spyderbytes ] -------------------- -spyderbytes Posts: 200 | Registered: Wednesday, March 31 2004 08:00 |
Bob's Big Date
Member # 3151
|
written Wednesday, May 12 2004 04:40
Profile
Homepage
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. -------------------- The biggest, the baddest, and the fattest. Posts: 2367 | Registered: Friday, June 27 2003 07:00 |
Agent
Member # 2820
|
written Thursday, May 13 2004 13:47
Profile
Karma is more like the total sum of your deeds in the arbitrary respect of good and evil. It is somewhat difficult to incorporate this value, but karma generally dictates what kind of luck or fate you get. A divine person could possibly "read" your karma as well. -------------------- Thuryl: I mean, most of us don't go around consuming our own bodily fluids, no matter how delicious they are. ==== Alorael: War and violence would end if we all had each other's babies! ==== Drakefyre: Those are hideous mangos. Posts: 1415 | Registered: Thursday, March 27 2003 08:00 |
BANNED
Member # 4
|
written Thursday, May 13 2004 14:53
Profile
Homepage
The diachotomy of karma and reputation is not the point of this article. The point is to demonstrate means by which to create an interactive world. -------------------- * Posts: 6936 | Registered: Tuesday, September 18 2001 07:00 |
Infiltrator
Member # 1886
|
written Monday, May 17 2004 20:03
Profile
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). -------------------- The Home of 8-bit Theater! Some cool WoT art here Nono! Bad Surfer!! This is it, The Document That no Evil Overlord can do Without Posts: 505 | Registered: Saturday, September 14 2002 07:00 |