1999Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: Levels versus Skills, who uses them and when. -->
<!--X-From-R13: [ngg Inyynpr <znggNraqre.pbz> -->
<!--X-Date: Thu, 14 Jan 1999 20:29:31 &#45;0800 -->
<!--X-Message-Id: Pine.LNX.3.96.990114203522.4232B&#45;100000#dragon,ender.com -->
<!--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] Re: Levels versus Skills, who uses them and when.</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:matt#ender,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="msg00181.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00183.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00185.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00202.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00182">Author</A>
&nbsp;|&nbsp;<A HREF="#00182">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00182">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: Levels versus Skills, who uses them and when.</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: Levels versus Skills, who uses them and when.</LI>
<LI><em>From</em>: Matt Wallace &lt;<A HREF="mailto:matt#ender,com">matt#ender,com</A>&gt;</LI>
<LI><em>Date</em>: Thu, 14 Jan 1999 20:36:54 -0800 (PST)</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 Wed, 13 Jan 1999, Raph Koster wrote:

&gt; Quest XP is a classic tactic. XP for merely visiting rooms (or for
&gt; visiting specific rooms), which we always termed "explore XP" is a nice
&gt; tactic too, until the rooms become known. [And yes, right here someone
&gt; is going to say they implemented remembering every room visited, or
&gt; every room remembering who visited it, and don't have that problem, and
&gt; once again I'll shudder at the data storage their mud entails. Am I the
&gt; only one who is paranoid about memory usage?]

We actually decided that the plain-jane experience gathering was pretty
bad, too, and decided we wanted exploration points as well. Our method was
to add a field to a room and to an area with an exploration value, for
starters. More difficult or tricky areas are more points for exploration,
with a value specific to a room overriding an area value (and the whole
default being 1).  We have about 6k rooms, but we're growing fast. Still,
I did it in one fell swoop and allocated 8k per character (8192 bytes).
I used macros that directly reference memory to directly flip a given
bit positioned X bits from the start of that 8192 bytes (65536 bits).
This makes it unconscionably fast, and that's the end of the storage
requirements. I certainly don't bother compressing that in memory, but
when you start saving it all to disk, thousands of players worth of
8k can add up -- so you can link against zlib and compress that. Since
the vast, vast majority is big chunks of 0's (at least on my mud so far),
you get excellent compression. If you were truly memory paranoid, you
could throw in a few more pointers and a "size" field, and compress
the memory for rooms from areas outside their area, in memory. But that's
pretty paranoid indeed, to try to save ~7k/character.

Incidentally, we also use this for a great deal of permanent memory
features, allowing our builders to (as part of builder defined mob/obj
progs) set, clear, and check bits from another 8k (they get those bits
matching their vnums), which is "remembered" between sessions, they can
use for various purposes. Quest results, whether a player has assaulted
a certain race of mobiles, perhaps -- whatever strikes their fancy.

All in all, it makes for a memory efficient method, and also works
incredibly quickly (cpu usage of the macros being essentially nil).

--Matt    



</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="00202" HREF="msg00202.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>
<ul compact><li><em>From:</em> J C Lawrence &lt;claw#under,engr.sgi.com&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00181.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00183.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00185.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00202.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00182"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00182"><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: Levels versus Skills, who uses them and when.</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00162" HREF="msg00162.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Thu 14 Jan 1999, 15:55 GMT
<UL>
<LI><strong><A NAME="00178" HREF="msg00178.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
Andy Cink <a href="mailto:ranthor#earthlink,net">ranthor#earthlink,net</a>, Thu 14 Jan 1999, 23:55 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00169" HREF="msg00169.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Thu 14 Jan 1999, 20:58 GMT
<UL>
<LI><strong><A NAME="00185" HREF="msg00185.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Fri 15 Jan 1999, 04:43 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00182" HREF="msg00182.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
Matt Wallace <a href="mailto:matt#ender,com">matt#ender,com</a>, Fri 15 Jan 1999, 04:29 GMT
<UL>
<LI><strong><A NAME="00202" HREF="msg00202.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Sat 16 Jan 1999, 03:53 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00189" HREF="msg00189.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Fri 15 Jan 1999, 15:54 GMT
</LI>
<LI><strong><A NAME="00190" HREF="msg00190.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Fri 15 Jan 1999, 16:03 GMT
</LI>
<LI><strong><A NAME="00191" HREF="msg00191.html">[MUD-Dev] Re: Levels versus Skills, who uses them and when.</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Fri 15 Jan 1999, 16:11 GMT
</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>