First, a brief bit about my experience in this area:
I've been an active player of "pencil and paper" role playing
games since 1987, encompassing more than thirty (truthfully, I've
forgotten all the games I've played) different systems, as well as a
number of "tactical" games such as BattleTech, Warhammer, etc.
I've spent (wasted :) hundreds of hours in roguelikes such as
Larn, Moria, Nethack, (A-Z)ngband, ADOM, etc. I attempted to develop
my own on several occasions, the most recent attempt being Saga, a Perl
roguelike.
I do not claim to be the worlds most serious gamer, nor the
worlds best software engineer, but I do feel I have enough experience
on this subject to be able to offer some useful information.
Now, on to the meat:
How you implement character advancement will depend heavily on
your choice of game mechanics. For example, is it a level based system
where a 10th level being will be ten times more capable than a 1st
level being? a hundred? Or is it entirely skills based, where
facility with a particular weapon or ability is to be developed
independently of any other capability?
The majority of current roguelikes seems to be dominated by
levels and level/skills hybrids. This is fine, though while I
personally advocate an entirely skills-based approach, it is truly a
matter of taste.
The base idea is that individual actions performed by the
characters will return (on success, failure or both) some measure of
"experience", either generic or towards the skill governed by the
action. In order to develop a mental yardstick, I usually try to get
a firm idea of what a brand new, baseline character is capable of. In
most roguelikes today, that would be a human fighter.
Next, try to imagine what this character would be capable of, if
his abilities were taken to their absolute limits, without regard to
items and equipment that may boost her capabilities. This should give
you a continuum of capability that will let you look at, and gauge,
difficulty of things like quests, unique creatures, and so on.
It also usually helps me to think of creatures that this
character may face as based on this brand new beginning fighter. In
other words, a Grey Kobold is about half the power of a beginning
fighter, but an Elite Orc Guardsman is six times more powerful than
the baseline.
Yes, there is a LOT of tweaking and experimentation involved to
get it right. Also, many abilities can make combat orders of magnitude
simpler (teleportation, ranged attacks, etc) so this has to be taken
into account when trying to judge anything other than a raw fighter
type. Again, there is no perfect measure, experimentation is the key
to balance here.
If you wish to model the real world, most performance type
skills (dancing, martial arts, typing, etc) are developed in terms of
plateaus that may take months or years to break through, usually on a
sliding scale of time. The first plateau might take only a few weeks
to reach, but the next may take a few months, etc. Roguelikes (and
many traditional RPG's) model this with each "level" requiring
progressively larger amounts of experience points to reach.
However, because most games give out larger amounts of
experience for more difficult and more powerful creatures, the result
is that most characters end up on a hyper-accelerated track, and can
reach quite amazing levels of skill in relatively short amounts of
game time. Now, as a fantasy game goes, that is perfectly acceptable,
but it does make it more difficult to judge when a player is ready to
face the "Deep dwelling Thing from Beyond". Then again, people don't
play roguelikes because they are easy. ;)
I would have no issue with this, if it was a one-time event.
For example, the first time you wipe out a Grey Ooze, get the full
experience value for it. For each one after, only bestow a standard
action credit that doesn't change, for all actions of that type. New
things, and new challenges help you grow a lot, practice helps you a
little (which is why you have to keep at it).
An extension of this idea is experience for, say, casting
spells. You get full experience value the first time you cast a new
spell, but only a small "cast spell" value each time thereafter. The
idea works for any ability that is action based, rather than intrinsic
or "always-on".
For added realism (ha :), it may be worth investigating a
"decay" function for skills and abilities that go unused for long
periods of time, with the time before decay increasing the higher the
level of skill.
Like the design of any game system, this article is two parts
experience and one part prejudice. I hope that, at least, mentioning
these issues will prompt roguelike designers to devote more thought
game mechanics issues, and to question some accepted standards.
I do apologize if you were looking for code examples, but the entire
issue of character development is so tightly bound to the specific
system and other game mechanics to make even pseudo code examples
just about worthless.
Feel free to write me with questions, comments, etc. Please keep the
flames constructive, thanks! :)
-Matthias E. Giwer
mgiwer@ij.net
|