1998Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: Levelless MUDs -->
<!--X-From-R13: Oqnz Ivttvaf <nqnzNnatry.pbz> -->
<!--X-Date: Thu, 18 Jun 1998 11:43:50 &#45;0700 -->
<!--X-Message-Id: Pine.SGI.3.96.980618110228.9843A&#45;100000#zazu,angel.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199806162248.PAA07130#under,engr.sgi.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: Levelless MUDs</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:adam#angel,com">
</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>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg01123.html">Previous</a>
&nbsp;|&nbsp;<a href="msg01125.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg01119.html">Previous</a>
&nbsp;|&nbsp;<a href="msg01010.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#01124">Author</A>
&nbsp;|&nbsp;<A HREF="#01124">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#01124">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: Levelless MUDs</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Subject</em>: [MUD-Dev] Re: Levelless MUDs </LI>
<LI><em>From</em>: Adam Wiggins &lt;<A HREF="mailto:adam#angel,com">adam#angel,com</A>&gt;</LI>
<LI><em>Date</em>: Thu, 18 Jun 1998 11:39:53 -0700 (PDT)</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 Tue, 16 Jun 1998, J C Lawrence wrote:
&gt; Adam Wiggins&lt;adam#angel,com&gt; wrote:
&gt; &gt; [Holly:]
&gt; &gt;&gt; How do you handle things like spells, where caster vs.  target
&gt; &gt;&gt; level is what determines effectiveness?
&gt; 
&gt; &gt; Lots and lots of skills.  Ie: Biffy's fireball at Bubba is a roll of
&gt; &gt; Biffy's spellcasting skill, Biffy's fire-realm skill, Bubba's
&gt; &gt; spellcraft knowledge skill, Bubba's dodge skill, Bubba's agility,
&gt; &gt; Biffy's intelligence, Biffy's agility, and Bubba's resistance to
&gt; &gt; fire.  You can see already how this is more difficult to balance,
&gt; &gt; due to so many more parameters.  But IMO this makes the game more
&gt; &gt; fun to work on (from an admin's point of view), and more fun to play
&gt; &gt; (from a player's point of view).  
&gt; 
&gt; There is a large minefield lurking under the covers here.  Its
&gt; incredibly easy when dealing with a large number of factors to have
&gt; the final value effectively be an average of their values.  The result
&gt; is that no single factor has a significant effect on the final result.
&gt; This spells doom, as it means that for Bubba to increase his
&gt; effectiveness with fireballs to any statistically noticable degree he
&gt; has to significantly alter the values of several of the factors before 
&gt; the balance changes noticably.

Indeed.  The best way I've found to have both a large number of factors
affecting a situation, and yet still have each one be signifigant, is to
have them affect the situation in very different ways, many if which will
be mutually exclusive with one another.

For example:

Biffy casts a fireball at Bubba.
The computer makes some rolls, and comes up with a successful fireball,
diameter 1 meter, velocity 10 m/s, aimed at Bubba with a "trueness" of
85%.  (If it's a fully 3D world, probably graphical, this would just be a
vector of the direction it is traveling, which can then be compared to
Bubba's or anyone else's position to see whom it hits.)  The fireball will
last for six seconds, and during that time has a surface heat of 1500
degrees Kelvin.  (Some or all of these parameters may be combined or
measured in different units, depending upon what your target's rolls are
going to be like.)

Bubba notices Biffy casting the fireball one second before she actually
releases it, thanks to his perception stat and knowledge of spellcraft.
At this point his reflexes and dodge skill may allow him to predict where
the fireball will be flying, and then leap to (relative) safety.  Rolls
are made on his dodge skill, reflexes stat, and perception stat.  This
alone is enough to save him - except, wait, he's wearing the Extra Heavy
Armor of Fireball Turning!  Thus his perception is hampered (that darn
visor just seems to obscure things), the speed at which he moves is very
slow (he will certainly be doing no jumping), and in fact, he's already
disabled dodging blows in combat as he knows it to be a tiring and
fruitless endevour.  However, his armor *does* serve a purpose - it was
made for just this situation, and is able to deflect the fireball
relatively harmlessly (although it does leave him a bit warm inside his
suit, and manages to knock him off his feet, which could be a problem
depending on what Biffy does next).

In essence, you can build up very complex combat (or, in fact, anything -
this is the most obvious example however) by using a series of fairly
simple compares.  Consider typical D&amp;D combat:

Biffy swings at Bubba.

Her thac0+hitroll is compared against Bubba's armor class.

If it succeeds, her weapon dice+strength bonus+damroll is subtracted from
Bubba's hitpoints.


How about:

Biffy swings at Bubba.

Biffy rolls an "effectiveness" value on the swing, which is (1d100 + her
skill with her weapon + her agility) * (her strength / her weapon weight).

If in a situation where he is able to dodge, Bubba rolls a number based on
1d100 + his dodge skill + his agility.  This is compared to Biffy's
effectiveness roll, and if higher, the blow is written off as a miss.

If the blow connects, the effectiveness value is considered a "directness"
of attack.  It is clamped to the [1..100] range, where 1 is 1% of the
total force behind the blow connecting, and 100 is 100% of the force
connecting.  A hit location is rolled on Bubba's body (possibly taking
into account Biffy's attempt to aim at a specific bodypart, Bubba's
ability to deflect damage to chosen bodyparts, and their relative sizes).

Damage is rolled by multiplying effectiveness by Biffy's damage constant
(possibly strength, damroll, weapon sharpness, or other factors).

A hit is rolled against Bubba's armor.  A sturdyness value of the armor is
either retrived from the armor, or constructed based on it's material,
thickness, quality, and magical bonuses.  If this amount is larger than
the damage of Biffy's blow, the blow was completely absorbed.  If it is
smaller, then subtract the number from the damage and proceed.

Divide the remaining damage by Bubba's constituion and apply it to his
hitpoints.


The nice thing about this is that you could use only a single value for
each step, or you could enter some complex formulas with several values
including stats, skills, magical bonuses, the phase of the moon, etc.

&gt; The only effective solutiuon I've found to this is expensive: Set up a
&gt; whole bunch of nested loops, one each per factor, and permute.  Plot
&gt; the results.  See if the results really look the way you want them to.
&gt; Yes, you could probably do the same thing with Mathmatica or similar.
&gt; It doesn't vary the basic approach, just the expression.

You really have to have a head for visualizing curves.  Unfortunately, I
don't.  Luckily, my partner does.  He does what he calls "massaging the
formulas" where he doodles on his sketchpad for a couple hours and comes
back with a forumla that generates exactly the kind of curve that we want.
If you're not so mathematically inclined, like I, I suggest sticking to
easily plottable two-variable curves based on log or squares.

&gt; &gt; And, one might still refer to Bubba as being a "high-level player"
&gt; &gt; if he's got a good fire resistance, a good dodge skill, a great
&gt; &gt; spellcraft skill, etc.  But it's much more than a single number now
&gt; &gt; - Bubba might be terrible a dodging fireballs, but an excellent
&gt; &gt; thief.  He's still "high level", he's just not good at avoiding
&gt; &gt; nasty fire spells.
&gt; 
&gt; &lt;nod&gt;
&gt; 
&gt; Appropriate use of a few moderately good skills can be far more
&gt; effective that bumbling use of a mix of extremely good and bad skills.

True in Real Life (no one cares that Michael Jordan is a reasonbly good
golfer), and even more true on a MUD.  The characters that can do *one*
thing, *really* well are both more impressive and more popular than those
that can do most things fairly well.  IMO this is a good thing; the only
stumbling block is the jack-of-all-trades effect, which is usually
curtailed by an arbitrary and frequently unsatisfactory limit.

&gt; &gt;&gt; I'd like to hear legitimate pros and cons, not "oh, it's cool" or
&gt; &gt;&gt; "I hated it, it sucked."
&gt; 
&gt; &gt; IMO systems based on more complex metrics (generally meaning
&gt; &gt; skill-based) are about 1000% more fulfulling for both the creator
&gt; &gt; and the player.  
&gt; 
&gt; I generally view it as a question of flavour and thereby involvement.

Right.  In this case more DOES equal better.  (Naturally you have to
maintain the actual quality of each factor, else you risk it turning into
a mess of numbers with no reasonable relationships to one another or the
tasks players put their characters to.)

Adam




</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="01086" HREF="msg01086.html">[MUD-Dev] Re: Levelless MUDs</A></STRONG>
<UL><LI><EM>From:</EM> J C Lawrence &lt;claw#under,engr.sgi.com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg01123.html">[MUD-Dev] Re: Is worse better?</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg01125.html">[MUD-Dev] Re: Mud websites</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg01119.html">[MUD-Dev] Re: Levelless MUDs</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg01010.html">[MUD-Dev] Re: Levelless MUDs</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#01124"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#01124"><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: Levelless MUDs</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="01115" HREF="msg01115.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Richard Woolcock <a href="mailto:KaVir#nospam,dial.pipex.com">KaVir#nospam,dial.pipex.com</a>, Wed 17 Jun 1998, 18:49 GMT
</LI>
</ul>
<LI><strong><A NAME="01225" HREF="msg01225.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Fri 26 Jun 1998, 21:54 GMT
<UL>
<LI><strong><A NAME="01230" HREF="msg01230.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Sat 27 Jun 1998, 02:19 GMT
</LI>
</UL>
</LI>
</ul>
<LI><strong><A NAME="01119" HREF="msg01119.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Travis S. Casey <a href="mailto:efindel#io,com">efindel#io,com</a>, Wed 17 Jun 1998, 20:45 GMT
</LI>
<LI><strong><A NAME="01124" HREF="msg01124.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Thu 18 Jun 1998, 18:43 GMT
</LI>
</ul>
</ul>
<LI><strong><A NAME="01010" HREF="msg01010.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Matt Chatterley <a href="mailto:matt#mpc,dyn.ml.org">matt#mpc,dyn.ml.org</a>, Fri 12 Jun 1998, 23:36 GMT
<UL>
<LI><strong><A NAME="01045" HREF="msg01045.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Holly Sommer <a href="mailto:hsommer#micro,ti.com">hsommer#micro,ti.com</a>, Mon 15 Jun 1998, 14:08 GMT
<UL>
<LI><strong><A NAME="01053" HREF="msg01053.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Mon 15 Jun 1998, 22:11 GMT
</LI>
<LI><strong><A NAME="01064" HREF="msg01064.html">[MUD-Dev] Re: Levelless MUDs</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Tue 16 Jun 1998, 02:59 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>