[MUD-Dev] [TECH] algorithm request
efindel at earthlink.net
Thu Dec 20 12:17:26 New Zealand Daylight Time 2001
Wednesday, December 19, 2001, 6:58:28 PM, Malcolm Tester II wrote:
> So, you set a monster's exp. this amount is divided by a constant
> upon death. I.e. 1000/50 as in the old lp mud style.
> This amount is sent to an experience daemon that does things like
> wizlist, static stats information, and decides how much actual
> experience to give the player. So, here's the twist. I track how
> many monsters a player has killed total. I track how many times
> they've slayed a particular monster (not 100% foolproof). The
> grand total doesn't matter, that's just for them. However, the
> more times they kill "Harry" for example, the less experience they
> get for it. And that's where I am having trouble.
> Let's say there is a monster named Bob. Bob has 10,000
> experience. Player kills him. The experience daemon receives a
> notice that Player killed Bob for 200 exp. The experience daemon
> notes that Player has killed Bob 0 times before. So the
> experience daemon gives 200 exp to Player.
> Bob resets, Player kills him again. 200 exp is sent to the
> experience daemon again. Now, the exp daemon notes that Player
> has killed Bob 1 time before. So the exp daemon gives the player
> some exp amount less than 200.
> And so forth. I've tried creating some algorithms myself, but
> they frankly stink. My talents do not lie in math. So if anyone
> could offer help, it would be appreciated. I also want to set a
> "minimum" level of experience too. So the player never gets to 0,
> they always get at least a little.
What do you want the curve to look like? Is there a certain number of
kills of a particular monster that should lower the XP payout to the
minimum? Do you want a linear fall, like:
or do you want a curved one:
(there'd be curved lines joining those... ASCII isn't the ideal
medium for making smooth graphs)
<EdNote: I'm fine with people attaching small images (GIF/JPG/PNG)>
Here's some samples of what you could do, with "nok" being "number
linear fall to minimum, after X kills:
payout = minimum + ((base - minimum) * (X - nok/X))
falling towards minimum, quickly at first, but never quite reaching it:
payout = minimum + ((base - minimum) / (nok+1))
Depending on what you want, there are lots of other possibilities.
> In addition, from a player's viewpoint, they only get to see
> limited information. Maybe how many grand total kills they've
> had. Maybe which monsters they've killed. But never how many
> times they've killed a particular one. Can't have them dissecting
> it too much :)
Another sort of possibility would be to do what some of the older
RPGs that had killing-based XP did -- scale it by level. If you're
higher level than the monster you kill, the XP you get is multiplied
monster_level / your_level
This helps encourage high-level characters not to bother with
low-level monsters -- the payout starts becoming very small quickly.
efindel at earthlink.net
MUD-Dev mailing list
MUD-Dev at kanga.nu
More information about the MUD-Dev