[crossfire] xp gaining (was: Priority feature list)

Juha Jäykkä juolja at utu.fi
Mon Jul 23 17:10:57 CDT 2007

Hm.. I still have a lengthy message from Sunday not replied to, but I'll
chime in on this one first...

> > The problem here is feature (or monster toughness) creep.  It is easy
> > enough to say 'max level for any monster should be 100'.  The problem
> The level 100 should be practically / nearly impossible to reach.  So
> having level 150 characters is unlikely.

I think this is a problem any way you put it. With hard cap, players get
bored when they hit the cap and the character can no longer improve. With
impossible-to-reach maximum level, there is a gap *below* the hard cap:
if level 100 is "impossible" to reach, it simply means level 99 is the
cap! And players still get bored when their characters no longer advance.
So even without a hard cap, just impossibly difficult-to-reach levels,
people will get bored exactly like they would with a hard cap.

I am not quite sure just adding new regions and monsters will help here
since the character advancement has ceased. If there is no gain from
doing quests, why do them? Even if you get some new fancy thingy as a
reward, it probably is not enough to motivate players when that is the
only thing to gain.

Increasing levels, perhaps even by adding new areas to the map or
whatever, is probably the only way around this problem. Another would be
if the capped characters would be able to advance in some other way: in
pen-and-paper RPG's people often start building their own kingdoms etc.
Although I have no idea how THAT would work in cf. But it definitely is

> A high level dragon with clawing level 100 decides to level up sorcery
> will block a low level map for a very long time until the sorcery skill
> is on a desired level.

Immediately after reading this, I got a great idea (at least I think it
is great): make the skills more like D&D 3rd ed. skills (or what do they
call them nowadays? They used to be called proficiencies back in AD&D).
They've spent a lot of time thinking about those and they definitely have
got it done pretty well. This is how the skills *could* work:

Every player race *and class* gets some starting skills, like they do
now. After gaining enough experience to get to level N, they get to
improve *those* skills that they most used (say, M skills, no more)
between reaching levels N-1 and N, but only those skills. This way there
would not be an issue of 50th level dragon leveling his first levels of
sorcery in a newbie map, because the dragon would *never* get enough xp
for sorcery in that manner to make sorcery one of the skills he improves
when reaching 51st level. (Note that if M above is too big, this is
untrue; for M=1 and possibly some other low numbers as well, this
statement holds.)

This has the added benefit of making classes matter! It would no more be
practically possible to have all skills leveled up to 50th level. If you
start with pyromancy, sorcery and flame touch, it is pretty much
guaranteed those are the first ones to reach levels 5-10. If you then
learn evocation, it is again pretty much guaranteed you will not gain
enough evocation xp to reach the next level. (At least when M=1.)

Example: fireborn sorcerer, starting monster-bashing skills are pyro,
sorc and flame touch. Suppose you are total level 15, and have been very
careful to advance those equally, so they are all 5th level. Now, you
learn evocation. You need to gain 800000 xp *with evocation* to reach
level 16. How probable is it that anyone *ever* bothers killing 160000
kobolds to gain a single level? (Kobolds are worth 5 xp, right?)

This can be modified in many ways to make things as we want them. For
example, it would be quite ok to make M=3, though in that case this does
not solve the "dragon leveling sorcery" -problem without other
modifications. One such modification might be, that M=3 *but* you can
only advance in each of those three skills if its accumulated xp between
the two levels accounts for no less than 10% of the total xp between the
two levels. I.e. 1 xp for evocation, 399999 for pyro and 400000 for
sorcery only advances pyro and sorcery, you need at least 80000 to
advance any given skill between those two levels. This still means 16000

> And the high level experienced players just take the maps where to get
> most xp and / or treasure.  And than this map is blocked by a few
> players over and over again.

Can we make the map reset delay character specific? I.e. the map would
reset in, say, two hours for other players, but for the same character,
it does not reset until, say a week has passed. That would put an end to
repeating lucrative maps all over again by the same character.

> Just reduce the xp gained by a monster if you're higher.  Don't give out
> more xp if you killed a monster on a lower level.  The monster xp is the
> maximum you can get from it.

Well, this really is just a question of what does the xp-modification
function look like. We can easily make the modification dependant upon
Heaviside(monster_level-character_level), where Heaviside is the
Heaviside unit step function. Or anything like that. If the problem is in
altering xp gained from monster, altering the function does not solve it.
I do not personally see from Mark's explanation, what the problem really
is. It looks like it was simply implemented suboptimally.

> Fix that.  Don't make high level items equipable for low level
> characters.

Apart from rods, they aren't: they have item power specifically to
prevent low lever characters from using high level stuff. The item powers
are quite strange for some items, though.

> >   Also, the crossfire exp table is almost an exponential system, where
> > as AD&Dv3 is more linear (the exp needed for level 20 is 10 times that
> > of level 2).  So adding this extra adjustment really just amounts to
> > extra penalty/bonus.
> Making level 100 as hard to reach as level 115 is right now, won't make
> level 101 characters more likely even if the xp table is more linear.

I do not think Mark was referring to level caps here. What he said is
true: D&D 3rd ed has (almost? I'd need to get up, go to bookshelf and
check...) linear xp tables, crossfire does not. Crossfire has
~exponential xp tables. Though I am at a loss at to how he reached the
conclusion that is is a penalty/bonus. If all the current monsters are
given the "correct" level and killing the monsters at "right" (i.e. when
you are at the same level as the monster) level gives you the listed XP,
there is absolutely NO difference from the current situation UNLESS you
kill too easy monsters, which would get penalised (which was the whole
point). Linearity vs. exponentiality has nothing to do with it. The only
thing that has is the modification-function, which must give listed XP
when killing monsters at proper level AND monster XP(level)-function must
follow the same formula as player XP(level)-function. (Unless we want to
make it so that reaching level N from N-1 needs more kills than N-1 from
N-2 etc, but even that has nothing to do with penalising for killing too
easy monsters.).

> But rebalance the gaps, make it more linear.

Actually, the form of the XP(level) function is totally irrelevant. It
may even be logarithmic. The only thing that matters is that what you DO
(kill monsters, do alchemy, read scrolls, use wands etc) gives you XP
according to the same function. This is, of course, provided there are
difficulty levels in what you do: I think woodsman gives the same amount
of XP for all food, a reflection of the fact that it is equally easy to
identify an orc chop as a dragon steak, whereas brewing a very complex
potion (level 10 potion, say) is harder than brewing a simple (level 1)
potion, so the former should give such an amount of XP that it advances
you equally towards 11th level as the simple potion advances you towards
2nd level. If we always follow the method of "completing a task that has
difficulty level N gives M% of the XP needed to advance from level N to
N+1", it never matters what the XP(level) function looks like.

Keeping the function exponential, however, is intuitive. It is easy to
think that advancing from 10th to 11th level needs 10 times the xp of
advancing from 1st to 2nd (or any such). If the function is very
complicated, figuring out the correct amount of xp becomes a pita.

Making the function linear, on the other hand, makes things very easy:
every potion would just give the exact same amount of xp; same for the
monsters. What you need to think about now, is the level. Is this monster
worth M% of the difference between 10th and 11th levels or 11th and 12th?
Since there are only ~100 levels to choose from, but exponential xp
tables give you easily tens or hundreds of millions of xp values to
choose from, I'd say exponential table is easier - and safer when
introducing new things (the choice of correct level has less impact than
in linear system).

> > > No, it's not.  But don't make monsters getting a higher level than
> > > the maximum of the xp table.
> > Sure we should. High level (150) monsters you can only kill with 4
> > 100+ level players.
> No, we shouldn't.  ;)

Err... I do not quite agree here. It is a very intriguing idea to have
monsters that are simply too powerful for (practically) any character to
kill. Whether the xp table goes up to the level of the monster is
irrelevant, though. What does it matter if there is 100 lines instead of
150 in the exp_table file? (I know it's not organised one per line, but
that's easier to write.)

It can always be extended any way the server admin sees fit. And if
someone creates a 110th level region in the world, even the official xp
table can be extended. Where is the lack of room for extensions?


		| Juha Jäykkä, juolja at utu.fi			|
		| home: http://www.utu.fi/~juolja/		|
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mailman.metalforge.org/pipermail/crossfire/attachments/20070724/12b64a70/attachment-0001.pgp 

More information about the crossfire mailing list