<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Info about different skill systems --> <!--X-From-R13: @nguna T Kbfcr <lbfcrNunjnvv.rqh> --> <!--X-Date: Sun, 3 Jan 1999 00:25:24 -0800 --> <!--X-Message-Id: Pine.GSO.3.96.990102222436.18385A-100000@uhunix2 --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] Info about different skill systems</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:yospe#hawaii,edu"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00023.html">Previous</a> | <a href="msg00025.html">Next</a> ] Thread: [ <a href="msg00089.html">Previous</a> | <a href="msg00026.html">Next</a> ] Index: [ <A HREF="author.html#00024">Author</A> | <A HREF="#00024">Date</A> | <A HREF="thread.html#00024">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Info about different skill systems</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: Mud Design Mailing List <<A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A>></LI> <LI><em>Subject</em>: [MUD-Dev] Info about different skill systems</LI> <LI><em>From</em>: Nathan F Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI> <LI><em>Date</em>: Sat, 2 Jan 1999 22:25:12 -1000</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On Fri, 1 Jan 1999, Emil Eifrem wrote: :Does anyone have any pointers to info about different skill systems? Most :notably 'skill trees' and 'skill webs,' and preferably on design/coding :issues rather than concepts. :I have checked the archives, but didn't find any real explanations about :it. I may have missed it though, the lack of boolean search options in the :search engine tend to make exhaustive searches tedious at best. (Did you :guys *know* how often you say 'skill tree'?) 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. *sigh* holiday break, working and all, has made me soft... I wasn't going to think mud for another five or six months. Skill Webs A means of addressing multiple related skills without the drawbacks of a limited single inheritance system or messy multiple inheritance. (I have only seen skill trees implemented as a single inheritance system, but am aware of at least one person on the list who uses MI in a sort of teired layering.) My implementation uses a layer of skills and a layer of attributes, with no direct links from skill to skill. This was a computational and design issue, and there was no reason beyond worry of insufficient connectivity _not_ to simply link skills to each other. 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). -- Nathan F. Yospe - Born in the year of the tiger, riding it forever after University of Hawaii at Manoa, Dept of Physics, second year senior (joy) (On Call) Associate Algorithm Developer, Textron Systems Corp, Maui Ops. yospe#hawaii.edu <A HREF="http://www2.hawaii.edu/~yospe">http://www2.hawaii.edu/~yospe</A> Non commercial email only </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="00038" HREF="msg00038.html">[MUD-Dev] Re: Info about different skill systems</A></strong> <ul compact><li><em>From:</em> "Travis S. Casey" <efindel#io,com></li></ul> <li><strong><A NAME="00028" HREF="msg00028.html">[MUD-Dev] Re: Info about different skill systems</A></strong> <ul compact><li><em>From:</em> Emil Eifrem <emil#prophecy,lu></li></ul> <li><strong><A NAME="00026" HREF="msg00026.html">[MUD-Dev] Re: Info about different skill systems</A></strong> <ul compact><li><em>From:</em> Ben Greear <greear#cyberhighway,net></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00023.html">[MUD-Dev] New features for ScryMUD (Player-run Shops)</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00025.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00089.html">[MUD-Dev] Re: Info about different skill systems</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00026.html">[MUD-Dev] Re: Info about different skill systems</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00024"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00024"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>[MUD-Dev] Re: Intelligent WebGlimpse archive searching at Kanga.Nu</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00096" HREF="msg00096.html">[MUD-Dev] Re: Intelligent WebGlimpse archive searching at Kanga.Nu</A></strong>, Dominic J. Eidson <a href="mailto:sauron#the-infinite,org">sauron#the-infinite,org</a>, Fri 08 Jan 1999, 23:44 GMT </LI> <LI><strong><A NAME="00099" HREF="msg00099.html">[MUD-Dev] Re: Intelligent WebGlimpse archive searching at Kanga.Nu</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Sat 09 Jan 1999, 08:24 GMT </LI> <LI><strong><A NAME="00101" HREF="msg00101.html">[MUD-Dev] Re: Intelligent WebGlimpse archive searching at Kanga.Nu</A></strong>, Marian Griffith <a href="mailto:gryphon#iaehv,nl">gryphon#iaehv,nl</a>, Sat 09 Jan 1999, 23:06 GMT </LI> </ul> </ul> <LI><strong><A NAME="00089" HREF="msg00089.html">[MUD-Dev] Re: Info about different skill systems</A></strong>, Mik Clarke <a href="mailto:mikclrk#ibm,net">mikclrk#ibm,net</a>, Fri 08 Jan 1999, 20:16 GMT </LI> <LI><strong><A NAME="00024" HREF="msg00024.html">[MUD-Dev] Info about different skill systems</A></strong>, Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Sun 03 Jan 1999, 08:25 GMT <UL> <LI><strong><A NAME="00026" HREF="msg00026.html">[MUD-Dev] Re: Info about different skill systems</A></strong>, Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Sun 03 Jan 1999, 18:26 GMT <UL> <LI><strong><A NAME="00027" HREF="msg00027.html">[MUD-Dev] Re: Info about different skill systems</A></strong>, Emil Eifrem <a href="mailto:emil#prophecy,lu">emil#prophecy,lu</a>, Mon 04 Jan 1999, 01:45 GMT <UL> <LI><strong><A NAME="00031" HREF="msg00031.html">[MUD-Dev] Re: Info about different skill systems</A></strong>, Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Mon 04 Jan 1999, 04:48 GMT </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="00028" HREF="msg00028.html">[MUD-Dev] Re: Info about different skill systems</A></strong>, Emil Eifrem <a href="mailto:emil#prophecy,lu">emil#prophecy,lu</a>, Mon 04 Jan 1999, 01:45 GMT </LI> </UL> </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>