[MUD-Dev] Re: Info about different skill systems

Emil Eifrem emil at prophecy.lu
Mon Jan 4 02:41:11 New Zealand Daylight Time 1999


At 09:25 AM 1/3/99 , Nathan F Yospe wrote:
>As the guy who coined "Skill Web" I ought to answer this one. There will
>be more info if you cross ref my name on your search, but, for now... it
>would be unfair to just dangle that in front of you and not add anything
>new. So... another informational post. 

Thanks. :) 

I wanted to cross reference 'skill web' with your name and 'skill tree'
with Raph Koster (or with JCL since I think the original message about
skill trees was posted by JCL before Mr Koster joined the list) but the
lack of boolean operators (that I could find at least) in the search engine
stopped me. Doing it by hand feels kinda, eh, wasteful of time.

>The primary approach is as follows: I define a set of attributes, with a
>framework on the class definition for an attribute that is open ended to
>sufficient degree to allow new attributes to be added without hardcoding
>changes... attributes link to other attributes, and are documented quite
>extensively. They should almost never be added. The character object the
>characters all inherit from has attributes associated with it, as do the
>components of its body. (Attributes inherit from several subclasses, the
>physical, mental, and reflexive being high among them. Physical and some
>reflexive attributes are inherited by parts of the body.) Attributes for
>an individual are stored as numbers, for the base object of individuals,
>as ranges and a default. (More can be found on my inheritance model from
>the archives.) Skills are defined by requirements (environmental, basic,
>hosted) and multiple skills may cover a single task (IE, flight is quite
>different for a Trae'laec or a *Hzzt* Swarm), with requirements adding a
>filter on the basic list. All skills attemptable by a species are listed
>for an individual of that species, and attempts to execute a command for
>which no listed skill exists will begin checking the primary skills list
>for the gameworld. This might be changed in the future. I can't see much
>point in allowing a human to attempt to, say, Fazz in a Humanx universe.
>Likewise, a single skill may cover multiple tasks. As a skill can have a
>series of derivatives with similar requirements (inheritance model) with
>other, nonderived skills using the same attributes, skills may be honed,
>or at least improved, by related activities. There is one attribute that
>should be created for each skill, a uniqueness value to keep related but
>not identical skills from perfecting something. Skills link to verbs, or
>to exitential verbs. Skill attributes include academic knowledge in some
>related field or another... and crosslinking makes this propogate across
>skills. I update attributes just after a skill use, and skills just when
>that skill has been checked, after the requirements have checked, before
>success calculation. The checking time is critical. I use weighted links
>from skill to attribute (attributes don't know what skills they affect.)
>and from attribute to attribute (monodirectional).

Wow. Lots of good information, lots of for me new terminology and lots of
lack-of-line-breaks. Ok, let's see what I can make of this.


>The primary approach is as follows: I define a set of attributes, [snip]
>attributes link to other attributes, and are documented quite
>extensively. They should almost never be added. 

What kind of attributes do you have? It seems to me like you have largely
avoided broad attributes such as 'Constitution' and 'Dexterity,' and I get
the image that you have quite a lot of fairly detailed attributes for your
characters.

You speak further down about monodirectional weighted links between
attributes. Could you or someone else elaborate a little more on weighted
links? Please excuse my ignorance, but I'm afraid I'm not familiar with the
concept of weighted relationships. I know it's basic and I've seen it
mentioned quite a few times, but it's nonetheless a blank field in my
computer vocabulary. :(

>The character object the
>characters all inherit from has attributes associated with it, as do the
>components of its body. 

Cool. So loosing an arm or a leg will make attributes that depend on that
bodypart suffer. We have that too, but it's almost hard-coded and not as
elegant a design.

>Skills are defined by requirements (environmental, basic,
>hosted) and multiple skills may cover a single task (IE, flight is quite
>different for a Trae'laec or a *Hzzt* Swarm), with requirements adding a
>filter on the basic list. 

This confuses me. So the requirements are only a help for the parser -- in
this case used as a filter to help the parser decide which skill to use?
Where would simple combat skills such as 'parry' or 'dodge' fit? 'Hunt'?
What would their requirements be?

And *who* is coming up with these names? A random-character output program?
Still, it's no worse than the name of Jon Leonard's mud. :)

>All skills attemptable by a species are listed
>for an individual of that species, and attempts to execute a command for
>which no listed skill exists will begin checking the primary skills list
>for the gameworld. This might be changed in the future. I can't see much
>point in allowing a human to attempt to, say, Fazz in a Humanx universe.

Ok, so if it doesn't find a neat match in the requirement filtered list of
skills, it looks in the primary list for the game world. Is your server
generic, so it can be customizable for different types of worlds. Otherwise
I don't quite understand the purpose of the gameworld-dependant skills list.

I'm not even gonna comment on Fazz and Humanx. ;)

>Likewise, a single skill may cover multiple tasks. As a skill can have a
>series of derivatives with similar requirements (inheritance model) with
>other, nonderived skills using the same attributes, skills may be honed,
>or at least improved, by related activities. 

Ok, so there's basically no way to grow better at skills. Using a skill
will only improve one attribute (or more), which in turn will grant you a
higher value in skills affected by that attribute. Interesting.

>Skills link to verbs, or to exitential verbs.

What's an exitential verb?

Thanks for the info so far, your system is definitely very different from
most I've seen. I wish I could compare it with a neural net design and see
the similarities, but my knowledge and confidence in AI programming in
general and neural nets in particular is unfortunately shaky at best.


-EE [emil at prophecy.lu]





More information about the MUD-Dev mailing list